We always looked bad on our retrospectives. Finally, we realized that we needed to change and focus on our constraint. For this particular scenario, the constraint was the flow of information that needed to go through a BA. Once we got this part and stopped focusing our scheduling efforts on other miscellaneous tasks, we moved on to optimize our work queues by using the Theory of Queues , minimizing the number of to-dos for each developer and QA so that they wouldn't lose focus thinking about the tasks they had ahead before finishing what they currently had on their plates. Our project managers became gatekeepers of tasks, releasing them at a regular cadence and limiting those releases to the capacity of the team. And our technical leads acted as experts on the art of simplicity, focusing their work on reviewing the day-to-day decisions of the team to refocus the work on simplicity. That all has made a huge impact in our work and lives, up to the point that I find myself with enough time to write this article.
Frederick Brooks said, "Software development is the most complex task ever undertaken by humanity," and scheduling of the tasks required for it are no child's play. Experience has shown that there are some things we can do to influence a successful schedule on our projects:
- Know your constraint, schedule it, and follow through it.
- Level the workload by evening out the arrival of work and establishing a regular cadence.
- Limit the work to capacity per a timebox instead of a scopebox, and pull tasks from a queue as needed instead of pushing them.
- Optimize throughput and not utilization by minimizing the number of things in process and minimizing the size of things in process.
Naturally, the reader might be thinking of several reasons why some of the presented conclusions might not be applicable to their specific business, and as usual they are not silver bullets. They are just some of the conclusions we have gathered over time.
2. Womack and Jones, Lean Thinking, Free Press, 2003.
4. Goldratt and Cox, The Goal, 3rd edition, North River Press, 2004
Poppendieck and Poppendieck, Implementing Lean Software Development: From Concept to Cash, Addison Wesley Professional, 2003.