Metaphors are powerful. We use metaphors in our everyday language without even noticing it. They appeal to the mind since they take new, sometimes complex ideas and relate them to known, every day events/objects. They help create a bridge of understanding by using a shared frame of reference.
Examples of metaphors
“Choices are crossroads”
Metaphors are a great teaching tool. In my role as an Agile Coach, I am frequently helping to find ways to improve the flow in the system. Ideas from Donald Reinertsen’s book “The Principles of Product Development Flow”, Kanban and the Theory of Constraints largely guide my thoughts.
However, these ideas are often complex and frequently dry. So I turn to the simplest metaphor I can think of to share the ideas.
Software Development Flow and Traffic as a metaphor
The exercise I do using “Traffic on Roadway” metaphor is simple.
We need to get from point A to point B in our city – what are some of the things that could help us traverse the distance faster?
The answers start coming rather fast since it is an easy metaphor for all to relate to–
- Smooth roads
- Faster vehicles
- Smaller vehicles
- Less traffic
- Green traffic lights
- No speed-breakers/bumps
- Apps showing me the traffic on my route
Let’s look at some of these responses and relate them to our software development environment – making this connection explicitly is important.
Smoother roads help us go faster from point A to point B.
What could this mean in the software development world? Good infrastructure – do our developers have good supporting systems – build tools, testing frameworks, project management tools and frameworks etc. The systems and frameworks, that exist in the background all the time and are used repeatedly, need to be enablers. If they are time-suckers, then we are considerably slowed down.
A motorized vehicle will mostly get us faster from point A to B than a bicycle.
Similarly having the right tools, the right skills helps us get work done faster and with the right quality.
Smaller vehicles like motorbikes usually go faster than bigger vehicles – they can slip in through gaps and beat the traffic. Also a motorbike needs to wait for no one whereas a public transport bus would need to have a reasonable number of passengers to be economically viable, needs to wait for various passengers to board etc.
In the software world, this relates to smaller batch sizes – smaller user stories, smaller features etc. Since they are small, they are lighter and quicker, they usually flow faster.
Also independent small work flows faster than big batches of work (Motorbike Vs Public Bus). If early feedback is more valuable to us than the cost of overheads, we need to make our batch sizes smaller.
Special lanes for certain types of vehicles like buses (Bus Rapid Transport Systems) or blocking heavy trucks on certain routes during peak hour or having special toll routes – all improve the flow of traffic (if implemented well).
Similarly, if we limit our Work In Progress, create special Expedite lanes, say No to some work items, then we can significantly improve the flow of work.
Apps that predict and update local traffic conditions are a great way to avoid bottlenecks.
Similarly information radiators, fast feedback, visualization of where work is getting stuck are great ways to manage our work and increase of chances of completing work soon.
Roundabouts Vs Traffic Lights
Roundabouts let drivers self-manage as against traffic lights (a centralized, static system) which create a stop/go flow of traffic – roundabouts help keep the traffic flowing and smooth. However, roundabouts demand a shared policy/rules between the drivers and also a high adherence to the policies.
Similarly at work, external centralized decision-making and control slows things down. Empowered, responsible teams are closer to the work and are able to respond faster to change and take decisions quickly.
Preparing for the journey
Starting your commute with good readiness – fuel, condition of the car, knowing the route etc – gets you to your destination faster.
On similar lines, having a definition of ready and preparing and planning, increases our chances of foreseeing risks, avoiding some impediments and having a smoother workflow.
In the preparation for the journey, it is important to assume that there will be uncertainties and variabilities. It is best to defer decisions to the last responsible moment (LRM) so as to take decisions based on the most information you have.
Speed-breakers, pedestrians and other impediments
Having fewer speed-breakers, crossings etc make the road smoother since there are fewer interruptions.
Similarly minimizing interruptions and waste helps work get to done faster. Managing and minimizing these is a big part of improving flow. Surfacing issues and resolving them quickly is an important capability to build.
The best part about this exercise is when people break all the rules and start thinking of wild ideas.
Like using a Helicopter. Or teleportation…a la Star Trek.
These are great opportunities to discuss new possibilities, to discuss overheads of expensive ideas vs value of throughput and many others.
Understanding what impacts flow, and how, is very important for modern project management. Using simple metaphors for the system help us grasp these ideas and concepts easily.
The trick is to know how to translate back from the metaphor to the project environment.
Find the right metaphor, make the connection clear and explaining new ideas and concepts is as easy as (Metaphor Alert!) taking candy from a baby.