Posted on

Traffic

I came across an interesting video about how to relieve traffic congestion, “How to Fix Traffic Forever”, and it seems to me the key points are equally applicable to software development and delivery. What do you think?

1. Effect of adding capacity

  • 1.1. More lanes = more traffic.
  • 1.2. Doubling capacity doubles traffic congestion. Congestion increases linearly with capacity until you physically run out of vehicles.
  • 1.3. Increasing capacity is often done without considering city traffic holisticlly.

Connection with software work:

  • 1.1. Many organizations respond to apparently-slow software delivery by adding teams. But adding teams doesn’t allow more work to flow through the system; it only increases the amount of work that’s jammed up in the system.
  • 1.2. Linear relationship – doubling the number of teams will double the amount of unfinished work languishing in the system.
  • 1.3. Adding teams without considering the overall operating environment – orgnazational structure, formal processes, etc. – will only increase congestion in the system.

2. Impact of adding vehicles

  • 2.1. When the road is already at or near capacity, adding one more vehicle has a large impact on congestion. The 20,000th vehicle causes much more slowdown than the 5,000th vehicle.
  • 2.2. Ramp meters alleviate this problem.

Connection with software work:

This seems obviously and directly related to limiting work-in-process (WIP). Limiting WIP is one of the simplest and most powerful ways to increase throughput, reduce lead time and cycle time, and improve quality.

3. Roundabouts

  • 3.1. Roundabouts decrease fatalities by 90%
  • 3.2. Single lane roundabout handles 1,800 vehicles per hour – same as a standard intersection
  • 3.3. Roundabouts are not used often because there’s the belief people need “rules” (e.g., traffic lights, stop signs)
  • 3.4. When people don’t have “rules” they pay more attention; with no green light, people take nothing for granted
    Cars slow down, but they keep moving; overall, more traffic gets through

Connection with software work:

  • 3.1. Minimizing cross-team dependencies and formal hand-offs between functional silos reduces errors, improves time to market, improves product quality, and enhances employee engagement.
  • 3.2. Moving to cross-functional teams does not decrease organizational efficiency in any way.
  • 3.3. The belief that people need “best practices” and formal procedures leads to careless work, assumptions that “someone else” will take care of loose ends, and rushing through tasks without paying attention to details.
  • 3.4. When people must think about how they work and take responsibility for the quality they deliver, they tend to pay more attention to what they are doing and apply their knowledge and skills to the work more effectively.

4. Closing statement

“Fixing traffic is all about saving time and improving the environment.”

Connection with software work:

Focusing on continuous flow helps us remove waste (slowdowns, blockers, rework, defects, etc.) from the system, which in turn makes changes and new features easier to implement, test, deploy, and operate. This saves time and makes the work environment more pleasant and rewarding for employees.

Nothing new here

The connections between traffic flow and work flow aren’t coincidental. Check out The Principles of Product Development Flow by Donald G. Reinertsen; especially Chapter 3.

It’s math. When I showed this book to a former colleague, he said, “Sure, if you believe Reintertsen’s math.” Well, I didn’t know Reinertsen – or anyone else – had their own math, or that math was a matter subject to “belief.” It goes to show that if someone is really determined to say “no” to something, they’ll find a way. For the rest of us: The math is in the book, and the practical application lies in techniques such as limiting WIP.