- ManufacturingSoftware
- InventoryPartially done work
- OverproductionExtra features
- Extra processingRelearning
- TransportationHandoffs
- WaitingDelays
- MotionTask switching
- DefectsDefects
Lean software development applies lean thinking from manufacturing to building software: remove waste, learn fast and deliver value to customers in a steady flow. It focuses on the whole system, not just coding speed.
Mary and Tom Poppendieck introduced the approach in their 2003 book Lean Software Development: An Agile Toolkit. This guide covers the seven principles, the seven wastes of software, flow metrics, value stream mapping and how lean compares with agile and DevOps.
Key takeaways
Lean software development adapts lean thinking to software and focuses on the flow of value to the customer.
The Poppendiecks describe seven principles, from eliminating waste to seeing the whole.
Typical software wastes include partially done work, extra features, waiting and task switching.
Flow metrics such as lead time and work in progress show where work gets stuck.
Lean, agile and DevOps overlap and work well together rather than competing.
What is lean software development?
Lean software development is a way of running software work that treats waiting, rework and unused features as waste. The goal is to get useful software to users sooner, with fewer defects.
The Poppendiecks drew on the Toyota Production System. They also used earlier lean thinking set out by Womack and Jones in their 1996 book Lean Thinking. They adapted these ideas for a field where the product is code, not physical parts. See our overview of the Toyota Production System for the roots.
Software differs from a factory in that every project is new. Lean software therefore relies on learning, not on repeating a fixed process.
What are the seven principles of lean software development?
The seven principles are eliminate waste, amplify learning and decide as late as possible. The rest are deliver as fast as possible, empower the team, build integrity in and see the whole. The 2003 book framed them in this way.
In 2006 the Poppendiecks published a separate book, Implementing Lean Software Development: From Concept to Cash, with a revised list. Its seven principles are eliminate waste, build quality in, create knowledge, defer commitment, deliver fast, respect people and optimize the whole. Check which book you are reading before you quote a list.
Each principle has a practical meaning, covered in the next two sections.
Principles one to four: waste, learning, timing and speed
Eliminate waste means removing anything that does not add value for the customer. This starts with learning to see the waste, which the next section lists.
Amplify learning means shortening feedback loops. Short iterations, frequent demos and quick user testing all help the team find out sooner what works.
Decide as late as possible means keeping options open until you have enough facts. Make irreversible choices late and reversible ones early.
Deliver as fast as possible means shipping small pieces often. Short cycles cut the delay between an idea and customer feedback.
Principles five to seven: team, integrity and the whole
Empower the team means letting the people who do the work make decisions about how they do it. Managers set direction and remove obstacles.
Build integrity in means designing quality into the product from the start, through testing, clear design and automation, rather than inspecting at the end.
Late defects are expensive. A 2002 NIST study estimated that inadequate software testing infrastructure cost the US economy $59.5 billion a year, and that feasible improvements in testing could save about $22.2 billion of that.
See the whole means improving the entire flow from idea to customer, not one stage in isolation. A faster coding step does little if reviews and releases still queue for days.
What are the seven wastes of software development?
The seven wastes of software development are partially done work, extra features, relearning, handoffs, delays, task switching and defects. This is the list from the Poppendiecks' 2006 book. Their 2003 book mapped the manufacturing wastes more directly and listed partially done work, extra processes, extra features, task switching, waiting, motion and defects.
Partially done work is code that is written but not released. Extra features are functions that nobody uses but that still need maintenance.
Relearning is rediscovering knowledge the team already had. Handoffs lose information between people. Delays hold up decisions and releases.
Task switching drains attention across too many projects. Defects need rework and erode trust. Compare this list with the eight wastes of lean manufacturing.
How do flow metrics and value stream mapping help?
Flow metrics and value stream mapping show where work waits, so you can fix the biggest delays first. Both make invisible queues visible.
Useful flow metrics include lead time, the time from request to delivery, and work in progress, the number of items started but not finished. Say a change takes 10 days from request to release, but only 2 days are active work. The other 8 are waiting. These numbers are illustrative.
A value stream map for software traces each step from idea to production, noting active time and wait time. Our guide to value stream mapping explains the method, and the flow metrics tools category covers related software.
Limiting work in progress helps flow. A kanban board makes that limit visible, as described in our guide to kanban project management.
A worked example: one feature from request to release
This example is illustrative. A team traces one small feature through its steps and records active time and waiting time for each.
Request to start: 6 days waiting in the backlog, 0.5 days of refinement. Build: 2 days of coding, then 1.5 days waiting for review. Review: 0.5 days. Test: 1 day waiting for a test environment, 0.5 days of testing. Release: 3 days waiting for the weekly release window, then 0.5 hours to deploy.
Lead time is about 15.5 days. Active work is about 3.5 days, so flow efficiency is about 3.5 ÷ 15.5, or roughly 23%. Most of the delay sits in the backlog and the release window, not in coding.
The team picks the largest wait it controls. Moving from a weekly release window to releasing whenever a change passes its tests removes up to 3 days from every feature, which a faster coder could never match. The flow efficiency calculator runs the same arithmetic on your own numbers.
How do teams apply the principles day to day?
Teams apply the principles through small, repeatable habits: limiting work in progress, finishing before starting, and reviewing flow often. Each habit maps to one or more of the seven principles.
Eliminate waste: hold a short review of the backlog and drop requests nobody has asked about for months. Unused features cost maintenance time.
Amplify learning: demo work to real users every week, and note what surprised the team. Decide as late as possible: choose a database or vendor only when the first feature truly needs it.
Deliver as fast as possible: split a large feature into slices that each reach users. Empower the team: let the people doing the work set their own working limits.
Build integrity in: write automated tests alongside code, so quality is not left to a final check. See the whole: invite operations and support staff to planning, so delays beyond the code become visible.
Breaking a request into testable assumptions
The create knowledge principle starts with separating facts from guesses. Take an illustrative request: 'users need a dashboard'. It hides at least four assumptions:
Users want summaries
They would use a visual overview instead of the detail they open now.
The data can be trusted
The numbers are complete and current enough to act on.
It fits the workflow
People will open it at the moment they make the decision.
Someone will act on it
The organization will change something based on what it shows.
Each one can be tested on its own, often in days, with a sketch, a data check or a short interview. If the second one fails, no dashboard design will rescue the feature.
Lean across the software lifecycle
Lean is not limited to coding. Each stage has its own typical waste and its own lean habit:
| Stage | Typical waste | Lean habit |
|---|---|---|
| Discovery | Building on opinion or stakeholder pressure | Interviews, assumption maps and small prototypes before committing |
| Planning | A backlog that stores every idea ever mentioned | Small slices tied to an outcome, ranked by value, risk and learning |
| Design and architecture | Irreversible choices made early | Modular boundaries and clear interfaces that keep options open |
| Development and testing | Testing as a late, separate phase | Small stories, continuous integration and tests written with the code |
| Release and operations | Big, rare, stressful releases | Small releases, feature flags, monitoring and rollback plans |
Discovery
Building on opinion or stakeholder pressure
Lean habit: Interviews, assumption maps and small prototypes before committing
Planning
A backlog that stores every idea ever mentioned
Lean habit: Small slices tied to an outcome, ranked by value, risk and learning
Design and architecture
Irreversible choices made early
Lean habit: Modular boundaries and clear interfaces that keep options open
Development and testing
Testing as a late, separate phase
Lean habit: Small stories, continuous integration and tests written with the code
Release and operations
Big, rare, stressful releases
Lean habit: Small releases, feature flags, monitoring and rollback plans
How do you measure flow in software delivery?
Measure flow with four numbers: lead time, cycle time, work in progress and throughput. Together they show how fast work moves and where it waits.
Lead time runs from the customer's request to delivery. Cycle time runs from the moment work starts to the moment it is done. The gap between them is time spent waiting in the backlog.
Work in progress counts items started but not finished. Throughput counts items finished in a period, such as a week.
These figures are linked by Little's Law, which says average work in progress equals throughput multiplied by cycle time. Try it with our Little's Law calculator. Say a team finishes 5 items a week and holds 20 in progress. Average cycle time is then 4 weeks. The numbers are illustrative.
If you want shorter cycle time, the law shows you can cut work in progress. Track the trend over weeks rather than judging a single week. Software in the flow metrics tools category can chart these measures automatically.
Four kinds of measure to balance
Flow numbers alone can push a team to go faster at the expense of quality or people. Balance them with three other groups:
Flow
Lead time, cycle time, throughput, work in progress and work item age.
Quality
Escaped defects, incidents, test reliability and rework.
Learning
Experiment results, adoption and how customers actually use new features.
Sustainability
On-call load, unplanned work and signs of growing technical debt.
Use metrics to start a conversation, not to judge people. If lead time rises, the next question is why: slow reviews, larger stories, unstable environments or shifting priorities.
What is the difference between lean, agile and DevOps?
Lean is a set of principles about value and waste. Agile is a set of values and practices for iterative delivery. DevOps links development and operations to release reliably. They overlap and support each other.
Lean asks what creates value and removes the rest. Agile, based on the 2001 Agile Manifesto, emphasizes working software, collaboration and response to change.
DevOps, sometimes called lean DevOps when it stresses flow and waste, focuses on automation and shared ownership between development and operations. Our lean agile software hub covers the tools that bring these together.
The three differ in scope. Agile mostly governs how a team plans and builds in short cycles. DevOps mostly governs how code reaches production and stays healthy there. Lean looks across both, from idea to customer.
Here is an illustrative case. An agile team ships every two weeks, but releases wait four days for a manual approval. Lean flags that wait as waste, and a DevOps practice such as automated testing removes it.
Lean also adds a question the others do not always ask: is this work worth doing at all? Cutting an unused feature beats speeding it up.
That question matters because many ideas don't pay off. In Harvard Business Review, Ron Kohavi and Stefan Thomke report that at Microsoft about one-third of tested ideas prove effective, one-third have neutral results and one-third have negative results.
In practice, many teams use agile ceremonies, lean thinking about flow and DevOps automation at once.
Research on software delivery keeps returning to lean basics. Google's 2024 DORA report found that rising AI adoption came with an estimated 1.5% drop in delivery throughput and a 7.2% drop in delivery stability, and the DORA team concluded that basics such as small batch sizes and robust testing remain crucial.
Habits that keep lean practical
Lean lasts when it simplifies work rather than adding process. Five habits help:
Slice work around value
'build a database table' gives no feedback. 'Let a user save one preference' does, and it still includes the table.
Write policies down
Agree how work enters, what ready and done mean, and when work can jump the queue.
Improve where the work happens
The people doing the work know where the waste is. Leaders clear blockers and protect time to fix them.
Treat technical health as capacity
Tests, architecture and reliability decide how fast the team can change the product next month.
Make each retrospective produce one experiment
Pick one change, say what will be different and check it at the next retro.
Mistakes when adopting lean in software
- 1
Treating lean as cost cutting. Removing waste can lower cost, but using lean language to justify understaffing destroys trust in the approach.
- 2
Counting output instead of value. A team can finish many stories and still fail if they solve no real problem.
- 3
Adding process to an overloaded team. More meetings and metrics on top of too much work is more waste. Cut the load first.
- 4
Copying the tools without the thinking. A board and a few WIP limits do not make a lean system on their own.
- 5
Running it as a one-off program. Bottlenecks move as products and teams change, so improvement never finishes.
A ten-point lean software check
Use this list to see where a team stands. Few teams tick every item at first, and the next improvement is usually the gap that causes the most visible friction.
- Value: The team can explain the user value behind current priorities.
- Visibility: Work is visible from idea through release and feedback.
- Work in progress: Low enough that items actually finish.
- Slicing: Large initiatives are split into smaller learning steps.
- Quality: Checks happen early and often, not only at the end.
- Collaboration: Developers and product people shape requirements together.
- Balanced metrics: Flow, quality, learning and sustainability, not only output.
- Bottlenecks: The team removes them instead of working around them.
- Technical health: Treated as part of delivery capacity.
- Leadership: Leaders improve the system rather than pressing people to cover for it.
How do you start with lean software development?
Start by mapping how one piece of work moves from idea to release, then pick the largest delay and improve it. Small, visible steps build support better than a large program.
A simple start is:
1. Map one recent feature from request to production.
2. Mark the waiting time between steps.
3. Set a limit on work in progress.
4. Review the flow weekly and adjust.
The same thinking applies to design work, as our guide to lean UX shows. For software that tracks delivery flow, see the value stream management software category.
Frequently asked questions
What are the principles of lean software development?
What is the difference between lean and agile?
What is lean in software engineering?
What is the difference between lead time and cycle time?
What is lean DevOps?
What are the seven wastes of software development?
Choosing Value Stream Management Software?
Read the buying guide: what to look for, mistakes to avoid and questions to ask vendors.
Related guides
- Lean UX: principles, process and the think-make-check cycleLean UX explained: what lean user experience design is, its principles, the think-make-check cycle, hypothesis statements, the Lean UX canvas and agile fit.Read the guide
- Kanban project management: principles, practices and metricsKanban project management uses a visual board, WIP limits and flow metrics. Learn Anderson's principles and practices, and how kanban compares with Scrum.Read the guide
- Kaizen event: meaning, steps and a 3-5 day agendaA kaizen event is a focused workshop that improves one process in 3-5 days. Learn the meaning, roles, agenda, steps, measures and common mistakes.Read the guide
- Process improvement methodologies: 9 methods comparedProcess improvement methodologies compared: PDCA, lean, kaizen, Six Sigma, TQM, theory of constraints, BPR and retrospectives, with how to choose and combine.Read the guide
Sources
Books and papers show their publication year. Web pages show the month we last checked them.
- 1.Mary Poppendieck and Tom Poppendieck, Lean Software Development: An Agile Toolkit (Addison-Wesley, 2003)
- 2.David J. Anderson, Kanban: Successful Evolutionary Change for Your Technology Business (Blue Hole Press, 2010)
- 3.Donald G. Reinertsen, The Principles of Product Development Flow (Celeritas Publishing, 2009)
- 4.Mary Poppendieck and Tom Poppendieck, Implementing Lean Software Development: From Concept to Cash (Addison-Wesley, 2006)
- 5.Gregory Tassey, NIST, The Economic Impacts of Inadequate Infrastructure for Software Testing (NIST Planning Report 02-3, June 2002)
- 6.Ron Kohavi and Stefan Thomke, The Surprising Power of Online Experiments (Harvard Business Review, September-October 2017)
- 7.Google Cloud, Announcing the 2024 DORA report (cloud.google.com, October 2024)
- 8.DORA, Accelerate State of DevOps Report 2024 (dora.dev, checked October 2026)