Skip to main content

Lean Software Development

Updated 2 min read

Share this page

Send the link, quote the definition with a link back, or show it as a card on your own site.

https://softwaredictionary.org/terms/lean-software-development

In short

Lean software development applies lean manufacturing ideas to software, aiming to deliver customer value quickly by removing waste and improving flow.

What is lean software development?

Lean software development applies the principles of lean manufacturing, especially the Toyota Production System, to building software. Its central aim is to deliver value to customers as quickly as possible by eliminating waste, meaning anything that doesn't add value from the customer's point of view. Mary and Tom Poppendieck popularized the approach in their 2003 book Lean Software Development: An Agile Toolkit.

The Poppendiecks describe seven principles: eliminate waste, build quality in, create knowledge, defer commitment, deliver fast, respect people, and optimize the whole. In software, waste includes partially done work, features nobody uses, handoffs between teams, task switching, waiting for approvals, relearning forgotten decisions, and defects. Teams use value stream mapping, a drawing of every step from request to delivery, to see where work sits waiting, then limit work in progress and track lead time, the total time from request to delivery.

Lean is like streamlining a restaurant kitchen: noticing that finished plates wait ten minutes because one person garnishes every dish matters more than making the cooks chop faster. Lean thinking is the foundation of Kanban and strongly influences DevOps, continuous delivery, and the idea of shipping a minimum viable product to learn quickly.

Lean is often confused with Agile. The two overlap heavily and Lean is often counted as part of the Agile family, but Agile emphasizes short iterations, feedback, and collaboration, while Lean focuses on flow and waste across the whole value stream, from idea to customer. Lean software development is also different from the Lean Startup method, which is about testing business ideas through build, measure, learn cycles. Despite the name, Lean does not mean cutting staff or budgets.

Key takeaways

  • Lean software development adapts lean manufacturing ideas to software.
  • Its main goal is delivering customer value quickly by removing waste.
  • Common software wastes include waiting, handoffs, unused features, and defects.
  • Value stream mapping and lead time reveal where work gets stuck.
  • Lean underpins Kanban and influences DevOps practices.

Example

A simple value stream map for one featuretext
Value stream for one feature, from request to customer

Step              Working time   Waiting time
Idea approved     1 day          9 days    (waiting for a planning meeting)
Development       3 days         4 days    (waiting for code review)
Testing           1 day          6 days    (waiting for the test environment)
Release           0.5 days       7 days    (waiting for the monthly release)

Lead time: 31.5 days, of which only 5.5 days are real work (about 17%)
Biggest waste: waiting. Fix the release and test-environment delays first.

Readers ask

What are the seven principles of lean software development?

They are eliminate waste, build quality in, create knowledge, defer commitment, deliver fast, respect people, and optimize the whole. Mary and Tom Poppendieck defined them in their 2003 book.

What is the difference between Lean and Agile?

Agile focuses on delivering software in short, feedback-driven iterations with close collaboration. Lean focuses on smooth flow and removing waste across the whole process, and the two are often used together.

See also

Spotted a mistake or something missing on this page?Suggest an edit

Read a random page
Open today's review
Switch to the dark theme
Read this page in Türkçe

More

Settings