Skip to main content

Lean Software Development

An Agile software development methodology that emphasizes eliminating waste, building quality in, creating knowledge, deferring commitment, delivering fast, respecting people, and optimizing the whole.

Practices Employed

  • Analysis: Lean uses value stream mapping to analyze the flow of materials and information, identifying areas of waste. See:
    • Value Stream Mapping
  • Automated Testing: Lean ensures that quality is built into the product from the beginning. See:
    • Build Quality In
  • Automation: Lean uses automation to eliminate waste and improve efficiency, especially in testing and deployment processes. See:
    • Pull Systems
    • Automation
  • Change Management: Lean emphasizes managing changes effectively to ensure continuous improvement and adaptability.
  • Coding: Lean practices emphasize building quality in throughout the coding process to prevent defects. See:
    • Build Quality In
  • Configuration Management: Lean ensures consistency and quality across different environments through configuration management.
  • Debugging: Lean uses techniques like the 'Five Whys' to identify the root cause of defects and address them effectively. See:
    • Root Cause Analysis
  • Design: Lean uses set-based concurrent engineering to explore multiple design options and narrow down to the best solution. See:
    • Set-Based Concurrent Engineering
  • Estimating: Lean focuses on working in small, manageable batches to reduce cycle time and increase feedback, aiding in more accurate estimation. See:
    • Small Batch Sizes
  • Integration Testing: Lean builds quality in, and integration testing is part of ensuring quality from the beginning. See:
    • Build Quality In
  • Measurement: Lean uses empirical data to understand and improve the development process. See:
    • Empirical Process Control
  • Monitoring: Lean implements pull systems where work is pulled based on demand, ensuring that no work is done until it is needed. See:
    • Pull Systems
  • Pair Programming: Lean encourages collaboration through cross-functional teams. See:
    • Cross-Functional Teams
  • Performance Testing: Lean ensures that performance is built into the product from the beginning. See:
    • Build Quality In
  • Prioritising: Lean uses Kanban to prioritize and manage work. See:
    • Kanban
  • Prototyping: Lean uses set-based concurrent engineering to explore multiple options and narrow down to the best solution. See:
    • Set-Based Concurrent Engineering
  • Release Delivery: Lean focuses on delivering value to the customer as quickly as possible. See:
    • Deliver Fast
  • Retrospectives: Lean regularly reflects on and improves the development process through continuous improvement and Kaizen. See:
    • Continuous Improvement
    • Kaizen
  • Security Testing: Lean ensures that security is built into the product from the beginning. See:
    • Build Quality In
  • Stakeholder Management: Lean emphasizes respecting people and engaging stakeholders. See:
    • Respect People

Description

"Lean software development is a translation of lean manufacturing principles and practices to the software development domain. Adapted from the Toyota Production System,[1] it is emerging with the support of a pro-lean subculture within the agile community. Lean offers a solid conceptual framework, values and principles, as well as good practices, derived from experience, that support agile organizations." - Lean software development, Wikipedia

Lean Software Development emphasizes eliminating waste, building quality in, creating knowledge, deferring commitment, delivering fast, respecting people, and optimizing the whole. Key practices in Lean include value stream mapping, pull systems, Kanban, small batch sizes, continuous improvement, root cause analysis, and respecting people. Lean focuses on improving efficiency and quality through these principles and practices.

See Also