One of the principles of Lean is “Eliminate Waste”. The concept of “waste” in business was coined in the manufacturing industry during late 1940s. It was used by Toyota. In those days, automobiles involved a huge amount of manufacturing, and companies had to charge their customers a high price. The only option for Toyota to reduce car prices was to find ways to reduce the manufacturing costs
What does waste mean?
Waste means, in fact, the opposite of value (a capability delivered to the customer through which the customer attains a tangible or intangible benefit). For instance, a team meeting without any concrete purpose is a waste of time.
The seven wastes listed below were identified in manufacturing in the Toyota Production System (TPS) by Shigeo Shingo:
- Inventory: Unfinished goods (also called as “work in progress,” or WIP)
- Overproduction: Producing more than the demand requires
- Extra processing: Additional steps in the process that aren’t really needed
- Transportation: Shipping the goods from one place to the other
- Waiting: Lag between process steps
- Motion: Moving around within the process
- Defects: Flaws in the deliverables that impact their features/functionality
What are the wastes of software development?
Based on the seven wastes of manufacturing industry, Mary and Tom Poppendieck have defined seven wastes that are appropriate for software development –
Waste #1: Partially done work
In each Sprint, team members committed (or being accountable for) to do a fixed number of user stories but there are times that team member couldn’t finish all of them so team members should evaluate why they couldn’t end them in order to reduce this kind of waste.
Waste #2: Extra Features
During the inception the Product Owner set up the vision of Product Owner and then he build a Product Backlog (where features are prioritize) putting Features that provides value to their product but as Pareto Principle said: many times there is not necessary to develop all the features because many of them are useless.
Waste #3: Relearning
Sprint over sprint you are getting knowledge in order to use it and avoid reinventing the wheel.
Waste #4: Hand-offs
This happens when the working jump from one person to another person as soon as the first finish the work.
How to eliminate it?
Well, the best plan is to remove dependencies between user stories (and features) or move all the user stories with dependencies to one team in order to mitigate the risk.
Waste #5: Delays
Anything that causes more time to deliver a value-added activity, or delays the beginning of the value-added activity.
How to eliminate it?
Removing the bottlenecks and redesign every slow process in order to get a cadence between them.
Waste #6: Task Switching
This is when the Product Owner change priorities and team member have to jump from one user history to other without ending them.
The main reason of this wrong behavior is that Product Owner has not gotten a clear vision of the Product or sometimes competitor release a new product into the market and you need adjust (and release) your product as soon as possible.
Waste #7: Defects
This is one of the biggest issues in software development because after a while you have been created enormous technical debt and from there your best option is to invest time and effort to reduce it Sprint over Sprint.
To conclude, many people think that Lean is not a good approach to Agile team, but they are wrong. Indeed, every company has to apply first Lean and then move to Agile!!!!