Trusted answers to developer questions
Trusted Answers to Developer Questions

Related Tags

methodology
system
development
process

Waterfall vs. Agile

Educative Answers Team

Grokking Modern System Design Interview for Engineers & Managers

Ace your System Design Interview and take your career to the next level. Learn to handle the design of applications like Netflix, Quora, Facebook, Uber, and many more in a 45-min interview. Learn the RESHADED framework for architecting web-scale applications by determining requirements, constraints, and assumptions before diving into a step-by-step design process.

For every company, upon receiving a project, the first decision to be made is about the project management methodology it must follow throughout the course of the project.

Methodologies help decide how to divide each phase of the project; research, analysis, development, testing and more. Here, we will discuss the characteristics and some advantages and disadvantages of two of the most used approaches in project management.

Learning the difference

1. Waterfall model

The Waterfall model is a step-by-step approach to product development. In this method, each step; requirement analysis, design, implementation, verification and maintenance is a separate stage.

Each stage must be completed before the next stage can be started.

The diagram below shows how this model works:

2. Agile model

This methodology takes a slightly different approach to product development. Instead of dividing each phase into stages, Agile instead, divides product development into sprints. For each sprint there is a specific goal that will include parts of all phases in order to create a specific part of the product.

The implemented part is tested at the end of the sprint to ensure its functionality. Each sprint is given a specific amount of time to complete like 2 weeks. Hence, Agile is an iterative process where small cycles of all phases are run repeatedly until the project is complete.

The illustration below shows this:

How to pick a model?

As highlighted above, there are strategic differences between the two models. The question then arises that which model should be chosen and why?

There is no simple answer. Each model works better under different circumstances. Let’s see which model fares better in which requirements:

Customer Involvement

If customer involvement is a priority then Agile with its sprints and product releases after each sprint allow for more customer engagement than a final product delivery as in Waterfall.

Team Size

A large team size works well with Waterfall with its distribution of duties as opposed to Agile with members from each team field together.

Time Frame

Agile is good for a longer time frame due to its sprint dependant process. Waterfall works well in a time-constraint situation.

Project Scale

With a small scale, an Agile model works better as development starts right at the beginning instead of focusing on stages that perhaps don’t require as much time as Waterfall would allocate it.

RELATED TAGS

methodology
system
development
process
Copyright ©2022 Educative, Inc. All rights reserved

Grokking Modern System Design Interview for Engineers & Managers

Ace your System Design Interview and take your career to the next level. Learn to handle the design of applications like Netflix, Quora, Facebook, Uber, and many more in a 45-min interview. Learn the RESHADED framework for architecting web-scale applications by determining requirements, constraints, and assumptions before diving into a step-by-step design process.

Keep Exploring