Waterfall vs. Agile — Difference Between Methodologies

Theo Crowley
Pineapple Workshop
Published in
4 min readApr 7, 2023

What is the difference between Waterfall and Agile development methodologies and why does developing decentralized applications require the use of waterfall methodologies? Give our article a read to learn all about these two development methodologies and more!

Waterfall

Waterfall methodology centers around completing a task correctly and in its entirety prior to moving onto another task. Waterfall methodology is very useful when the scope is clear, there is a clear budget, the project has a clear division of labor, and there are verification checks before the team(s) move onto the subsequent phases.

Waterfall methodology, however, can be difficult for numerous reasons. To begin, teams must tightly align on the project’s requirements. It is essential to develop an accurate budget, which can be very difficult in software development. Division of labor can be harmful, because developers cannot easily pivot from one task to another. Lastly if changes are required, sunk costs are incurred. Sunk costs occur because making changes requires teams to double back on work they have already done.

Here is a diagram to elucidate waterfall processes:

There are three main Waterfall Management terms:

  • Critical Path: The longest sequence through a project from start to finish. In other words, how long the project will take if things move as slow as possible.
  • Slack: Tasks that are on the non-critical path. Tasks that can be delayed without affecting the project’s timeline.
  • Activity Crashing: Allocating additional resources to a task in an attempt to shorten the time needed to complete it.

Summary — Pros and Cons of Waterfall Methodology

Pros:

  • Disciplined (set schedule)
  • Control over scope
  • Budget clarity
  • Promotes division of labor
  • Verification checks before going forward

Cons:

  • Requirement gathering is difficult
  • Planning/budgeting is inaccurate
  • Sunk costs with changes
  • Division of labor can be harmful

Agile

Agile development centers on hiring talented individuals and letting them figure out development needs together. This methodology emphasizes teams over processes and tools.

Agile relies on a cyclical development process, opposed to waterfall’s linear progression of tasks.

Agile prioritizes working software over documentation, customer collaboration over contract negotiation, and responding to change instead of strictly following the initial plan.

Agile implements short sprints to fail fast and limit sunk costs.

Summary — Pros and Cons of Agile Methodology

Pros:

  • Minimization of wasteful meetings, planning and documentation
  • Cross functional teams broaden horizons
  • Minimizes sunk costs
  • Embraces changes and addresses quickly

Cons:

  • Waterfall is a better alternative in projects that require scoping and planning (Ie. web3, more on this later)
  • Can be harder to manage complexities
  • Expectations need to be set

There are two ways to go about agile development: scrum and kanban.

Scrum

Scrum revolves around transparency and inspection.

  • Transparency
  • Sprint reviews
  • Daily standups regarding progress and obstacles (What did you do yesterday? What are you doing today? What obstacles are in your way?)
  • Inspection
  • With agile development, there are no project managers. The team and progress relies on team members helping each other.

Scrum implements two types of backlogs to track work.

  • Product Backlog
  • Overall scope backlog
  • Sprint Backlog: what has to get done in each specific sprint the team is working on.

Scrum development involves three team member types.

  • Product Owner: Maximizes the products value, decides what is built, prioritizes backlog
  • Scrum Team: 3 to 9 team members, self organizing and cross functional
  • Scrum Master: Champion of scrum methodology, removes implements, coaches and supports

Kanban

Kanban has three stages of work:

  1. To Do
  2. In Progress
  3. Done

The stages are meant to ensure progress and limit work-in-progress (WIP)

Scrum and Kanban Differences

Scrum implements fixed sprint lengths where deliverables are completed at the end of every sprint. In kanban, there are no fixed length sprints and releases occur continuously, whenever there is a shippable product ready. Scrum implements specified roles, whereas Kanban has no specified roles.

Why does developing decentralized applications require the use of waterfall methodologies?

Developing decentralized applications requires the use of waterfall methodologies because understanding scope, planning and allocating budget are essential to developing a functioning dapp. Smart contracts are the pillars of dapps and requirements need to be clear to develop efficient and effective smart contracts.

Waterfall methodology must be followed because dapp functionality requires web3 integration to be made early in the development process. If web3 is not integrated early unforeseen issues can arise.

We recommend that all our clients integrate web3 to their applications as early as possible. Unforeseeable issues are inevitable and the earlier clients integrate web3, the longer they have to refine and test.

Pineapple Workshop

If you enjoyed this article or want to learn more about who we are and what we do, follow us on Medium and visit our website.

--

--