The pros and cons of lean software development
Lean software development is a subset of agile development and is based on the Toyota production system. Its purpose is to speed the development cycle by following several principles. The first two are, eliminating waste, which is self explanatory, and refining learning, which basically means learn as you go and don’t assume you know everything about the development cycle you are working on.
Another two principles are, making decisions as late as possible while delivering as fast as possible, along with conceptual integrity, which means that all elements of the application must be obviously a part of the same design. A coherent design makes it much easier to resolve unanticipated issues. And finally, there is operating from the big picture down rather than working upward and outward from the details. These principles all sound pretty good. They increase development and delivery speed while making troubleshooting easier. Unfortunately, lean methodology, like any other method, has its advantages and disadvantages.
Some of the advantages include the elimination of superfluous activity, thereby saving time and money. It also enables more functionality to be delivered in a shorter period of time and empowers the development team in the decision-making process thereby improving motivation to do the best job possible.
Lean methodology is also easily scalable, which makes it a good alternative to more conventional software development methods that were primarily designed for large projects. lean also fits in well with agile and devops because it is applicable across team boundaries and tends to integrate teams and optimize cooperation.
However, lean methodology isn’t perfect. It is heavily team dependent, which means that you'd better have assembled an excellent team with a high skill level. Since the overall development team has so much responsibility spread over a number of smaller subteams, it can be relatively easy to lose focus. Also, lean development requires excellent documentation, especially with regard to business requirements. This means that any area that is poorly documented can be underdeveloped or developed incorrectly.
Nevertheless, the advantages of lean software development generally outweigh the disadvantages. This is especially true when it comes to upgrades and additions. So, make sure you have an excellent team at your disposal and let them go lean.