The term lean software development originated in a book by the same name, written by Mary Poppendieck and Tom Poppendieck in 2003. The book restates traditional lean principles based on the Toyota Production System (TPS), as well as a set of 22 tools and compares the tools to corresponding agile practices.
Lean comprises seven principles, very close in concept to lean manufacturing principles:
Lean regards everything not adding value to the customer as waste (Muda).
In order to eliminate waste, teams must be active in looking for it. If some activity could be bypassed or the result could be achieved without it, it is waste. Work that is only partially complete and doesn’t yet meet the Definition of Done is waste. Extra features, like paperwork and features not often used by customers, are waste. Switching people between tasks is waste. Waiting for other activities, teams, processes is waste. Relearning required to complete work is waste. Defects and lower quality are waste. Managerial overhead not producing real value directly related to the customer is waste.
A value stream mapping technique is used to identify waste. The second step is to point out sources of waste and to eliminate them. Waste-removal should take place iteratively until even seemingly essential processes and procedures are removed.
Lean is a strategy for understanding waste and flow. The practices help teams imp[rove productivity through eliminating waste.