Apparently my last post was not completely gibberish and contained some thoughts that you could make use of. Thanks for the feedback. Let me continue my train of thoughts here. It’s not a very long train, but it’s still a train.
Here’s where we ended: there’s a customer, we are here to delight them (thank you Stephen Deming for that phrase). Everything we do right now is just best so far in our strive to more effectively give value to the customer. We can and should, change our current state, process, organization, tools, or what have you, to try to improve. If we do the change in bigger steps there will be bigger impacts on our productivity, in smaller steps smaller impact.
See? Nothing really new or amazing here. In this post, I wanted to talk a little bit about where this can take us. Because I see this as a guiding star, as a “true north”, designed to draw improvements out of us. Taking us to ideas, places, and innovations better than we ever thought. It’s a bit “to infinity and beyond,” I know.
I came to realize that a lot of the things that we have around us today are innovations built out of necessity to make things better, to improve the effectiveness (the rate with which we reach our goal if you remember). Just about every start-up company out there grew out of urges like these.
Source: Håkan Forss
Why did anyone come up with the preposterous idea of using wheels instead of the good all animal hides that we had been dragging our things around on? Because it could move stuff faster. It would make my customer happier, since I could move more seed to him. Hey, what did you know?! It turns out it took less effort for me as well! Well - that’s awesome. Win-win!
Who knows? Someone probably tried square wheels for a while. “I think square wheels will be better than animal hides!” He put them on. And part of the turn of the wheel was easier… but not really. And then someone suggested a round one… Ah, not really maybe - but you see where I’m going with this reasoning I think. They experimented. They saw if it was better (moving stuff faster and easier) or not. If it was better they improved it some more. If not they tried something else.
Lean and Agile
Why did Toyota come up with Toyota Production System (roughly what we Westerners call lean)? Because they were smarter? Because they had someone there to point the way? Because they had a tradition of improvements, etc. (oh, well maybe that in fact…).
I think, and I have not seen any evidence for this being true I confess, that it had to do with the whole country being in ruins after the second world war. They had nothing! No factories left. No raw material. Few people. But they still decided that they could build cars for customers that wanted them.
In order to do so with their current constraints, they needed to focus on flowing value through the system fast.
“All we are doing is looking at the time line, from the moment the customer gives us an order to the point when we collect the cash. And we are reducing the timeline by reducing the non-value-adding wastes.” - Taiichi Ohno
Focusing on reducing the time from order to car on your driveway. I see customer focus. They could have focused on their internal process, optimizing efficiency. But that was not their main goal, luckily. It was the effectiveness of the system.
Source: AgileManifesto.org
Agile. Same thing. A bunch of really smart guys came together, because the IT industry was really really bad at doing projects that succeeded, came in on time, or even finished (regardless of success or failure). Or if you don’t trust the CHAOS report, at least this was their experience (and mine, but they didn’t invite me to the meeting… I had a really strict spam-filter back then… yeah, that was probably it).
They changed how they did work… in order to deliver value to the customer, faster, and with better quality. Customer-focused.
You know what I think (or actually know, since I’ve seen and experienced it); A LOT of people said that it was stupid. That it would never work. That it’s just better for programmers. But I think they missed the whole point. The point of agile (as I interpret it) was to improve the output of the software process. Sure, by improving and changing the fundamentals of how we do software development, but with the end goal of improving for the customer.
Just think of all the things that we have been changing and how that have been challenged, laughed at and dismissed, just because we were content with our current state. If you like you can say:
“COME ON!? That can never work. It’s working fine as it is”
loudly, after each of these practices that today are mainstream. Do it as a homage to the pioneers that have fought to use these, if nothing else:
- Test-driven development
- Involving the customer in the software development process, early and continuously
- Pair programming
- Continuous delivery
- Agile practices
- Agile practices that only you do in your context that have improved your effectiveness
More examples?
I could go on and on. (Please continue to pay tribute to the unsung heroes pioneering respective fields…)
- Mob Programming
- Chaos Monkey
- NoSQL
- Washing hands between patients
- Node - Javascript on the server
- Not having any hardware in-house, but rather pay per clock-cycle
- Small, autonomous teams in charge of small parts of an overall product
- Alt.Net - .NET framework programming without Microsoft
- Putting unfinished work into production to validate your ideas
- Removing callbacks in Node
Yeah, I’m a simple man. It’s a lot about software development in there. That’s where I get most of my experience. But you can probably come up with a lot of examples in your domain, from your experience.
For each of the things in the list above, or what you come up with; I promise you that it either came into being or caught on because it delivered value to a customer more effectively than the thing we did before.
Do you dare not investigate?
I have been very surprised about the reactions for some of the topics that I follow these days; namely #NoEstimates and SAFe. People that I have heard talking about improvements and continuously evaluating and changing our current state have all of a sudden turned the other way. In all honesty, it scared me away from posting anything around those topics for a while. I’m not afraid but I have better things to do than being yelled at and called names, etc.
Especially true is this around the #NoEstimate topic. It seems to be super-touchy for some people. “NO! We have to estimate! You cannot go around telling/yelling to people that they should not be doing that. It’s impossible.” It’s really sad, really, because just like NoSQL and Alt.Net #NoEstimates is not against anything but merely suggesting that we should look for alternatives. For me that has a really nice ring, since I think that just like planning, estimates are truly wasteful (as in non-value adding).
Think back for yourself if you ever heard about a single customer for any company that has been impressed with their planning and estimating. No - we (or they depending on which side of the fence you’re on) want value. Output. We don’t care much about the inside of the machine. Do whatever you need to do to continue to produce awesome, thank you.
Come closer to the screen. I’ll let you in on a secret. It will blow the lid of all your current knowledge and completely turn your world upside down. Closer… There. Are you ready?
You know what… Agile is not the answer. Lean is not the answer. No Estimates is not the answer. We will find new ways. We will improve. Like in Jurassic Park:
Life will find a way - Michael Crichton
We simply don’t know where we will end up. Trying to improve will lead us down paths that we today think are utterly impossible. In that light. Do you dare? Do you dare not investigating improving? Do you dare dismiss things just because you think it sounds preposterous? Or should you maybe instead try to find quick ways to try and find out what works for you.
How can I start?
Oh my… this post became longer than initially intended. But let me wrap by trying to answer the obvious question; what can I do? I have no power. My boss, my client, my [imposing title that you cannot challenge here] simply will not listen.
I have devised a training plan for you (and me) to get us. They are both very simple but will take you far:
- Figure out who your customer is. Dare to ask “Why are we here?” Hint; it’s not “the business” or the project manager. It’s the one paying your bills…
- Change something in your environment for the better to improve your effectiveness in producing value for that customer. Start with something that you control and can change. Do small things first. Trivial stuff, but with the customer in mind. Motivate your change with increased value for the customer. Remember that you can do experiments that you think will improve your effectiveness and then evaluate.
- Try to do such small changes at least once a week, preferably one every day.
- Read Switch - how to change things when change is hard. It’s full of motivational stories of people with no or little power, money, and influence that have changed big organizations and even countries in some cases.
- Start from 2 again. Repeat and reach wider and wider. Start asking questions on “Why we are here?”
This is a little exercise that I have going in my head. Yes, I have read Switch many times. Five now, I think. It helps me sort out my thoughts about change and getting others onboard.
I hope you found this post interesting. I learned a lot by trying to write it down.