Lean Software Development (LSD) is an agile framework based on optimizing development time and resources, eliminating waste, and ultimately delivering only what the product needs. The Lean approach is also often referred to as the Minimum Viable Product (MVP) strategy, in which a team releases a bare-minimum version of its product to the market, learns from users what they like, don’t like and want to be added, and then iterates based on this feedback.
History of Lean Software Development (LSD)
LSD actually borrows its philosophy from the manufacturing industry, which originated the lean development process as a way to optimize production and assembly lines to minimize waste and maximize customer value. In fact, it was originally called the Toyota Production System, because automaker Toyota invented this approach in the middle of the twentieth century as a way to streamline its production of cars and eliminate wasted time and resources. (Any action that did not impact the functionality of car being built and delivered was considered a waste under this system, and therefore removed from the process.)
Eventually, other manufacturing organizations across many industries began using this system, and the name later changed to Lean. The methodology was first applied to the creation of software in 2003 with the publication of the now-famous book Lean Software Development.
Strengths and Weakness of Lean Software Development
LSD’s strengths include:
- Streamlined approach allows more functionality to be delivered in less time
- Eliminates unnecessary activity, and as a result can reduce costs
- Empowers the development team to make decisions, which can also boost morale
LSD’s weaknesses include:
- Heavily depends on the team involved, making it not as scalable as other frameworks
- Depends on strong documentation, and failure to do so can result in development mistakes
Should You Use Lean Software Development?
Many organizations have found the LSD methodology to be an excellent approach to software development because of its streamlining of the process and forcing the team to ruthlessly cut away any activity that doesn’t directly affect the final product. But an organization must have an outstanding development team, and trust that team implicitly, for this approach to be successful.