Can Lean work in software development? The answer lies in Lean development, which is the application of Lean principles when developing software. Software development, like manufacturing (where lean originated), has definable and repeatable processes, meaning Lean can be used to minimize waste and maximize value through process improvement.
This also means better software (more satisfaction) for customers and reduced costs and increased profits for the organization. Here’s a brief overview of the seven principles that guide Lean development:
1. Eliminate Waste
Eliminating waste is simply removing anything in your software that won’t provide any value to the end-user. One example is added features that users can completely ignore without impacting user experience but can affect the performance of the software and/or unnecessarily bulk up the code.
2. Create Knowledge
To create knowledge, the team needs to set in place structures that help document and retain the knowledge gained throughout the project. This can be done through things like code reviews, project documentation and pair programming, among others.
3. Build Quality In
Rather than focusing on producing a perfect product through things like excessive testing and bug reporting, the team should focus on producing a quality product.
4. Fast Delivery
The team should create a consistent and manageable workflow (based on understanding what users find valuable) for faster delivery.
5. Respect Everyone
This involves creating a working environment where everyone feels safe and valued, especially when things go wrong. Everyone on the team should feel empowered and respected.
6. Delay in Making Decisions
This doesn’t mean that decisions should be delayed out of procrastination. Rather, instead of making rushed decisions, wait until you have all the necessary data so decisions are more informed.
7. Optimize the Whole
To avoid releasing a sub-optimal product, the whole production process should be optimized. Doing this allows the team to visualize the value stream as a whole, allowing for the fast delivery of valuable components when needed.