Traffic jams, we all know them, we all hate them!
But perhaps there is an important lesson to be learned from them...
While I was sitting in my car, listening to the same old cd, not in the mood for an overdose morning-radio-happiness-whether-you-like-it-or-not, my mind started to drift of and before I knew it a couple of miles passed by without me even realizing it.
How did I get there?
When did I started to accelerate or brake?
Where did the people in front, next to or behind of me go?
I just got there, how I got there, or how others had got there is based upon individual driving decisions. The only rule we have is that at some point it is best to follow the herd. Each driver individually can decide when and how fast he moves from A to B, he does what he think is best, what he does, what he is allowed to do are local optimizations.
Trying to kill the time remaining in traffic I started thinking. Traffic jams are a strange phenomenon, they have been analyzed thoroughly but solving them seems to be tricky! Why is that, are traffic jams that unique from other optimization problems in different industries? Can a simple every day problem like traffic jams inspire us enough to think about related problems in our organizations? Perhaps...
To maximize throughput, all cars need to adhere to a speed limit, preferable the exact same speed. Car drivers are required to optimize only for themselves which causes the system to break down and everyone finds himself caught in a traffic jam.
This problem can be solved by synchronization of all participants. This means all cars need to have the exact same speed and its flow should never be interrupted (continuous flow). A separate acceleration / deacceleration zone allows cars to get up to the exact speed before entering the highway. At no point, not while getting on the highway nor during traffic individual drivers should be allowed to manually manipulate their speed. Comparable with an automated railway system.
Don't compare it with traditional train railway systems, they have even more bottlenecks than the highway system, up to you to detect them...

To conclude, a problem not to be solved overnight! Key to remember is that the root cause is allowing individual drivers to do local optimizations.
SkyTran is a futuristic example of such a fully optimized system.
So we learned that local optimizations are bad. Not really an innovative idea because it has been around for ages in manufacturing methodologies like Lean. Lean has taught us that optimization should take place at the project level, not at the level of the individual people or processes. Local optimization weakens the overall process.
So what about local optimization within an organization?
What about implementing Scrum on a single team within a traditional organization? Aren't those local optimizations?
Many of you who have been using Scrum have probably asked yourselves: 'How does Agile / Scrum scale?'. Can it work even when it is not supported by the the enterprise (team level)? Is it sustainable within a traditional organization?
At least that's a questions that keeps popping up for me!
Scrum equals optimization, local optimization in most cases. The companies that have implemented Scrum or Agile project methodologies fully from top to bottom or a few. Organization adaption is a hot topic during Scrum Master trainings, do we need to do it top-down or bottom-up? My experience has taught me that most companies get familiar with Scrum bottom-up (thanks to all the smart developers) but it gets stuck somewhere in the middle or even at development team level ... equals local optimization. Better would be that the vision comes from above as we have learned from Lean (aka Philosophy level), a clear vision on company wide optimization! One goal envisioned from above!
If you are using Scrum in an otherwise traditional based organizations you'll probably spot some of the typical problems ...
- No support for a Product Owner
- Waiting for resources
- Conflicting resources
- Planning requirements
- Lots of noise
- Strange deadlines
- ...
Typical problems a Scrum team has to deal with because the rest of the organization is not aligned with the Scrum vision, the way of dealing with change. The same reason why if one person in the team does test driven development it will fail, this one person is doing local optimization which are not sustainable on the long term.
I love Scrum / Agile but they only tell you part of the story, it is too fully focused on single projects, it never explains the bigger picture, the real issue, how to optimize the organization. That's why I love Lean, Lean is the bigger picture where methodologies like Agile / Scrum fit in nicely. Lean will teach you about local optimization problems, about the higher organization cause, about Kaizen, about dealing with multiple projects.
Scrum does scale, but only if an organization is prepared to adhere fully to Lean methods!
Don't stop with Scrum, it is great, but don't stop there, learn Lean, because only then you'll see why Scrum can work on organization level. Learn how to create that sustainable organization wide vision, learn how to grow that vision...
Afterwards you'll never questions yourself again whether or not Scrum will work for 1 or 50 projects.
Optimize the organization, not the projects.
Labels: lean, localoptimization, scrum