Quite often, IT managers see Scrum as the solution to increase the speed of software development. Indeed, you can speed up your software development processes dramatically by successfully using Scrum for organizing your engineering department. But, people often forget that they can only create value for their customers if they optimize the whole organization towards that goal. To achieve that you need to add ideas from Lean Software Development, like Kanban, into the mix. Only if your whole organization is aligned to optimize value creation end-to-end will you become really fast.
Scrum Leads To Sub-Optimization
You can successfully shift to Scrum in your technical projects and still not be efficient in delivering value to your customers. You might do an excellent job rolling out Scrum within your engineering department. You run multiple Scrum teams in parallel which really rock the boat. This is truely awesome. And for the first couple of Sprints all looks very good. But after some weeks your Product Backlog starts to run dry. Your highly optimized Scrum teams have to invent new User Stories to keep themselves busy.
What went wrong?
This is a typical effect of sub-optimization. If you only optimize one step in your value creation process it can deliver things faster than the rest of the organization can deal with. Either that part runs dry on input or the output of that part floods subsequent process steps. It could happen that the Scrum teams churn out so many new features that your operations team is not able to release all of them anymore. Finished, but unreleased features, pile up – which is a shame since your customers cannot profit from all those shiny new bells and whistles.
How To Avoid Sub-Optimization
Make sure that no one department produces more than the department with the least capacity (the bottleneck) can handle. Of course, you should always try to increase the throughput of your bottleneck. But, there is always one area in your organization which is the weakest link in the value creation chain.
To be able to adapt the entire process to the capacity of the bottleneck, you can use Kanban. Define workflow steps like “Evaluation”, “Development”, “Testing”, “Deployment”, etc., and put a “Work-In-Progress” (WIP) limit in place for every column. The WIP limit defines how many stories might be in one specific step at a time. You’re not allowed to move a new story into a stage where the WIP limit is already reached.
By introducing Kanban with WIP limits to the complete value creation chain (not only e.g. engineering), you can avoid sub-optimization in one area and increase the overall throughput of profitable features to your customers.