Waterfall vs. Agile: How To Choose a Project Management Methodology
Hi, my name is Alisa and I am a project manager at Azoft. I have been involved in project management for over 8 years. In my experience, the choice of the best development methodology is an ongoing debate amongst clients and development teams. I would like to share some thoughts on this topic without any favoritism.
When you decide to develop your product, sooner or later, you have to decide how to organize the development process. Is it better to have a robust plan of all the stages and work step-by-step? Or to work in short iterations to track results more often and make changes faster? Project management methodologies provide guidance when attempting to address these issues. Each methodology has its own advantages and disadvantages. In this article, we'll examine the most popular ones. I will also tell you what to consider when choosing a suitable methodology and how to combine different approaches to get the best outcome.
Waterfall Methodology 101
Waterfall project management entails mapping out a project into distinct, sequential phases, with each new phase beginning only when the prior phase has been completed. It looks like this:
So, here is the plan:
- to collect and clarify the customer's requirements and reconcile them with the team;
- to create the design of the entire project;
- to develop software according to the specified technologies;
- to test the project for bugs;
- and only after all the previous, sequential stages have been completed, to put it into operation.
Using the Waterfall methodology, it is easier to manage requirements and risks, but these are rather exceptional situations that require an additional investment of time and budget.
Agile family of methodologies: key features
Agile is a family of “flexible” approaches to software development. Such approaches are also sometimes called agile frameworks or agile methodologies.
Values of Agile:
- Individuals and interactions over processes and tools.
- Working software over comprehensive documentation.
- Customer collaboration over contract negotiation.
- Responding to change over following a plan.
Agile has become the foundation for a number of Agile practices. Scrum, Lean, and extreme programming are the most popular variants.
Essentially, these frameworks involve iterative work on a project - where the key project phases are cyclically repeated one after another. The most common framework is Scrum, which can be schematically depicted as follows:
Advantages and disadvantages of Waterfall and Agile methodologies
Waterfall, Scrum, and other agile project management methodologies have advantages and disadvantages. Each of the methodologies is well-suited to solve certain problems and is more difficult to adapt to others.
Here is what you should consider when choosing a suitable methodology for your project:
|Aspects||Waterfall||Flexible methodologies||What to consider|
|Scope and requirements||Are clear, won’t change||Changes are expected along the way||In Waterfall, the analytics stage involves clarifying all requirements and taking into account technical constraints at an early stage of the project. It is more difficult to make further changes to the requirements as it will require additional costs to fix previously implemented functionality.|
|Task novelty||A similar task has already been solved by the customer/contractor, the product is not innovative||For the customer/contractor, this is a qualitatively new task or an innovative product||In a brand new area, it is much easier to miss something important. Using Waterfal makes it more difficult to make changes to the original requirements.|
|Requirements management||Requirements for the project in the course of work will not change significantly||It is planned to apply Customer development (testing an idea or prototype of a future product on potential consumers), test hypotheses on the market, manage priorities in the project process based on focus groups||Choose flexible methodologies if you need to flexibly manage requirements. If there is no such need, Waterfall is your best option.|
|Budget||Limited||Can be varied within a given framework||If, in Waterfall, everything is going according to plan, then the budget and project deadline can be determined after the analytic stage of the project. At the same time, the budget is primary, and after the completion of the analysis, it will determine the deadline. The sequence is as follows: budget -> analytics -> deadline.|
|Deadlines||Severely constrained and defined prior to the analytics stage||May vary||Agile methodologies are characterized by the fact that the result of each iteration is a working product. After the complete analytics stage, you can fairly accurately estimate the completion date of the Waterfall project.|
If a project is characterized by features from only one column, you can safely choose the appropriate project methodology without a second thought. But what if everything is more complicated (as in most cases)? Then hybrid project management methodologies will help you! We have already shared our experience of working with them on the example of the development of the portal “Spasibo from Sberbank". Check it out to learn more about when and why to use them.
How to make a hybrid of methodologies suitable for a project
In most of our projects, we use hybrid, individually adapted project management methodologies. It is important for us that the management tools are used not for the sake of appearance, and not because it is declared in the PMBook, but in order to solve the project's tasks. We explain when and how to implement practices from different methodologies to build a hybrid that is appropriate for your project:
- During the course of the project, do tasks appear that do not fit into the framework of the original setting of the task? Do you want to complete them in the future? In this case, we use a backlog. This is a list of the new features, changes to existing features, bug fixes, infrastructure changes and other activities that a team may deliver to achieve a specific outcome. Even if you use Waterfall on a project, it will be convenient to return to tasks after the project's completion.
- Are there many risks in the project? In this case, we implement a risk management matrix which is a standard artifact of a Waterfall project. Even if the project is conducted according to the Agile framework, it is possible to use the practices of the Waterfall in parallel.
- The initial statement of the problem is simple and straightforward, but after entering the market is it expected to customize the product according to the user's needs? Then, you can implement the first stage using a Waterfall. Support and development can be carried out using sprints (an Agile management methodology).
- Did you choose Waterfall, but still want to keep the customer involved in the process so they can regularly review the work results? We recommend you add scheduled demos, as in Scrum.
- Want to "test" a flexible project management approach, and then decide which methodology to choose? Then you can start with analytics: make a list of User Stories (customer reviews), prioritize and clarify them consistently. At the same time, the entire project can be conducted using Waterfall, and you can start development only after the analytics phase is completed. In addition, this approach provides maximum customer involvement at the start of the project, which greatly reduces the mistakes in the process of further work on the project.
How to make a hybrid suitable for the project:
- First, you will have to choose the original project management framework that we will change for you. We check the table above and personal experience, or choose a framework that the team/customer has worked with before.
- Determine the "weak points" of the framework in relation to the current project. What exactly do you want to improve in management? What important areas were left uncovered? Here, you can still go back a step and choose a different methodology.
- Solve the problems of the selected framework with the help of other frameworks. Adapt them to the current situation.
- Tell the team about all the changes to the standard processes, and fix them in the public domain. If the processes are new for team members, they can refresh their memory at any time.
- As the project progresses, we periodically review the current processes and check the goals: are they being achieved using the selected tools? Are there any new needs? Have the previous conditions become irrelevant? The evolution of a project management framework is an ongoing process that will help you implement your project more efficiently.
Each project is a unique mix of requirements, team, customer and external conditions. A project-appropriate management framework allows you to use resources efficiently, greatly reducing the risk of making mistakes in the process. I hope this article will help you set up such management systems on your projects to achieve amazing results! If you know other ways to achieve perfect project manageability - please share them with us in the comments, we would love to hear your insights on the topic!