Eliminate Waste is one of the core tenets of Lean Software Development.
By definition, the most efficient process is one in which there are no wasteful activities.
By learning to spot different types of waste, it is possible to start eliminating the activities that make our software development processes inefficient.
The lists below are intended as a starting point, to help us spot waste in our own software development processes.
Common Sources of Waste
Mary Poppendiek identified 7 common sources of waste in software production. She mapped each of these to one of the 7 wastes “muda” wastes in lean manufacturing.
- Partially done work (work in process)
- Extra features (over production)
- Relearning (extra processing)
- Task switching (handoffs)
- Waiting (delays)
- Handoffs (motion)
- Defects (defects)
I have noticed several other wastes that are common in the field:
- Unnecessary complexity (a form of over production, one that is especially common in software systems)
- Missed automation opportunities (a form of extra processing)
- Over-management (another form of extra processing)