Agile Vs Waterfall

Protected by Copyscape Unique Content Check
Published: 07th November 2012
Views: N/A

One of the greatest discussions in IT project teams lately is the discussion of which software development methodology to utilize - waterfall or agile? If this has left you a bit confused, or maybe you like to know what the differences are, keep reading.

What Is Agile Software Development

Agile software development is a concept or methodology that involves iterative development in shorter cycles. It offers a high level of discussion with users or business representative, and its flexible response to change is a positive for both business teams and project teams.

Agile development is based on an idea referred to as the Agile Manifesto, and that is:

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

That is, although there is value in the items on the right, we value the items on the left more.

As it says, the agile development process has distinctive values than alternative software development methodologies. An additional main software development methodology you could be familiar with is waterfall.

What Is Waterfall Software Development

Waterfall software development is a development procedure that consists of stages that are run from beginning to end before starting the following stage. These stages usually are classified as:
1. Requirements - collecting the requirements of the system and what must be developed
2. Design - designing the system
3. Implementation - building the software system
4. Verification - testing the system, both system testing and user testing
5. Maintenance - ongoing support or maintenance of the system

With this methodology, the requirements are gathered at the beginning of the project, with the objective of validating them at the beginning to minimize cost and time impact later in the project. It is a popular belief that discovering discrepancies and issues sooner in the project will result in less time being spent than if they were found later in the project.

Waterfall is the more conventional method of development. It was the main methodology that was taught in schools and universities (at least while I was there!) and subject to your company, it’s the one which is mostly used.

However, you'll find discussions among the IT marketplace about agile vs waterfall - what are the differences, and which is better?

What is the difference between agile and waterfall?

• Agile uses iterations, waterfall uses stages
• Agile has continuous business interaction, waterfall has varied high and low interaction (high during requirements and user testing, low during development and system testing)
• Agile has jobs such as scrum master, waterfall has project manager
• Can’t go back with Waterfall, can with agile

There are a few key distinctions between the agile methodology and waterfall methodology, which are:
• Agile uses iterations, waterfall uses stages. The agile method uses quick iterations, referred to as “sprints”, which typically last between 4 and 6 weeks. The requirements are established, system is developed and tested, and released within this iteration, and the next one will begin. With the waterfall process, the requirements are all set at the beginning, and then the next stage begins
• Once a stage ends with waterfall, you can’t turn back. If you’ve concluded the requirements phase and gathered signoff from the business users, the requirements phase is finished. There isn't any going back - except if a change process is implemented which can take time. With agile, if requirements need to change, they are much better dealt with with this process.
• Agile requires frequent business interaction for the whole cycle, waterfall has high and low areas. For every agile sprint or cycle, constant interaction with users and business stakeholders is necessary - which can be hard to come by if you’re not inside the same area or if there isn't any support from their manager. Using the waterfall methodology, the business communication is necessary up front (with the requirements gathering) and then once more at the user testing stage - and not a lot in between. This can be a good and a bad thing.
• Agile roles are different to waterfall jobs. Roles in an agile project are often different to those in a waterfall project. Agile has a function known as a Scrum Master, which is a sort of project manager and release manager, and may not be an IT individual. Waterfall has a conventional project manager, which is more often than not an IT person in the traditional sense.

Which Is Better - Agile Vs Waterfall

This information raises our last point - comparing agile vs waterfall. This depends on numerous factors, such as workplace and the kind of project.

Agile methods are more fitted to those projects that need small and frequent functionality delivered to the users. Additionally it is fitted to those projects where delivery time to market needs to be considered.

Waterfall methods be suitable for those projects where a high level of business involvement isn't feasible or not needed, and where quality is more important than speed to market. This isn’t to state agile results in poorer quality projects - it just means that as there is a dedicated testing phase, it places more emphasis on it.

The expertise of the project team should also be considered - whether they have experience delivering or implementing agile projects, as this will likely be a big help.

This article is copyright

Report this article Ask About This Article

More to Explore