Get in touch today: 0800 133 7948 or Email us
Talk to an expert: hello@atlascode.com

Waterfall Model vs Agile Software Development

Posted on: January 2nd, 2018 by Simon Swords

Software requirements changing or being added to are almost an inevitable fact of software development, so like the old adage, “failing to plan for them is to plan to fail.”

Before we get into the debate about the Waterfall Model vs. Agile Software Development, let’s take a few moments to review what we mean when we talk about the Waterfall Model or the Agile methodology with regards to software development.

Waterfall Model

To quote from Wikipedia :

The waterfall model is a relatively linear sequential design approach for certain areas of engineering design. In software development, it tends to be among the less iterative and flexible approaches, as progress flows in largely one direction (“downwards” like a waterfall) through the phases of conception, initiation, analysis, design, construction, testing, deployment and maintenance.

Just like the quote above states, with the waterfall method of software development, the development process goes in only one direction and like a waterfall, once you are over the edge and on your way down to the bottom, there is no way to go back up to the beginning or even to the middle.

What this means is once you are on a path of software development with the waterfall method if something changes, no matter how minor, like you suddenly don’t like the shade of blue that the development company uses for your web application or website, you can’t change it as the waterfall method doesn’t take the possibility of change into account.

For the waterfall method to work, you must know all your software requirements upfront and they basically have to be set in stone, in that you can’t change them. So, you best make sure that you have taken every possible eventuality into account with your requirements and if you can do that you are perhaps the cleverest person in the world.

As stated in the opening statement, software development almost always changes as a project goes forward, it is an unfortunate fact of software development life. I chose a silly example of a colour change on a website to illustrate my point. What if that change was major, something like GDPR which is due to be implemented as law in the UK on 25th May 2018 , whereas that requires quite major changes to web applications and websites that hold customer data, that would really throw a spanner in the works if your software project employed the waterfall method as it wouldn’t account for that possible change as you didn’t know about that possibility when you started your software project. Remember the old saying, “you don’t know what you don’t know.”

That is what is going on here with the waterfall method, you can’t possibly know the future and professional bespoke software development of web applications and websites take weeks or months, and you don’t know what internet technologies, legal, regulatory or business changes could happen in those weeks or months.

As even we can’t predict the future we recommend Agile Software Development (the Agile Methodology) for all software projects, as it is flexible and accounts for changes to software requirements in its approach.

Agile Software Development

To (again) quote Wikipedia :

Agile software development describes a set of values and principles for software development under which requirements and solutions evolve through the collaborative effort of self-organizing cross-functional teams. It advocates adaptive planning, evolutionary development, early delivery, and continuous improvement, and it encourages rapid and flexible response to change.

Completely different to the waterfall method agile software development builds the need to change software requirements as you progress your software project into the approach explicitly. Agile recognises that changes in software requirements are not failures, instead, they’re opportunities to realign the software project with the overall software product vision statement as more information about the requirements are unearthed or business requirements change.

Another benefit of agile is that planning, design and documentation beyond the minimum necessary to begin the software project is a waste of both time and manpower. It specifically focuses on quickly delivering working features, which is where the value for you comes into play.

A lot has been written on the benefits of agile so rather than labour all of them, we’ll break down the highlights.

Agile keeps feedback loops short and tight


It is a well-known fact that people are much better at managing highly detailed work over short periods of time, rather than long ones. That effectiveness increases further when a rhythm of repetitiveness is built up, and this is created by using what are called in the software development industry; ‘sprints’.

A sprint is another word for a short, usually two-week cycle of development work. Sprints allow large software projects to be broken down into highly defined, very short, repeatable periods of time for which useful project metrics can be defined, captured, measured and reported back to you by the software project manager.

At the beginning of each sprint, you agree with the software developers the work to be completed within that sprint, like say the first prototype of your web application or website. The developers and testers then work to produce and test that completed sprint of work. You then agree on the next sprint, rinse and repeat. This cycle of development completely mitigates the risk of everybody getting their heads down on a six-month software project, only to find that when they look up again they’re completely off the track they hoped to be on.

By working in short sprints, the software project can never go far off of its software requirements, as every two weeks the work completed is reviewed and decisions are made based on the latest information and the current state of the software project, and this information is then used to update the software requirements. This iterative cycle is then repeated for the life of the software project.

Summary


Traditional waterfall project management is insufficient to manage the inevitable change inherent in most software projects. Agile project management, however, is well equipped to aid product owners and software development teams in managing risk, scope, budgets and schedules to create successful and valuable software products.

Simon Swords

Director

Managing Director

Want to stay up to date with the latest software news, advice and technical tips?

Loading
;