Helping Professionals and Organisations Grow
LeanmantraLeanmantraLeanmantra
(Monday- Friday)
info@leanmantra.com
Baner

The 7 Wastes of Lean in Software Development

The 7 wastes of Lean in Software Development

The Toyota Production System derived a Lean Manufacturing philosophy that puts emphasis on eliminating wastes. The Toyota Production System defined 7 types of waste which came to be called The 7 Wastes of Lean. Here, we will try to understand how the 7 Wastes of Lean can apply to Software Development.

What is waste in lean?

The concept of waste comes from lean manufacturing applied in the Toyota Production System. Waste is any activity that does not increase the value of the product or service. However, it does increase the cost. Say, for instance, you are serving ice cream to your customers and you put a cherry on top of your ice cream but your customers do not really want to pay extra for the cherry, then it is adding no value to your customer. In this example, the activity of adding cherries to the ice cream is a waste, as the customer really does not want to pay for the extra cherry. Now in reality you may be someone who would love the cherry on your ice cream, so this example may not work for you. 

One thing to note here is how eliminating waste cannot be done in a silo, it requires a deeper understanding of what is valuable for your customer. 

The key driver for eliminating waste in the case of the Toyota Production System is to improve its quality, cost, and productivity. Which further helps improve customer and employee satisfaction. For TPS, eliminating waste is also about “respect” for its employees and customers.

What are the 7 wastes?

Eliminating waste is a Continuous Improvement exercise undertaken at Toyota Product System. As part of this exercise, the following 7 factors are considered:

  1. Defects
  2. Inventory
  3. Overproduction
  4. Over-processing
  5. Motion
  6. Transportation
  7. Waiting
The 7 wastes of Lean Development

 

Now, there are a couple of things to focus on.

How do The 7 Wastes of Lean Development apply to the manufacturing space?

How can the 7 Wastes of Lean be applied to Software Development?

How can you eliminate The 7 Wastes of Lean?

Let us look at each one of these factors in detail and how they apply to manufacture space and how they also apply to software development.

 

1. Defects

Defects must be caught as early as possible and must not be passed to downstream processes. Every defect passed to the customer creates a poor experience for the customer.

Defects add cost and risk to customers. When it comes back for fixing, it becomes an additional cost, with almost no additional value to the customer. 

For TPS, even 1 defect in a 1000 is an expensive defect. For manufacturing systems, every process must have quality built-in in a way that no defect is passed on to the next downstream process. At TPS, as soon as a defect is identified, one must halt the system and find the root cause, so the system itself is fixed in a way that it does not create more defects. 

For software development, defects are expensive, they require rework effort to fix them and add no new value to customers. 

How to eliminate defects?

Complete elimination of defects is ideal but practically almost impossible however we must put processes in place, so

  • Defects can be prevented altogether and
  • Defects are identified as early as possible

Some of the strategies to address defects are

  • Build quality in the process itself – for software development teams, this means automated unit tests, behavior and acceptance tests, and automated code review.  
  • Test-Driven Development – create tests before coding functionalities and the and then code the functionalities to pass the test
  • Engage business customers as early as possible. 
  • Use 5 whys to identify the root cause of defects and fix the root cause in the process itself.

 

2. Inventory

For manufacturing systems, keeping inventory of parts or products, means more cost to keep the inventory, more effort to process the parts, and more probability of quality issues. 

For software development, inventory translates into

  • Undeployed code or
  • Untested code or
  • Uncoded documentations

These are partial work, which is not delivered to customers. These partial work

  • Runs the risk of becoming obsolete 
  • No way to know that what work is done or not done
  • Adds unnecessary complexity to code 
  • Adds defects to code
  • Adds risks to customer 
  • Holds up critical resources

How to prevent partial work from getting into your development system

  • Defer commitment to the last moment
  • Start finishing and stop starting 
  • Define minimum viable product (MVP) 
  • Split requirements into small features 

 

3. Overproduction

For manufacturing, overproduction is about producing more parts or products than what your customers need, producing too much or producing too early. This is usually done with the paradigm of “just in case”. 

Producing more than what your customers need, or producing too early, gives a sense of control in situations when there are breakdowns or defects in the system. Overproduction is mistakenly taken as an increase in efficiency. 

For software development, overproduction relates to developing much more features than what customers really need or developing features that customers are not likely to need in near future.  

These extra features that customers are less likely to use, end up 

  • Consuming effort and cost and 
  • They add more complexity to the product
  • They increase defects and with it comes more business risks

How to prevent this type of waste?

  • Minimize this type of waste by focusing on what your customer really really need and
  • Develop Minimum Viable Product (MVP).
  • Defer commitment until the last moment.
  • Prioritize your features around cost, risk and value

 

4. Over-processing

Steps or activities in your value stream that are not really value-added to customers. For example, my car has a rear wiper that I hardly get to use in the part of the world where I live. 

For software development, examples of overprocessing are 

  • Over documentation
  • Over designing 
  • Over architecting 
  • Over reviews
  • Too many meetings
  • Too much discussions

How to prevent this type of waste?

  • Again focus on what customer really wants
  • Focus on minimum viable documentation, design, architecture and coding.
  • Agreement within the team for continuous improvement to meetings and interactions.
  • Minimum viable governance

 

5. Motion

For 7 Wastes in Lean manufacturing, this relates to the movement of people doing the work. Designing the workplace such that the movement is minimal in order to accomplish the work. 

For software development, this relates to task switching. When one person is allocated to multiple projects or types of work, he/she is likely to be switching tasks several times throughout the day. 

This task switching, also referred as context switching, is likely to 

  • Increase the effort for each task, 
  • Increase cycle time of each task to complete and 
  • It is likely that it would cause more defect leakes.

How to prevent this type of wastage?

  • Define Work In Progress (WIP) limits 
  • Prioritize around cost, risk and value

 

6. Transportation

This type of waste relates to movement of materials in the manufacturing world. The idea should be to minimize the movement.

For the software development space, this would relate to hand-offs of work that happens. Transferring a project from one team to another or handing off work from one person to another, these situations cause important knowledge and learning to be lost. No amount of knowledge transfer exercise can actually help gain all the knowledge. 

How to prevent this type of wastage?

  • Create cross-functional teams
  • Co-located teams
  • Work towards collaborative work culture instead of silos.
  • Maximize knowledge across team members 

 

7. Waiting

Time is a critical resource, there is always a cost of delay. Any waiting in the workflow must be eliminated. 

For manufacturing or software development, waiting can be caused by 

  • Dependencies on downstream
  • Breakdowns and defects
  • Dependency on approvals

How to eliminate this type of wastage?

  • Map your workflow and identify the delays
  • Improving communication and collaboration across teams and members
  • Reduce dependencies by 
    • Minimizing approval requirements
    • Collaborating with downstream on better turnaround
    • Minimizing defects as early as possible

 

To Summarize in short:

How do The 7 Wastes of Lean affect Software Development?

The overall conclusion is that the 7 Wastes of Lean cause an increase in defects, wastage of time and efforts, increased complexity, loss of knowledge, and increase in the costs and risks.

How can one Eliminate The 7 Wastes of Lean?

The wastage can be prevented or eliminated by basically using The 6 Rules for Effective Kanban– which emphasize on

  • not allowing defect leakage,
  • working on minimum viable products,
  • focusing on the customers’ needs,
  • balancing the demand and capability to
  • optimize the flow and
  • increasing predictability.

Want to know more about how Kanban can help you in eliminating wastes?

Join our certification based training programs – Team Kanban PractitionerKanban System Design, and Kanban System Improvement

Leave A Comment

X