Over the course of a project, you'll have to make hundreds of decisions. One of the first, and possibly most important decision you’ll make, is which project management methodology to use.
For the past couple of decades, a variety of different methodologies have gained popularity, and there seems to be a lot of conflict over which is “better” and why. Though this is a pretty well-worn topic, I’m here to throw in my perspective on the relationship between Lean and Agile methodologies, and which is the best way to get the efficient and effective results necessary to reach your MVP.
For those of you who may be a little rusty on these different software development methods, I’ll start by explaining the basics:
The Agile Approach
Agile came about as a “solution” to many of the shortcomings of the sequential, linear Waterfall methodology. Waterfall, which is the original method of software development, operates in discrete
phases which makes changing or fixing anything after the fact difficult and costly.
Agile software development is, in contrast to Waterfall, incremental and iterative. Instead of building the whole project before testing (as with Waterfall), you build the project in small pieces, testing and getting feedback from the team and customers along the way.
This approach has many advantages:
- Flexibility: Throughout the process of developing an App, the vision or end goal often changes and evolves depending on feedback. With the Agile approach, short planning cycles make it easy and quick to accommodate changes at any point in the project.
- Continuous improvement: The flexibility of the Agile approach allows for constant improvements along the way. Agile projects encourage feedback from users and team members throughout the whole project, so lessons learned are used to improve future iterations.
- The end goal can be ambiguous: The principle of constant change, improvement and adaptability means that with the Agile methodologies, your end goal can be unclear. As the project progresses, the requirements and goals will come to light.
- Quicker, better results: Focusing on the project as individual iterations allows for higher quality delivery, because each piece is tested and finalized before continuing to the next iteration. This method creates high quality software more quickly and efficiently.
- Communication: One of the key principles to Agile is frequent communication and face-to-face interactions. Teams members are able to take responsibility for their own parts of the projects, while collaborating with the other members. Constant communication with customers allow them to have an input on the end product, and make necessary suggestions along the way.
So we’ve seen the advantages of the Agile approach, now let’s dive into the Lean project management method and see how the two compare.
The Lean Approach
The Lean methodology originated in Japan in the mid 1950s in manufacturing industry (automotive industry) and was aimed primarily at loss reduction and sustainable production. In the 2000s, Lean was also adapted for software development by Mary and Tom Poppendiecks.
The Lean theory follows a learn, measure, build cycle. Frequent tests are conducted, and constant communication with the customer is stressed in order to understand and focus on continuous improvement (sound familiar?).
The principles of Lean development include:
- Eliminate waste: The lean philosophy considers anything that does not add value to the customer to be waste.
- Build quality in: Your development process should work to prevent any defects from piling up.
- Create knowledge: Be willing to learn as you go, and adapt the project based on what you learn.
- Defer commitment: There is no need to commit to an end product at the start. Be flexible to change throughout the process and don’t commit to anything before you need to.
- Respect people: The best teams are made up of focused, motivated people. Focus on enabling teams, not controlling them.
- Optimize the whole: Look at the big picture and understand all the processes that individual projects support. This will prevent more problems from occurring in the future of the project.
Looking at the Agile and Lean methods side by side shows that the two are not so different after all, in fact they have more similarities than differences. Though they are commonly considered two separate methods, the ideas behind Lean and Agile methodologies are actually very complementary, and the Lean principles underlie those of the Agile methodologies. Rather than being two separate practices, Lean thinking is a necessary component to practicing Agile software development. By using the Lean principles, Agile project management can be optimized to create your MVP.