Lean software development (LSD) is a translation of lean manufacturing principles and practices to the software development domain. Adapted from the Toyota Production System, 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 the experience, that supports agile organizations.
Lean principles center on the idea that less is more, and they aim to streamline every part of the software development lifecycle.
The concept is that efficiencies can be applied and waste can be managed at all levels: each individual, every department, interdepartmental operations, the organization as a whole, and the relationships of the organization with customers and suppliers.
When it comes to waste, the lean philosophy has a very broad definition that includes anything that doesn't add value to the product. A lean product development team should focus on learning and, because of the strong demand for software applications today, should decide on features as late as possible to eliminate the need to redo work as the market changes. At the same time, there is equal pressure to deliver as fast as possible.
The last three lean principles share a lot in common with Agile thinking. The idea that the team sets the pace -- or, in Agile terms, the sprint -- and is responsible for delivering the promised product is directly in line with what Agile teams practice. And the phrase see the whole brings to mind the Agile retrospective where the team gathers at the end to discuss what successes and challenges it saw.