The software development life cycle is riddled with inefficiencies. As with any manufacturing process, these inefficiencies hamper productivity and ultimately erode an organization’s competitive advantage. We need to reassess the life cycle with the mindset that everything we do as a development team either adds value to the customer or creates waste. Our goal should be to optimize productivity: 100% waste-free production.
Improving software development productivity really boils down to the following four concepts (and this can lead to astonishing increases in productivity):
• Having a clear, actionable plan of attack
• Increasing code knowledge
• Reducing rework
• Reducing debugging
In our experience, we have found that applying the following concepts leads to astonishing increases in productivity.
Have a clear, actionable plan of attack
The more time a developer spends wondering which requirement or task to tackle next and how to address it, the less time he or she is actually performing productive, rewarding work—creative tasks that help the organization achieve its goals.
To keep developers focused on performing productive work, define tasks properly, have a system for distributing tasks, and assign tasks properly.