How do you know if you are making improvements where they can have the most impact? Can you be sure the improvements being made will provide the benefits expected or that those benefits actually help deliver more value?
Those of us that work in software development organizations have many opportunities to improve how work is done. In fact, there is no end to the improvements we could make and thus comes the rub. Without an ability to understand where constraints exist then we are just making guesses about where to put our improvement efforts. This often results in local optimizations to the detriment of the whole system.
Each discipline in software development, coding and testing for example, are able to continuously improve their craft. Unfortunately, perfecting the craft of one area may impede flow through the system. For example, requirements should have sufficient clarity so that the team can deliver value to the customer through working tested software. Having perfect requirements is probably not the goal and could create a constraint that starves the rest of the organization. Only focusing on a part of the overall system is a bit like polishing the propellor to perfection only to find out the ship is sinking.
Unfortunately, perfecting the craft of one area may impede flow through the system.
There are a variety assessments that can be used to determine where improvements should be made:
- Retrospectives – usually used by teams to evaluate their performance and then deciding where to make short-term improvements.
- Value stream mapping – mapping the flow of work through the software development system and determining where value is added or not.
- Capability modeling – identifying the capabilities that the organization delivers, the value provided, performance delivered, and risks for not performing well.
In all cases change should be controlled so that the impact of the change can be determined without other variables at play. As improvements are made and results of change determined, the system should be re-evaluated to determine the next areas for improvement.