Lean - tugosera/tralalero-tralala GitHub Wiki


📘 Summary: Lean (Lean Thinking / Lean Software Development)

1. What is Lean?

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.


2. The Goal of Lean

  • Deliver value to the customer quickly and efficiently.

  • Eliminate non-value-adding activities (waste).

  • Continuously improve the value stream.


3. Lean Principles (in IT, by Mary and Tom Poppendieck)

  1. Eliminate waste — avoid activities that do not create value.

  2. Amplify learning — use feedback, iterations, and experiments.

  3. Defer decisions — maintain flexibility for better choices later.

  4. Deliver as fast as possible — speed reduces risk and increases value.

  5. Empower the team — people find optimal solutions themselves.

  6. Build quality in — automation, testing, CI/CD from the start.

  7. Optimize the whole — focus on the entire system, not just parts.


4. 7 Types of Waste in Lean for IT

  1. Overproduction — code the customer doesn't need.

  2. Waiting — delays due to external dependencies.

  3. Transportation — unnecessary movement of data or tasks.

  4. Overprocessing — overly complex solutions.

  5. Inventory — unused or unfinished features.

  6. Motion — frequent context switching.

  7. Defects — bugs, fixes, rework.


5. Key Lean Tools

  • 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.


6. Applying Lean in IT

  • 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.


7. Lean vs Other Approaches

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

12. When to Apply Lean?

  • 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.


⚠️ **GitHub.com Fallback** ⚠️