Todays blog dealing with ‘Lean’ is running on from my previous blogs. Last time I discussed Scrum and gave an outline and explored its functionality.
Lean can be defined as
“A systematic approach to identifying and eliminating waste through
continuous improvement, flowing the product at the pull of the customer
in pursuit of perfection.”
- Eliminating waste
Everything not adding value to the customer is considered to be waste:
- unnecessary code and functionality
- delay in the software development process
- unclear requirements
- insufficient testing, leading to avoidable process repetition
- slow internal communication
Some waste is obvious but it is key to be able to spot it as this minimal amount of waste may be saving from further waste building up in the long run.
- Amplifying learning
Creating Feedbacks important in the development process Running tests often to keep track of defects reported so as to avoid backlog. Important to reduce documentation and put more codin twith th realtime feedback.
- Deciding as late as possible
With big projects it is important to realize sense of uncertainty that environment can change. The more complex a system is, the more capacity for change should be built into. An agile software development approach can move the building of options earlier for customers, thus delaying certain crucial decisions until customers have realized their needs better.
- Delivering as fast as possible
It is vital that all processes are delivered as fast as possible feedback, programmes, coding etc as in the technology sector everything advances quickly so iterations need to be frequent. Delays can be costly to a project!
- Empowering the team
Mangers need to be able to lead a team. Creating sense of motivation workers need a purpose to focus on to develop.
- Building integrity
Perceived integrity is the customer’s experience with your software. Conceptual integrity is how well the architecture and system components flow together to bring about the perceived integrity.
- Seeing the whole
Most problems are solved by breaking up into parts don’t normally do this with Lean.
Toyota used lean manufacturing in its production process in the 80’s. Similar to Lean software development.