The Comparison of Lean Methods
Each software development methodology has an amount of methods and practices that are typical for its projects. Lean is no exception. In this article we will give the general definition of Lean methodology and compare some of its popular practices.
Lean is a methodology that originated in the middle of the 20th century. It was invented by the managers of Japanese corporation Toyota. Initially the methodology was called Toyota production system and was applied only to manufacturing, but after it became famous all over the world, its name has changed. Now it is well known as Lean manufacturing. The main idea of this methodology is to improve the terms of product delivery by eliminating wastes. Every action that does not add new functionality to the final product is considered a waste. This approach is applicable to software development. Lean software development methodology originated in 2003 when Tom and Mary Poppendieck published their famous book “Lean Software development”. The book described seven main principles of Lean methodology and told how to implement them in software development. Lean is an Agile methodology. Its projects have iterative structure. Such approach to software development is just what Lean programmers need because they pay great attention to the quality of their products. Usually they prefer to avoid defects instead of fixing them. However, a software product cannot be perfect. That is why Lean developers detect defects on early stages. Lean team is one more distinctive feature of this methodology. Lean teams are small and self-managing. Each of their members is capable of performing several functions. There are no formal leaders in Lean teams. They manage their projects as a whole. In most cases this approach is very effective.
Now let’s make a comparison of popular Lean practices that are sometimes called Lean methods.
The first thing you should know about Lean is that it uses any practices if they are effective. The only constant practice of Lean is the practice of self improvement. Its main idea is to implement all effective practices in the work of the team. That is why Lean developers use some of practices that are typical for other methodologies. For example, they use pair programming and test-driven development. Let’s find the definitions for these methodologies and compare them.
Pair programming is considered one of the most effective Lean and XP practices. The idea is simple. Two developers work on one computer and perform one tasks. Such cooperation makes their work more effective. That is because of the fact that no one of them can waste time on unnecessary entertainments like social media or other. Additionally this practice allows the developers exchange their knowledge. That makes the process of project realization faster.
Test-driven development is also a practice borrowed from XP. Its main idea is to develop software products through testing. First of all, the developers write improvement tests. After that they run their intermediate product through them. Then they add new functionality and conduct the same procedure again.