Sybrin

Part III: Waterfall vs Agile

As part of our series of articles dedicated to project delivery, this article will focus on two of the more popular methodologies in the software industry. We will measure the Agile and Waterfall methodologies up against each other and discuss their advantages and disadvantages.

Agile vs Waterfall

The Agile and Waterfall models are two different methods best suited for software development processes. Though they are different in their approach, both methods are useful at times, depending on the requirement and the type of the project.

Agile Model

Waterfall Model

The Agile method proposes an incremental and iterative approach to software design.

Development of the software flows sequentially from the start point to the end point.

The Agile process is broken into individual models that designers work on.

The design process is not broken into individual models.

The customer has early and frequent opportunities to look at the product as well as make decisions and changes to the project.

The customer can only see the product at the end of the project.

The Agile model is considered unstructured compared to the waterfall model.

Waterfall model are more secure because they are so plan-oriented.

Small projects can be implemented very quickly. For large projects, it is difficult to estimate the development time.

All sorts of projects can be estimated and completed.

An error can be fixed in the middle of the project.

The whole product is tested only at the end. If the requirement error is found or if any changes must be made, the project has to start from the beginning.

The development process is iterative, and the project is executed in short (2-4 weeks) iterations. Much less planning involved.

The development process is phased, and the phases are much bigger than the iteration. Every phase ends with the detailed description of the next phase.

Documentation has less priority than software development.

Documentation is a top priority and can even be used for training staff and upgrading the software with another team.

Every iteration has its own testing phase. It allows implementing regression testing every time new functions or logic are released.

The testing phase is only executed after the development phase because separate parts are not fully functional.

In Agile testing, when an iteration ends, shippable features of the product is delivered to the customer. New features are usable right after shipment. It is useful when you have good contact with customers.

All features developed are delivered at once after the long implementation phase.

Testers and developers work together.

Testers work separately from developers.

At the end of every sprint, user acceptance is performed.

User acceptance is performed at the end of the project.

It requires close communication with developers to analyse requirements and planning together.

The developer is not involved in the requirement and planning process. There are usually time delays between tests and coding.

Waterfall

The waterfall model is a breakdown of project activities into linear sequential phases, where each phase depends on the deliverables of the previous one and corresponds to a specialisation of tasks. Progress flows in largely one direction, downwards like a cascading waterfall through the phases.

Waterfall

Advantages

One of the driving factors behind waterfall management is that by investing time in the early stages of a project, managers ensure design needs and other requirements have been met - thus saving the time and effort generally associated with retroactively correcting problems. Therefore, the Waterfall method has several advantages, such as:

Ease of use - This model is easy to understand and use; the division between stages is intuitive and easy to grasp, regardless of prior experience.
Structure - The rigidity of the Waterfall method is a liability, but can also be a strength. The clear demarcation between stages helps organise and divide work. Since you can't go back, you have to be ‘perfect’ in each stage, which often produces better results.
Documentation - The sharp focus on gathering and understanding requirements makes the Waterfall model heavily reliant on documentation. This makes it easy for new resources to move in and work on the project when needed.

Disadvantages

Higher risk - The rigidity of this methodology means that if you find an error or need to change something, you have to essentially start the project from the beginning. This substantially increases the risk of project failure.
Front-heavy - The entire Waterfall approach depends heavily on your understanding and analysing requirements correctly. Should you fail to do that - or should the requirements change - you have to start over. This lack of flexibility makes it a poor choice for long and complex projects.

Agile

Although there were several software development methods that originated in the 1990’s which attributed to the development of Agile, they are now collectively referred to as Agile software development methods. These include rapid application development (RAD) from 1991, the unified process (UP) and dynamic systems development method (DSDM) - both from 1994, Scrum from 1995, Crystal Clear and extreme programming (XP) - both from 1996, and feature-driven development from 1997. Agile, as we know it today, officially came into existence in 2001, after seventeen innovating software developers published the ‘Manifesto for Agile Software Development.’

Agile is an approach to software development under which requirements and solutions evolve through the collaborative effort of self-organising and cross-functional teams and their customers/end users. It advocates adaptive planning, evolutionary development, early delivery, and continual improvement, and it encourages rapid and flexible response to change. Compared to traditional software engineering, agile software development mainly targets complex systems and product development with dynamic, non-deterministic and non-linear characteristics.

Agile

Advantages

One of the driving factors behind waterfall management is that by investing time in the early stages of a project, managers ensure design needs and other requirements have been met - thus saving the time and effort generally associated with retroactively correcting problems. Therefore, the Waterfall method has several advantages, such as:

Flexibility and freedom - Since there are no fixed stages or focus on requirements, it gives your resources much more freedom to experiment and make incremental changes. This makes it particularly well-suited for creative projects.
Lower risk - With Agile management, you get regular feedback from stakeholders and make changes accordingly. This drastically reduces the risk of project failure since the stakeholders are involved at every step.

Disadvantages

No fixed plan - The Agile approach emphasises responding to changes as they occur. This lack of any fixed plan makes resource management and scheduling harder. You will constantly have to juggle resources, bringing them on/off on an ad-hoc basis.
Collaboration-heavy - The lack of a fixed plan means all involved departments - including stakeholders and sponsors - will have to work closely to deliver results. The feedback-focused approach also means that stakeholders must be willing (and available) to offer feedback quickly.

In our next article, we discuss Sybrin’s hybrid methodology.

Sybrin Insights

Have a look at what is happening in the industry at our insights section and read all about our events, blogs, case studies, and trending news.


Find out more »