Proper prioritization is essential to driving the business value of software. Those working in the trenches need to have a clear understanding of the end goal in order to prioritize their projects appropriately. With all team members focusing on the same mission to maximize business value from software by optimizing the flow of business value through software development, better decisions can be made throughout the software development lifecycle.
The key element to properly prioritizing projects is effective queue management. On a daily basis, tactical decisions are made at the team level about the prioritization of tasks. In Donald Reinertsen’s book “The Principles of Product Development Flow: Second Generation Lean Product Development,” he offers six principles for creating a value management capability for queue management at the team level:
1. Software development inventory is physically and financially invisible
2. Queues are the root cause of the majority of economic waste in software development
3. Increasing resource utilization increases queues exponentially (but variability only increases queues linearly)
4. Optimum queue size is an economic trade-off
5. Don’t control capacity utilization, control queue size
6. Use cumulative flow diagrams to monitor queues
Often decisions made by IT are not based on delivering business value, but on the difficulty of the project, the resources required or who is shouting the loudest to push their project to the top of the queue. This needs to change. IT departments need to prioritize their projects based on the business value they will deliver to the organization. Effective queue management is an essential component to making the right tactical decisions that will lead to maximizing the flow of business value in software development efforts.
What drives your decision-making process when determining what project to put in the queue next?