Implementing new strategies typically requires significant change within an organization, which often impacts the culture. This is also the case when establishing new software value strategies. Organizations must first adopt the mindset to use business value as a metric for driving successful software development initiatives, and then they must optimize the necessary processes to ensure those value metrics are reached.
One practice that can go hand-in-hand with driving software value is lean software development. Many of the principles associated with lean are relevant in the discussion about increasing software value.
An author I often reference, Donald Reinertsen, wrote a book in 2009 titled “The Principles of Product Development Flow: Second Generation Lean Product Development.” Of the eight lean principles Reinertsen describes in his book, I suggest the following priorities for executives as they start to shift the organizational culture to lean software engineering at the strategic level:
- Economics – the executive team needs to focus on maximizing the flow of value through software by assigning relative business value to projects or epics at the strategic level. Reinertsen emphasizes using the cost of delay as a default metric
- Queues – systemic or temporary bottlenecks must be easily and quickly identified and removed
- Batch Size – inputs should be kept as small as possible to achieve a more efficient flow in the pipeline
- WIP Constraints – Work-in-Progress limitations must be put in place at each phase of the process to minimize queues between process steps and improve focus on projects under consideration
- Decentralized Control – executives prioritize the backlog and then the staff decides what to pull from the backlog first based on that prioritization.
Implementing these principles can go a long way in driving software value, but they will also require a change in the way things are done, which can often uproot a corporate culture. As with most strategic changes within an organization, the changes required to successfully implement lean principles for software development must be communicated across the organization at all levels. This communication is necessary to ensure the processes and reasons for these processes are clearly understood.
Do you implement lean principles in your software development initiatives? If so, which lean principles have you found most effective in driving software value?