What to do with bottlenecks
What creative ways can you find to destroy bottlenecks?So you’ve identified some possible bottlenecks in your software delivery process.
What next?
Well, broadly speaking, we have two ways of responding to bottlenecks:
- Increase capacity.
- Eliminate the bottleneck entirely.
Our natural tendancy is often to focus on the first. When we see a traffic jam, we assume the road should be widended. And sometimes it should, sure. But as a last restort.
We should always start by looking for ways to eliminate the bottleneck entirely.
Is your backend team constantly waiting for the frontend team? Can we eliminate this bottleneck somehow? Perhaps form cross-functional teams instead? Or cross-train our backend engineers to handle some frontend tasks? Maybe we can re-define our tasks to need less frontend work. Or maybe the frontend team is taking a long time, because the backend work is confusing, and some better documentation or cleaner API design would speed them up.
Once you’ve identified a bottleneck, consider:
- Does this step (always) need to be done?
- Does this step need to be done in this order?
- Can this step be merged with another, to eliminate the hand-off?
- Can this step be (partially) automated?
- What other creative solutions can you think of to eliminate queues?