The Seven Wastes of Software Development

Based on Toyota’s lean manufacturing, the same concepts apply to agile software development. They are:

  1. Partially Done Work: Work in Progress, e.g. Code not checked in, code not tested, test cases not executed, requirements analyzed but not developed, etc.
  2. Extra Features: features fully developed, tested and delivered to the end user, but was never used
  3. Relearning:  Spending effort in learning something more than once because of loss of information. This loss occurs due to lengthy delays or task switching or handoffs.
  4. Handoffs: Passing a piece o information from one team member to another, which may cause loss or change in information. For example, communicating customer requirements from a customer representative to the analyst, then a team leader, and finally to a developer.
  5. Delays: These are time intervals in which one or more team members are idle waiting for input from another activity. For example, waiting for staffing in a project, approval processes, lengthy feedback loops, requirements gathering, etc.
  6. Task Switching: Interruptions during execution, which causes huge ineffectiveness in time usage, like switching focus or priorities, working on more than one thing at a time, serving multiple customers at a time, fixing issues while developing new features, etc.
  7. Defects: Defect waste is not only the time spent in testing and fixing the defect, but also the time it lies undetected, which causes subtle undetected issues in the operations at the customer site.

Use this in your retrospectives to gain insight and improve your team’s efficiency and productivity.