Lean software development is a concept that emphasizes optimizing efficiency and minimizing waste in the development of software. This approach has its roots in the lean manufacturing movement of the 1980s, but is now considered an integral part of the Agile software development methodology.
Seven principles of lean software development
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.
Lean vs. Agile
Because lean and Agile share so many principles in common, some argue that it's not an either or situation -- lean and Agile work hand in hand so seamlessly, you often can't tell them apart.
But a newer line of thinking suggests subtle, but important differences between the two processes. For example, a lean team is a tool that can be used to really refine or hone in on exactly what the product should be, while an Agile team actually builds the product.
The advantages of going lean
At a time when demand for software is exploding and companies cannot deliver apps quickly enough, it's easy to see why the less is more lean approach remains popular.
Lean also includes a critical piece of what many call modern application development: a focus on regular communication with customers. This is continuous improvement in all parts of the operation, and the rules have an upbeat and positive tenor.