Project Smart ~ Exploring trends and developments in project management today

Calendar icon
Adobe PDF icon

Waterfall v Agile: How Should I Approach My Software Development Project?

~ By Duncan Haughey

Signpost with the six most commonly asked questions against a cloudy sky

Software development projects are usually approached using one of two methods: waterfall or agile. Both have pros and cons, and each method has its advocates who espouse the value of their chosen approach. In this article, I'll look at both methods to understand the circumstances in which to use either a waterfall or agile approach. I'll answer the question, How should I approach my software development project?

Waterfall Method

The waterfall method has been around since the 1970s and remains in everyday use. It follows a distinct set of steps through the lifecycle of a project. Here is a typical set of waterfall stages:

  1. Requirements Analysis
  2. Design
  3. Implementation
  4. Testing
  5. Installation
  6. Maintenance
Diagram showing the Waterfall Method
Figure 1: Diagram Showing the Waterfall Method

The reason this approach is called the waterfall method is that each stage follows on from the previous one after completion, cascading down like a waterfall. Like a waterfall, it flows down and never flows up. Often, this method is seen as 'safer'.

The waterfall method works well for commercial arrangements where contracts are signed, and money paid. However, when working with internal customers, it can be difficult to refuse last-minute changes when the people asking already have the backing of your senior management.

Pros and cons of the waterfall method.
Detailed documentationPerceived slow start
Agreed and fully signed off requirementsFixed requirements difficult to change
Can be delivered using developers with a lower skill setNo customer visibility of software until most development work is complete
Reduced number of defects through more rigorous design and planning stagesLacks flexibility making it difficult to change direction quickly
Defined start and end point for each stage, allowing progress to be easily measuredCustomers can be unclear about their requirements at the beginning of a project

Agile Method

The agile method refers to an iterative approach to projects. The requirements and solutions evolve through collaboration between the customer and development team. The term emerged in 2001 with the publication of the 'Agile Manifesto'.

If your manager is worried about you making 'perceived' mistakes in front of your customer, this method may not be for you. The agile method creates deliverables early in a project and refines them through an iterative approach involving the customer. However, you may find that some stakeholders view this approach negatively.

During a project to deliver a video homepage for a customer's website, the first iteration we produced was close to the example provided by the digital design agency. The testing of this iteration revealed some errors that needed fixing. These errors were trivial in respect of development effort required to fix them.

My line manager saw this as failure to deliver the customers' expectations and an embarrassment for the team. In my view, our delivery was ninety percent right, and the errors only needed a few days of development effort to fix. This first iteration had allowed us to understand the customer requirements fully and for the customer to communicate their expectations clearly.

After being suitably rebuked, I was left with no doubt of my managers feelings. I wasn't to allow this to happen again. In future, all work would have a fully agreed and signed off-specification before writing a single line of code.

Interestingly, the customer seemed happy with the agile approach as it enabled them to see work in progress and make comments during development.

So does the agile method lead to a faster delivery?

That's debatable. Just because you start coding early doesn't necessarily mean you'll finish sooner. However, it can ensure the final deliverable better meets the customers' needs through the provision of their insights during the project.

Pros and cons of the agile method.
Quick start, incremental releases with regular customer reviews and feedbackMisinterpreted as unplanned or undisciplined
Evolution of customer requirements over timeNeeds a high-quality, customer facing development team
Provides the ability to respond to change quicklyNeeds a high-level of customer commitment to stay involved throughout the project
Less rework achieved through continual testing, customer involvement and feedbackLack of detailed long-term plans
Real-time communication with the development team and customerA lower level of documentation produced


So which method is best for your project, waterfall or agile?

Neither, there is no right or wrong - better or worse.

The method you use depends on several factors:

  • Type of work: is there a clearly defined outcome? Website development is creative and, therefore, lends itself to the agile method. Transactional system development, where there is a clearly defined outcome, is better suited to the waterfall method.
  • Type of customer: are they willing to work in an iterative way? Do they have enough time to review and comment on successive iterations?
  • View of your manager: does he or she prefer one method over another? How adaptable is he or she?
  • View of IT within the organisation: is IT seen as a valued partner or a necessary evil? If the latter is true, then use the waterfall method.
  • Internal or external customer: is your customer internal or external? The waterfall method works well with external customers where you can hold them to a signed contract.

It's important as project manager to select the method that best satisfies your customers' needs. The problem comes when there's a difference of opinion. In these cases choose the method that will deliver the best result. Carefully manage anyone who disagrees.

In the end, both methods can deliver your project. It's about managing the expectations of your customer and providing a quality product. After all, once you reach journey's end, nobody worries about how you got there.


Be the first to comment on this article.

Add a comment

(never displayed)

What is the next number: 10, 12, 14, ..?
Notify me of new comments via email.
Remember my form inputs on this computer.

10 Golden Rules of Project Risk Management

Three red dice reading: Manage your risk

The benefits of risk management in projects are huge. You can gain a lot of money if you deal with uncertain project events in a proactive manner.

The Art of Project Scheduling

Project plan and schedule

The art of project scheduling is based on experience and the more experience you have, the more accurate your schedule will be.

How to Build a High-Performance Project Team

Business people and bar graph going upwards

What makes a winning project team? Why do some teams achieve greatness while others struggle? Let's look at the factors present on winning project teams.

10 Steps to Setting SMART Objectives

Measuring tape showing number 10

Setting SMART objectives to guide your team is important for a leader to get right. Badly formulated objectives will steer a team in the wrong direction.

PROJECT SMART is the project management resource that helps managers at all levels improve their performance. We provide an important knowledge base for those involved in managing projects of all kinds. With weekly exclusive updates, we keep you in touch with the latest project management thinking.

WE ARE CONNECTED ~ Follow us on social media to get regular updates and opinion on what's happening in the world of project management.

Latest Comments

Alick Nyangulu commented on…
The Role of the Project Manager
- Thu 20 October 8:14pm

Duncan commented on…
Project Planning a Step by Step Guide
- Thu 20 October 5:04pm

Karim commented on…
Project Planning a Step by Step Guide
- Thu 20 October 12:48pm

Latest tweets

RT @LeanneM_INV: Eternally grateful for the existence of @ProjectSmart getting me through my MSc #speakinginplainenglish about 2 days ago

General Project Management • Re: What is a main priority when looking for PM Software? #pm #projectsmart about 4 days ago

General Project Management • Re: Project Managment Software #pm #projectsmart about 4 days ago