Lean - tugosera/tralalero-tralala GitHub Wiki
Lean is a management philosophy and a set of practices aimed at maximizing customer value while eliminating all forms of waste.
The method originated in manufacturing (Toyota Production System) and was later adapted for software development as Lean Software Development.
-
Deliver value to the customer quickly and efficiently.
-
Eliminate non-value-adding activities (waste).
-
Continuously improve the value stream.
-
Eliminate waste — avoid activities that do not create value.
-
Amplify learning — use feedback, iterations, and experiments.
-
Defer decisions — maintain flexibility for better choices later.
-
Deliver as fast as possible — speed reduces risk and increases value.
-
Empower the team — people find optimal solutions themselves.
-
Build quality in — automation, testing, CI/CD from the start.
-
Optimize the whole — focus on the entire system, not just parts.
-
Overproduction — code the customer doesn't need.
-
Waiting — delays due to external dependencies.
-
Transportation — unnecessary movement of data or tasks.
-
Overprocessing — overly complex solutions.
-
Inventory — unused or unfinished features.
-
Motion — frequent context switching.
-
Defects — bugs, fixes, rework.
-
Value Stream Mapping — visualizing the value delivery process.
-
Kaizen — continuous step-by-step improvement.
-
Pull System — work starts based on actual demand.
-
Just-In-Time (JIT) — delivery only when needed, not in advance.
-
WIP Limits — limit the number of tasks in progress.
-
Kanban Boards — visualize the workflow.
-
Used in Agile, DevOps, startups, and support teams.
-
Forms the basis of the Lean Startup approach.
-
Often combined with Scrum or Kanban.
-
Helps quickly test hypotheses and reduce technical debt.
-
Improves development quality and speed.
Approach | Main Focus | Management Style | Best Suited For |
---|---|---|---|
Lean | Value stream, waste elimination | Flow-based constraints | Continuous development, mature teams |
Scrum | Iterations and feedback | Sprints | Product teams |
Kanban | Process optimization | Task flow | Support, DevOps |
Waterfall | Phases and documentation | Sequential planning | Formal projects |
-
When the goal is to optimize the value delivery process.
-
When handling many small tasks and changes.
-
In support and DevOps environments.
-
In products with rapidly changing requirements.
-
In teams capable of self-organization and continuous improvement.