lean software development waste

waste reduction is often seen as a way of increasing productivity. since lean is the grandfather of agile we can perhaps borrow this key concept and apply it to software engineering. the original 7 lean wastes were defined during the development of the toyota production system, in a factory production line setting. a common example is when a customer requests a new feature and has the business commit to developing it urgently. the team must then stop what they are working on and work on the new feature. when we follow convention we often create documentation because that’s the way it’s always been done. if the volume of paperwork is considerable, and goes un-read then the effort to produce it was wasteful. organisations sometimes rush to add a feature with the hope of winning a client, but then fail to do so. the new feature remains in the product un-used and increases the applications complexity. the fastest way to complete two things is to do one at a time.

some developers enjoy working on two things at the same time. when you switch task, there is a small-time cost to close what you were doing and regain your thoughts in the new task, known as a context switch. as soon as one individual needs to sign off on the architecture/design/ux/etc. the team cannot move forward until approval has been gained. if an item waiting on approval is low priority the team may be waiting for some time. imagine trying to find information relating to shopping baskets when files are named “sb design” and “sjoppinf baskits” the cost of fixing defects and the impact of re-work on the bottom line. the complex nature of software development makes defects inevitable but there are many ways to reduce their frequency such as testing and code reviews. the 7 wastes are used in conjunction with the continuous improvement practice (kaizen) when the waste is first identified. for a scrum team the 7 wastes can be used as part of a sprint retrospective meeting. discuss why that waste exists to see what the root cause is. add the improvement to the next sprint backlog and implement.

mary poppendieck, largely responsible for applying lean manufacturing principles to the world of software development, maps the 7 wastes (muda) to software development in the following way: mura is the waste of unevenness or inconsistency, of the things we are delivering, or in the rate at which we deliver. short and consistently sized feedback cycles, through small user stories, can reduce mura in a software development context. measure your takt-time or throughput at various levels (stories, epics, programs/projects) and at various stages to measure the unevenness of your process or workflow (see: cumulative flow diagrams).

we can reduce mura by applying slicing techniques and methods at all levels (see: neil killick’s slicing heuristic). you can measure the potential affects of muri by cross-referencing quantitative metrics like throughput and cumulative flow with team health (see: my talk on team metrics, spotify health check). kanban’s pull principle is a counter to muri.

they were interpreted for software development by mary & tom poppendieck in 2003 in “lean software waste of inventory maps to partially done work (or work in process) waste of over production maps to delivering extra or lean software development – 7 wastes of software development what is waste? waste 1:, .

1) inventory waste 0 reactions in lean software development, partially completed work is inventory in lean manufacturer, the seven original wastes consist of transportation, inventory, motion, waiting, eliminate waste[edit] building the wrong feature or product mismanaging the backlog,

When you search for the lean software development waste, you may look for related areas such as . what is waste in lean software development? what are the principles of lean software development? what are the 7 wastes in lean? what are the 5 principles of lean?