Lean Thinking in Software Development
Waste isn’t just inefficient—it’s invisible, until you name it.
Lean Manufacturing was originally designed for physical factory work: Toyota’s Production System (TPS)was all about eliminating waste from the assembly line. But it turns out, software development has its own kind of factory floor. And plenty of waste.
Lean Product borrows from TPS and applies it to software: what if we treated code like car parts, and our team like a production line? Suddenly, waste becomes visible, and fixable.
Imagine your backlog is a factory floor. Every story your team picks up is a product in the making. And your job? Get that product into a customer’s hands, as quickly and cleanly as possible.
From Raw Material to Shipping Dock
🙌 The goal
Get stories from “Unstarted” to “Done” as quickly, and cleanly, as possible. Think of each one like a product on your factory floor. The faster it ships, the faster your customer gets value.
📦 Unstarted stories = Raw materials
Think of unstarted stories like crates of parts stacked in a warehouse. They look productive, but they don’t help your customer. That’s why I’ve found a 2–3 week future backlog feels just right: it stays useful, not speculative. Having months of stories in your backlog might feel safe. It’s not. It’s waste.
🎨 Work in Progress (WIP) is like unfinished inventory.
Customers don’t pay for half-finished features. Stories that are in progress or even done but not released? Still zero value. The more WIP you have, the more unrealized value you carry. Waste.
🐞 Bugs = Defects in your production line
Bugs aren’t just a one-off mistake. They’re signals of something wrong upstream. If you don’t fix the machine, it’ll keep cranking out defective parts. And that tech debt adds up. Waste.
🧹 Chores = Maintenance
You wouldn’t run a factory without servicing the machines. In software, we call that refactoring, tech upgrades, removing cruft. Preventive care keeps your delivery line flowing. Not waste.
✅ Done = Your shipping dock
Done is the finish line. It’s when an idea becomes reality—delivered to a customer, in use, adding value. Everything before that? Just potential.
Lean Values that work for building software
When I first started using Lean thinking, I was hyper-focused on process. But over time, I realized Lean isn’t about discipline, it’s about flow. Intentionality vs minimalism. And it helped me ask better questions about what my team was working on, and why. Like are we solving the right problem? Are we solving it in the simplest, fastest way possible?
1. Define Value
If a story doesn’t clearly solve a real customer or business problem—it’s not valuable. It’s noise. Your job as PM is to help your team see why a piece of work matters. If you can’t explain it clearly, that’s a red flag. Time to rewrite it, or go deeper into the problem space.
2. Improve Relentlessly
Don’t chase perfection. Chase learning.
Lean favors fast, imperfect value over slow, speculative bets. Something small that delivers 2/10 value now can help you ship smarter next time. Something big that takes months but never lands? That’s waste. Feedback loops beat crystal balls every time.
3. Eliminate Waste
Waste isn’t always obvious. It hides in over-planning, over-polishing, and over-working.
A couple common culprits:
Overplanning: The plan looks great… until the moment things change. I can’t count how many roadmaps have expired in a month.
Too much WIP: Work that’s started but not released delivers zero value. Too much of it just clogs your pipeline.
Your job is to keep the line clear. Ensure you do as much work that matters, as as little that doesn’t.
4. Build Quality In
Quality isn’t something you tack on later, it’s the foundation. Every improvement you make upstream (in planning, testing, or clarity) reduces downstream waste. Clean code, clear stories, and strong defaults make quality the easiest path. In practice:
Always negotiate scope and time. But never quality.
Build with change in mind. Flexibility is future-proofing.
5. Optimize the Whole
Zoom out. Your team is just one part of a bigger delivery system. Know where your work starts and ends and how it connects to the next team, the next system, the end user. If you don’t understand the flow of value, you’re flying blind.
6. Create Knowledge
Transparency creates alignment. Hoarded knowledge slows teams down. Share openly. Document what matters. Broadcast decisions and context. It saves time and reduces rework later.
7. Defer Commitment
Commitment feels productive. But committing too early is one of the sneakiest forms of waste.
Hold off until you have enough evidence to be confident. That doesn’t mean delay for the sake of it—but make room to learn before locking in. Half-baked certainty is expensive.
Managing waste in a product backlog
This chart is a good reference. When you see signs of friction, misalignment, or delay, it’s almost always traceable to one of these categories. Use it as a diagnostic tool. Revisit it regularly.
Lean thinking isn’t about doing less. It’s about doing the right things, faster. With less drag. Less bloat. Less rework. It helps you see your backlog not as a list of tasks—but as a flow of potential value, just waiting to be unblocked.