If you’re delivering software projects, it won’t be long before you come across the age-old debate of which is better – Agile or Waterfall project management. Both methodologies have their supporters and enemies, but each undoubtedly brings something different to the software development process.
Want to know my view? As a project manager, you need to know how and when to use both to maximize your chances of a successful project delivery. And, by the end of this article, I’m sure you’ll believe that too. We’ll look at the benefits and drawbacks of both methodologies, how they shape up when you compare them side-by-side, and how to choose the right one for your software project.
Ready? Let’s get started!
Waterfall Project Management Explained – Benefits & Drawbacks
The Waterfall methodology has been around for decades and is seen by many as the traditional way to deliver well-controlled projects. It has its roots in construction and engineering and is still used worldwide by millions of people every day.
Let’s find out some more.
The Waterfall Methodology Explained
The waterfall methodology is a framework for delivering a project in a linear way. Each of its distinct phases/stages are completed in turn, only moving on to the next phase once everything in the previous stage is completed, E.g., all requirements are gathered for the entire solution before progressing to design.
There is a range of different waterfall methodologies out there, including Prince2, PMP, and APM.
It’s this step-by-step, top-to-bottom approach that gives it the name ‘Waterfall.’
Let’s break down each phase of the Waterfall model so you can see how to take your project from A to B.
1 – The Requirements Phase
Also known as the Initiation Phase, Concept Phase, or Kick-Off Phase
This requirements phase is about getting the project started and understanding what you want to achieve. In this phase, teams will gather high-level information about the project cost, objectives, scope, timelines, risks, issues, and resources.
Crucially, and as the name suggests, the project team will also gather the project requirements – working to understand what the project should deliver. In software projects, these may be Epics or Features that a new system should provide to the end customer.
This phase usually ends by creating a complete project plan or business case that lays out in detail how the project will be delivered.
2 – The Design Phase
The design phase builds on the requirements phase to fully understand how the project team will build the solution. During this phase of a software project, the project manager will begin to assemble a team of experts, including designers, architects, technical leads, and business analysts.
In Waterfall, given that the whole solution is delivered in one go, the entire design has to show how all of the different component parts fit together.
This phase usually ends by creating a set of detailed project design documents, as well as updating the project plan or business case from the previous phases as the team learns more.
3 – The Implementation Phase
Also known as the Development Phase, Build Phase, or Execution Phase.
Now the action really starts, as the next phase is all about creating the project deliverable. After the designs are re-checked and the development team is happy, work team will begin to create the solution.
In the software development world, more team members join the team, such as developers and testers, and the development process truly begins.
This phase ends once all of the requirements have been created. Most projects will also create a range of technical documentation to support the implementation too.
The Agile Methodology Explained
An Agile methodology is an iterative approach to project management, whereby the delivery is broken up into different parts that incrementally build to create the end solution. Often referred to as cycles, agile methodologies focus on delivering business value quickly and regularly, all while the team learns as the project progresses.
This means that, unlike Waterfall, which is linear, Agile breaks up the work and cycles through the lifecycle as often as is needed to deliver the solution. Depending on the project’s size, this may mean that you cycle through the Planning/Design/Testing/Deployment/Feedback stages tens or hundreds of times until all the work is complete.
Going one step further, according to the “Scrum Guide”, in Scrum there are “self-management teams, which means that they decide for themselves who will perform specific tasks, when and how”. In Scrum Teams, there is no manager who points the finger at individual developers, while at the same time dividing tasks between them. Scrum essentially takes for granted the fact that employees are smart and responsible enough to decide for themselves how and when to perform a specific task.
When it comes to developing software and running projects, many people want to have the best of both worlds by using a Hybrid Methodology. Let’s take a brief look at them to determine if they’re a good idea.
Like any hybrid, a Hybrid Project Management approach seeks to combine the best bits of Waterfall and Agile to give a project speed, iteration, and control.
In most instances, a Hyrbid technique will follow the high-level philosophies of Waterfall, such as detailed upfront planning and structured documentation, but use Agile iterations to get tasks done inside each stage/phase.
‘We treat JCommerce consultants the same way we treat our own employees. Simply they make up one team, working with us developers together on a daily basis’– Andrew Shemnack, Field Assistant
In principle, this sounds like a great idea, but in most cases, you end up simply creating an ugly duckling – losing the benefits you gain from either approach. Hybrid methods often find themselves becoming unstructured while not moving at the speed you’d expect from an Agile methodology.
Do I recommend them? The answer is no, probably not. You’re always better off opting for a defined approach that gives you and your teams a tried and tested framework to follow!