When to use Lean Software Development Methodology?
Sometimes it is quite hard to choose the proper methodology to manage a certain project. If you are a software developer, you have probably faced such situations. Some programmers choose the most convenient methodology. Others select the methods they are used to. But the only way to choose the methodology for your software development project properly is to analyze its needs and the customer’s requirements. In this article we will tell you when it is necessary to use Lean methodology. However, before doing that we should give the proper definition of Lean and describe its main functional features.
Lean originated in Japan in the middle of the 20th century. It was invented by the employees of Toyota Corporation. At that time the company had big problems with product delivery, so its managers searched solutions for them. Toyota production system became such solution. Later, after it became popular all over the world, it was called Lean manufacturing system, or just Lean. Most researchers considered Lean approach to manufacturing innovational.
The main idea of the methodology was to improve the terms of product delivery by eliminating wastes. Lean has its own definition of wastes. It still remains quite topical. Any action that does not add new functionality to the final product is considered a waste. This definition applies perfectly to software development. However, lean became a software development methodology only in 2003 when Tom and Mary Poppendieck published their famous book “Lean Software Development”.
They have described the main principles of Lean methodology and the ways of their implementation in software development. Modern software developers consider that Lean methodology has seven principles. There is no need to cover all of them here, but it is necessary to say that providing high quality of products, delivering as fast as possible, and respecting the professional skills of your developers are the main of them. All above mentioned principles show us that Lean is a typical Agile methodology.
The teams of its developers are small and self-managing. Their members are interchangeable because each of them is capable of performing several roles. Additionally Lean projects have iterative structure. That allows the developers to test their product after each iterative cycle. It is very important for Lean projects because of their focus on high quality.
Now, as we know what lean software development is, we can answer the question when it is better to use it.
Most modern researchers agree that it is better to use Agile methodologies including Lean in short term software development projects. That is because of the fact that Lean teams are not large, but they are quite effective. It means that they can meet the short terms. Additionally Lean projects are aimed at eliminating wastes.
These wastes include also financial costs. Hence, Lean is the best methodology to save the money of your customers. However, there are also cases when it is better to use other software development methodologies. For example, if your software development project is very large and complex, it is better to use Waterfall methodology, as Waterfall teams are large and they do not require constant communication between their members. Lean teams, on the other hand, are small. It means that they need to spend more time to write large amounts of code. And if you want to involve two or more Lean teams in the process of project realization, you have to think on the issue how to coordinate their activities. It is not always a simple issue.