Agile vs waterfall
We explain the differences between these two development methodologies


Polarising arguments have been at the epicentre of different industries since the dawn of time: Picasso or Matisse, Mozart or Beethoven, Mario or Sonic, Star Wars or Star Trek we could go on. The software development community is no different with people gravitating towards either the agile or waterfall approaches of app building, but can there be only one winner?
The two approaches differ substantially in their methods and project goals and these are reflected in their respective ages. Waterfall is largely considered to be the more legacy approach, opting for a linear approach that focuses on creating an iron-clad plan to map out the project in stages, giving developers a clear view of a project's roadmap and how they should progress towards completing tasks in the correct order.
Agile, on the other hand, takes the task of development and focuses on getting the project done quickly with an emphasis on nailing the core goals of the project in no particular order. It's the younger sibling of waterfall and has seen a growing adoption amongst teams throughout the industry. It typically sees teams developing applications faster and then upgrading them in quick stages.
Although youth seems to be overtaking the aged, developers in both camps will fervently argue their corner and for good reason. Despite agile's uptick, waterfall still serves a strong purpose for teams with specific needs that favour one specific development methodology. So, read on to discover why the approaches to software development are so divisive.
Agile vs waterfall: Working methods
Agile
Agile development is concerned with getting the software developed quickly and to a recognisable state to where the customer wants it to be. The customer tests the software and then it is refined according to feedback, in a later development stage.
At the beginning of the development cycle, the project is outlined according to customer needs (features), known as user stories. Developers then develop "iterations" which are built to address these needs, in order of importance.
Get the ITPro daily newsletter
Sign up today and you will receive a free copy of our Future Focus 2025 report - the leading guidance on AI, cybersecurity and other IT challenges as per 700+ senior executives
Teams work in sprints to finish each iteration within a set time span, usually measured in weeks. Each sprint aims is to create working software the user can trial, then advocate changes so it more suits their needs.
But the end of the project doesn't mean all features are built. Agile projects can run out of time, meaning developers must either agree with the customer to do without some features that remain incomplete or extend the project (and pay more money) to deliver them.
Waterfall
A waterfall development project follows a traditional, linear approach. The first stage is scoping out users' requirements, which can be an extensive process. Because developers won't produce working software for customers to try out mid-project, they want to understand up front exactly what users want the software to look like.
Then, the developers will design the software, giving themselves a detailed template to work from. By working from a plan, the idea is that the actual development process, which comes next, will be smoother and hit fewer obstacles.
Once they've built the system, developers enter the testing stage - this is where they make sure the software actually works. This sees developers debug the system, sometimes involving users who try it out. After that, the developers go into maintenance mode, installing, supporting and maintaining the software on behalf of the customer.
Agile vs waterfall: Pros and cons
Agile pros
The greatest benefit to Agile development is that it involves the customer or end user at all stages of development, and seeks their views to feedback into the project.
This, as a result, will lead to an application that is far more likely to fit the brief, or at the very least the initial picture, the customer provided. Developing under an agile methodology also means if the customer changes their mind about an element of the software, or requests any last-minute additions, it doesn't present too much of a challenge to incorporate these. Developing under waterfall, meanwhile, means this could be extremely tricky.
This approach also delivers software more quickly to customers, making it ideal for projects in which speed is of the essence.
Another advantage in agile is the concept of continuous improvement, in which lessons learned in one iteration inform work on the next iteration.
Agile cons
However, agile projects are intensive for customers. Their involvement is required throughout, so the customer must be able to spare stakeholders, who must be enthusiastic and engaged in the project. Agile projects can fall apart if the customer isn't interested in working closely with developers.
Agile's other disadvantage is that, because of the strict sprint deadlines, sometimes the overall project can end incomplete. Customers must either just accept the reduced scope of the project, or pay more to get the developers to finish everything they had planned to complete.
Waterfall pros
By focusing on quality over speed, waterfall is well-suited to less urgent projects with customers who know exactly what they want their software to do. The extensive testing period can result in fewer bugs when the project is complete.
Waterfall's strict linear process means a project is likely to be finished on time and within budget, and with regular milestones, it is easier for both developers and customers to track its progress.
Waterfall cons
In waterfall development, once the course is set there is no deviating from it. Unlike agile, waterfall doesn't involve customers every step of the way but scopes out their requirements only at the start of a project.
This means the waterfall approach works best when customers have clear ideas about what their software needs to do. If users have only a vague idea, or the project takes a long time to deliver, the finished software often won't need users' requirements, which may change over the course of the project.
Similarly, once a waterfall project hits the testing phase, it's very hard to make changes to the software. Customers will have to pay more money and wait longer if they want to make changes this late.
To avoid this, waterfall developers sometimes build in customer feedback points between the stages outlined above, to adjust the project as they go.
Image: Shutterstock

Connor Jones has been at the forefront of global cyber security news coverage for the past few years, breaking developments on major stories such as LockBit’s ransomware attack on Royal Mail International, and many others. He has also made sporadic appearances on the ITPro Podcast discussing topics from home desk setups all the way to hacking systems using prosthetic limbs. He has a master’s degree in Magazine Journalism from the University of Sheffield, and has previously written for the likes of Red Bull Esports and UNILAD tech during his career that started in 2015.
-
Should AI PCs be part of your next hardware refresh?
AI PCs are fast becoming a business staple and a surefire way to future-proof your business
By Bobby Hellard Published
-
Westcon-Comstor and Vectra AI launch brace of new channel initiatives
News Westcon-Comstor and Vectra AI have announced the launch of two new channel growth initiatives focused on the managed security service provider (MSSP) space and AWS Marketplace.
By Daniel Todd Published
-
Java developers are facing serious productivity issues: Staff turnover, lengthy redeploy times, and a lack of resources are hampering efficiency – but firms are banking on AI tools to plug the gaps
News Java developers are encountering significant productivity barriers, according to new research, prompting businesses to take drastic measures to boost efficiency.
By Solomon Klappholz Published
-
Why the CrowdStrike outage was a wakeup call for developer teams
News The CrowdStrike outage in 2024 has prompted wholesale changes to software testing and development lifecycle practices, according to new research.
By Solomon Klappholz Published
-
Why are so many AI projects destined for failure? Inexperienced staff, poor planning, and a shoehorned approach to agile development are all stifling innovation
While agile development practices work well in many circumstances, devs are encountering serious problems applying the methodology in AI projects
By Nicole Kobie Published
-
‘It’s time to question agile’s cult following’: Doubts cast on method’s future, with 65% of projects more likely to fail
News Agile development methods just aren’t delivering, and it's time devs acknowledged its failings
By Emma Woollacott Published
-
Agile development has a security problem - and developer ‘champions’ could be the key to ensuring safer software
Analysis Security considerations can be an afterthought in agile development, but there are ways to address the issue and prevent disastrous consequences
By Ross Kelly Published
-
Agile development is fading in popularity at large enterprises - and developer burnout is a key factor
News Firms employing agile development practices are ‘having difficulty adapting’ in a new world of developer burnout, AI and more, a new report claims
By Steve Ranger Published
-
What is platform engineering and will it see the end of DevSecOps?
In-depth Platform engineering is not just the latest industry buzzword but could represent a profound change in how software is developed and governed
By Ross Kelly Published
-
The ultimate guide to getting your killer app off the ground
Industry Insight When building software, the process of designing, testing, prototyping, and perfecting your project is never ending
By Jon Spinage Published