DEV Community

Pasindu Balasooriya
Pasindu Balasooriya

Posted on Originally published at Medium on

Agile, Scrum and Waterfall: Which One Actually Works?


https://www.easy8.com/EasyRedmine/media/waterfall-vs-agile.png?width=1920&height=0&rmode=min&quality=75&token=a7vd96XfaUO%2Bniyr13y7Er0VdEJpUGpsapr6kxMghEo%3D

If you have ever worked on a project, whether it was building software, planning an event or even renovating a house, you have probably run into one big question. Do you plan everything out from start to finish before you begin, or do you build a little, check in, adjust and keep going?

That question is really the heart of the whole Agile versus Waterfall debate. And once you understand it, a lot of the buzzwords thrown around in offices (sprints, backlogs, scrum masters) start to make a lot more sense.

What Is the SDLC?

Before getting into Agile versus Waterfall, it helps to know about the SDLC, short for Software Development Life Cycle. This is just the general set of stages any piece of software tends to pass through on its way from idea to finished product. Most versions of it include the same rough stages such as figuring out requirements, designing a solution, building it, testing it, then releasing and maintaining it.

The SDLC itself is not a methodology. It is more like the skeleton. Waterfall and Agile are two very different ways of moving through that same skeleton. Waterfall walks through those stages once, in a straight line, start to finish. Agile walks through a small version of those same stages again and again, once per sprint, refining as it goes.

The Old Way: Waterfall

Waterfall is the traditional approach to managing a project. The name comes from how it works. Like water flowing down a series of steps, you move through one phase completely before falling into the next one. There is no going back up.

A typical Waterfall project looks like this.

  1. Requirements - figure out exactly what needs to be built
  2. Design - plan out how it will be built
  3. Implementation - actually build it
  4. Testing - check that it works
  5. Release and maintenance - launch it and keep it running

The appeal of Waterfall is obvious. It is simple, predictable and easy to explain to a client or manager. You agree on requirements upfront by signing an SRS (software requirement specification), you get a timeline, and everyone knows what is coming next. For decades this was the default way software and other big projects got built.

The problem is real life rarely stays still long enough for this to work perfectly. If a client changes their mind halfway through or the market shifts or testing reveals a huge design flaw near the end, going back to fix it can be expensive and slow. By the time you find out something is wrong, you may have already spent months building on top of it.

The Newer Way: Agile

Agile grew out of frustration with exactly that problem. Instead of planning the entire project upfront and hoping nothing changes, Agile assumes change is normal and builds a process around it.

Rather than one long march from requirements to release, Agile breaks the work into small, workable chunks. Each chunk delivers something usable (or shippable), even if it is small and the team gets feedback quickly instead of waiting until the very end to find out if they got it right.

Agile is built around a few core values.

  • Individuals and interactions over rigid processes and tools
  • Working products over exhaustive documentation
  • Customer collaboration over locking in a fixed contract upfront
  • Responding to change over blindly following a plan

Scrum: Agile in Practice

Agile itself is more of a mindset than a strict process, which is why frameworks like Scrum exist. Scrum takes the Agile philosophy and turns it into an actual set of practices a team can follow day to day.

Here is roughly how it works. The team breaks the project into short cycles called sprints, usually somewhere between one and four weeks long. Before a sprint starts, the team picks items from a running wishlist called the product backlog and commits to finishing them during that sprint (sprint backlog).

A few roles keep things moving.

  • The Product Owner decides what matters most and keeps the backlog in order
  • The Scrum Master helps the team stay on track and clears away anything blocking progress
  • The Scrum Team actually builds the thing

During the sprint, the team holds a quick daily standup, usually capped at around 15 minutes, where everyone answers three simple questions like what did I do yesterday, what am I doing today and is anything blocking me. It sounds small, but it keeps everyone aligned without turning into a three hour meeting.

At the end of the sprint, the team demos what they built in a sprint review and then holds a retrospective to talk honestly about what went well and what did not. Then the whole cycle starts again with the next sprint.

One helpful tool inside this process is the user story. Instead of writing a dense technical requirement, teams write something like:

As a [type of user], I want [some goal], so that [some reason].

Each user story also comes with acceptance criteria, which are the specific conditions that must be true for the story to count as done. For example, a signup form user story might require that a form cannot be submitted with missing fields, that submitted data gets stored correctly and that a confirmation email goes out afterward. This keeps everyone honest about what “finished” actually means.

So Which One Is Actually Better?

Here is the honest answer. It depends, but Agile wins more often than not in today’s world.

Agile tends to work better when requirements are likely to change, when you need to get something in front of users early or when the project is complex enough that nobody can predict every detail upfront. This describes most modern software projects. Customers change their minds, markets shift and the fastest way to learn if an idea works is to build a small version and test it, rather than spend a year building the “perfect” plan only to find out it missed the mark.

That said, Waterfall still has its place. If you are working on something with fixed, well understood requirements that are extremely unlikely to change, like certain construction projects, regulatory compliance work or hardware manufacturing where redoing a physical step is costly or impossible, a predictable step by step plan can actually be safer and more efficient. Waterfall also tends to suit situations where the client wants a fixed price, fixed scope contract agreed upfront, since Agile’s flexible scope can be harder to pin down in a contract.

So the real answer is not “Agile is always right.” It is closer to this. The more uncertain, fast changing and feedback dependent your project is, the more Agile and Scrum make sense. The more fixed, predictable and sequential your project is, the more Waterfall holds up.

Most teams today lean Agile because most modern work, especially software, lives in that first category. But a good project manager does not pick a methodology out of habit. They look at the actual project in front of them and choose the approach that fits.

The Takeaway

Waterfall gives you structure and predictability by planning everything before you start. Agile and Scrum as its most common framework, gives you flexibility and fast feedback by building in small pieces and adjusting as you go. Neither one is universally correct. The best project managers know both well enough to pick the right tool for the job and sometimes even blend the two depending on what a project actually needs.

Top comments (0)