Lean Methodology: When To Use
The choice of a methodology for a certain project is probably the most topical issue of modern software development. Some programmers prefer to work in one methodology. Others change them depending on the projects they are working on. There is no single opinion on the issue how to choose the proper software development methodology. In this article we will tell you when it is better to use Lean methodology and when it is better not to use it. But before doing that, we have to give the full definition of Lean methodology and describe its main features.
Lean originated in the middle of the 20th century in Japan. It was invented by the managers of Toyota Corporation. Their initial goal was to create a system of manufacturing that solves their problems with product delivery. Initially it was called Toyota production system. However, when it became popular all over the world, its name has changed. The main idea of Lean project management is simple. It is focused on improving the terms of product delivery by eliminating wastes. Lean has its own definition of wastes that allows detecting them properly. Anything that does not impact the functionality of the final product is considered a waste.
Now Lean methodology is used in various fields including software engineering. It was applied to software development in 2003 when two famous Lean researchers Tom and Mary Poppendieck published their first book “Lean Software Development”. It still remains quite topical and popular nowadays. This book was a successful attempt to implement the principles of Lean methodology to software development. It describes seven Lean principles and tells how they can be applied to software engineering. There is no need to describe all of them here. However, it is necessary to say that flexible process of project realization and respect to the team members are one of them.
These principles make Lean an Agile methodology. Its projects are iterative. This feature is necessary to test the intermediate product after each iterative cycle. Constant testing is very important for Lean projects because Lean developers are focused on quality of their production. Usually they prefer to avoid bugs instead of fixing them. However, it is almost impossible to create a software product without defects. That is why Lean developers test their products to detect bugs on early stages. Lean teams are small. Usually they include less than 15 people. Additionally, they are self-managing. It means that they don’t have formal leaders and strict hierarchical structure. All their members are interchangeable. Each of them is capable of performing several functions.
So when is it better to use Lean methodology?
Like any other Agile methodology, Lean can succeed in small projects with a short time frame. That can be explained by the fact that Lean teams are small. It is quite hard for them to manage large projects quickly. You have to coordinate the activities of two or more Lean teams, if you want to handle a big project. However, it is not a simple issue. In Lean all activities of the team are based on communication. Two teams that work in different offices can hardly communicate effectively. Hence, it is better not to use Lean if your project is too complex. It is also better not to use it if your customer does not want to participate at the process of project realization. That is because of the fact that Lean is an Agile methodology. And like any other Agile methodology, it involves its customers in the process of project realization. It may seem inconvenient to them, but this is the only way to create a high quality Lean product.