How to Combine Agile and Lean
Modern software development industry has lots of project management methodologies. Some of them are widely used all over the world. Others are less popular. However, all of them have the same goal – to create high quality products and deliver them in time. In recent years the issue of using various software methodologies combinations has been extremely popular. Probably that is the reason why some software developers wonder: “How to combine Agile and Lean?” The first thing we should mention while answering this question is that it is formulated improperly. To understand why it is so, we have to describe the two above mentioned methodologies in greater detail.
Agile is an approach to software development that originated in the early 2000s. It was invented in response to the traditional Waterfall methodology. The old method didn’t meet all requirements of modern software development projects any more. It was sequential, so it often could not deliver final products in time. Agile was invented by young and experienced developers who have decided to make software engineering more flexible and applicable to modern requirements. Most specialists agree that Agile is based on three main principles: strong communication inside of the teams, high degree of customer involvement, and iterative structure of projects. Strong communication is required because of the sizes and structure of Agile teams. They are usually small and self-managing. They don’t include roles typical for traditional software development teams, like testers, project managers, or analysts. A typical Agile developer must be capable of performing their tasks. The customer is a part of any Agile team. Unlike Waterfall projects, in Agile projects the clients participate in all team meetings. It is very important to achieve high user acceptance of the final product. The structure of Agile projects is iterative, because it is much simpler to meet all customer’s requirements during such projects. The intermediate products are introduced to the clients after each iteration, so they can control the progress of the projects.
Lean is a methodology that originated in the middle of the 20th century in Japan. Initially it was named Toyota production system, but it changed its name after it became popular all over the world. In 2003, after Tom and Mary Poppendieck published their famous book “Lean Software Development”, the methodology was applied to software engineering. Lean is a typical Agile method. It shares all principles of this popular approach to project management, including iterative structure of projects, strong communication, and high degree of customer involvement. The structure of Lean teams is also similar to the structure of teams of other Agile methodologies. They are usually quite small and their members are interchangeable.
As we have already mentioned, Lean is only one of the Agile methodologies. There is no need to combine it with Agile, because it is Agile by definition.