
Stop Optimizing, Start Eliminating: Lean Principles for Software
Published: October 6, 2025
·5 min read
Introduction: Why Elimination Beats Optimization
Imagine you are building a task management app. Your goal is to make it fast and user-friendly. Users spend a lot of time updating task statuses, so the team focuses on speeding up this process. Weeks of work pay off, and status updates are now twice as fast. Success, right? Not quite. The real question is, should users be updating statuses at all? Could this step be automated or removed entirely?
This small shift in perspective reveals a bigger problem in software development. Teams often chase optimization when elimination provides the real win. This applies to any system, from SaaS platforms to complex RAG pipelines, and even to the process of building the software itself.
Lean production offers a simple yet powerful tool: the Three Types of Work framework. By understanding what truly creates value, you can spot inefficiencies that optimization alone cannot fix.
In this post, we will explore the framework, provide examples of the three types of work, and examine real-world software scenarios. By the end, you will have a clearer method to identify waste and build smarter, leaner software.
Learning from the Factory Floor: The Three Types of Work
Before becoming a software engineer, I studied mechanical engineering, where I first encountered the Three Types of Work framework from lean production. During an internship at Mercedes-Benz, I was tasked with optimizing assembly workstations.
Each workstation had a carefully planned sequence of tasks. Observing operators in action, I noticed they sometimes found better ways to work than the plan suggested. One operator moved a box of screws closer to his workstation rather than keeping it on the shelf. The design team had seen the shelf placement as ideal, but reality proved otherwise.
This taught me two critical lessons:
- Planned efficiency is not always real efficiency.
- Every step in a process or system should be questioned.
If a task does not contribute to what the customer values, it could be waste. This mindset followed me into software engineering. Now, whenever I design a feature or workflow, I ask, Is this step really necessary?
The Three Types of Work
- Value-adding (VA): Directly contributes to the end goal, such as code that users interact with.
- Essential Non-value-adding (ENVA): Necessary for the system to function, like testing or logging, but does not directly deliver value.
- Waste (W): Steps that create no value and are unnecessary, often caused by poor design, outdated assumptions, or redundancy.
In the Mercedes-Benz example, operators reduced waste by bypassing steps that added no real value. This same approach applies to software: how much of your process or product is built on outdated assumptions?
The Eight Types of Waste in Software
Lean production identifies eight types of waste. Here is how they map to software development:
- Overproduction: Building features users do not need.
- Waiting: Delays from approvals, builds, or blockers.
- Unnecessary transport: Moving data or tasks between systems without reason.
- Over-processing: Reworking features due to unclear requirements.
- Excess inventory: Too much work in progress or feature bloat.
- Unnecessary movement: Switching between tools or environments too often.
- Defects: Bugs that create rework.
- Unused employee creativity: Team ideas or customer feedback are ignored.
Recognizing these wastes helps streamline processes, reduce inefficiencies, and focus energy on what truly matters to the user.
Applying Lean Principles to Software and RAG Pipelines
Imagine a digital assistant built to answer questions about financial reports. A user asks, "What was Company X's revenue in 2023?" Instead of scanning the entire report, the system finds the most relevant paragraph and rewrites it into a clear answer. This is a basic Retrieval-Augmented Generation system, which relies on three components:
- Document Store: The container of all reports.
- Retriever: Finds the most useful passages.
- Generator: Rewrites the passages into a concise answer.
At first glance, this seems efficient. Applying the Three Types of Work framework reveals hidden inefficiencies.
Value-Adding Work (VA)
The core of the RAG system that directly delivers user results. Retrieving and presenting the correct figure is what users care about.
Essential Non-Value-Adding Work (ENVA)
Tasks necessary for the system to function but not visible to users, like embedding documents or re-indexing data. Optimizations can reduce unnecessary repetitions.
Waste (W)
Work that adds no value, such as over-retrieving irrelevant documents, reprocessing unchanged files, or storing unnecessary metadata. These increase costs and slow performance.
Focusing on VA and reducing ENVA or Waste improves efficiency, reduces costs, and provides a better experience for users.
Conclusion: Build Smarter Software by Eliminating Waste
Lean production principles are just as powerful in software development as on the factory floor. The Three Types of Work framework helps classify tasks, uncover inefficiencies, and focus on what truly adds value.
This approach works on two levels:
- Development process: Streamlining how software is built from planning to deployment.
- Software product: Designing systems that work smarter for users.
Even sophisticated pipelines like RAG benefit from this analysis. By asking, Does this step directly help the user? you identify waste and opportunities for simplification.
Frequently Asked Questions
What is the Three Types of Work framework?
It is a lean production tool that classifies every task into value-adding, essential-but-non-value-adding, or waste. This helps teams focus on what matters most.
How can lean principles improve software design?
They help you eliminate unnecessary work, optimize processes, and prioritize features and workflows that deliver real value to users.
How do I identify waste in my software or processes?
Examine every step and ask if it contributes to the user experience or business outcome. Track redundancies, rework, and unnecessary steps.
Does this apply to AI or ML systems?
Yes very much so. Especially complex systems like RAG pipelines can have hidden inefficiencies. Typically the more complex a system the more opportunities for inefficiencies to sneak in. Applying the framework highlights areas to reduce costs and improve performance.
References
[1] Eric Ries. 2011. The Lean Startup
[2] Jeffrey K. Liker. 2004. The Toyota Way: 14 Management Principles from the World's Greatest Manufacturer