Waterfall Methodology: A Comprehensive Guide

Atlassian Автор: Atlassian
Просмотр тем

If you've been in project management for a while, you must’ve encountered the Waterfall methodology. It's an old-school software development method from the 1970s.

In a Waterfall process, you must complete each project phase before moving to the next. It's pretty rigid and linear. The method relies heavily on all the requirements and thinking done before you begin.

Don't worry if you haven't heard of it. Let’s break the Waterfall method down and see how it works.

What is the Waterfall methodology?

Waterfall methodology is a well-established project management workflow. Like a waterfall, each process phase cascades downward sequentially through five stages (requirements, design, implementation, verification, and maintenance).

The methodology comes from computer scientist Winston Royce’s 1970 research paper on software development. Although Royce never named this model “waterfall”, he gets credit for creating a linear, rigorous project management system.

Unlike other methods, such as the Agile methodology, Waterfall doesn't allow flexibility. You must finish one phase before beginning the next. Your team can’t move forward until they resolve any problems. Moreover, as our introduction to project management guide outlines, your team can’t address bugs or technical debt if it’s already moved on to the next project phase.

What are the stages of the Waterfall methodology?

Five phases comprise the Waterfall methodology: requirements, design, implementation, verification, and maintenance. Let's break down the five specific phases of Waterfall development and understand why it’s critical to complete each phase before progressing to the next.

Требования

The requirements phase states what the system should do. At this stage, you determine the project's scope, from business obligations to user needs. This gives you a 30,000-foot overview of the entire project. The requirements should specify:

  • resources required for the project.
  • what each team member will work on and at what stage.
  • a timeline for the entire project, outlining how long each stage will take.
  • details on each stage of the process.

But these requirements "may range from very abstract to a detailed mathematical specification,” writes Steven Zeil, professor of computer science at Old Dominion University. That’s because requirements might not outline an exact implementation, and that’s something development addresses in later stages.

Дизайн

After gathering all the requirements, it's time to move on to the design stage. Here, designers develop solutions that meet the requirements. In this stage, designers:

  • create schedules and project milestones.
  • determine the exact deliverables.
  • create designs and/or blueprints for deliverables.

Deliverables could include software or they could consist of a physical product. For instance, designers determine the system architecture and use cases for software. For a physical product, they figure out its exact specifications for production.

Implementation

Once the design is finalized and approved, it's time to implement it. Design hands off their specifications to developers to build.

To accomplish this, developers:

  • create an implementation plan.
  • collect any data or research needed for the build.
  • assign specific tasks and allocate resources among the team.

Here is where you might even find out that parts of the design that can't be implemented. If it's a huge issue, you must step back and re-enter the design phase.

Verification

After the developers code the design, it’s time for quality assurance. It’s important to test for all use cases to ensure a good user experience. That's because you don't want to release a buggy product to customers.

QA also:

  • writes test cases.
  • documents any bugs and errors to be fixed.
  • tests one aspect at a time.
  • determines which QA metrics to track.
  • covers a variety of use case scenarios and environments.

Техническое обслуживание

After the product release, devs might have to squash bugs. Customers let your support staff know of any issues that come up. Then, it's up to the team to address those requests and release newer versions of your product.

As you can see, each stage depends on the one that comes before it. It doesn't allow for much error between or within phases.

For example, if a stakeholder wants to add a requirement when you're in the verification phase, you'll have to re-examine the entirety of your project. That could mean tossing the whole thing out and starting over.

Benefits of Waterfall methodology

The benefits of Waterfall methodology have made it a lasting workflow for projects that rely on a fixed outcome. A 2020 survey found that 56% of project professionals had used traditional, or Waterfall, models in the previous year.

A few benefits of Waterfall planning include:

  • Clear project structure: Waterfall leaves little room for confusion because of rigorous planning. There is a clear end goal in sight that you're working toward.
  • Set costs: The rigorous planning ensures that the time and cost of the project are known upfront.
  • Easier tracking: Assessing progress is faster because there is less cross-functional work. You can even manage the entirety of the project in a Gantt chart, which you can find in Jira.
  • A replicable process: If a project succeeds, you can use the process again for another project with similar requirements.
  • Comprehensive project documentation: The Waterfall methodology provides you with a blueprint and a historical project record so you can have a comprehensive overview of a project.
  • Improved risk management: The abundance of upfront planning reduces risk. It allows developers to catch design problems before writing any code.
  • Enhanced responsibility and accountability: Teams take responsibility within each process phase. Each phase has a clear set of goals, milestones, and timelines.
  • More precise execution for a non-expert workforce: Waterfall allows less-experienced team members to plug into the process.
  • Fewer delays because of additional requirements: Since your team knows the needs upfront, there isn't a chance for additional asks from stakeholders or customers.

Limitations of Waterfall methodology

Waterfall isn't without its limitations, which is why many product teams opt for an Agile methodology.

The Waterfall method works wonders for predictable projects but falls apart on a project with many variables and unknowns. Let's look at some other limitations of Waterfall planning:

  • Longer delivery times: The delivery of the final product could take longer than usual because of the inflexible step-by-step process, unlike in an iterative process like Agile or Lean.
  • Limited flexibility for innovation: Any unexpected occurrence can spell doom for a project with this model. One issue could move the project two steps back.
  • Limited opportunities for client feedback: Once the requirement phase is complete, the project is out of the hands of the client.
  • Tons of feature requests: Because clients have little say during the project's execution, there can be a lot of change requests after launch, such as addition of new features to the existing code. This can create further maintenance issues and prolong the launch.
  • Deadline creep: If there's a significant issue in one phase, everything grinds to a halt. Nothing can move forward until the team addresses the problem. It may even require you to go back to a previous phase to address the issue.

Below is an illustration of a project using the waterfall approach. As you can see, the project is segmented into rigid blocks of time. This rigidity fosters an environment that encourages developers, product managers, and stakeholders to request the maximum amount of time allotted in each time block, since there may be no opportunity to iterate in the future.

Пример релиза в каскадной модели | Atlassian — тренер по agile

How is the Waterfall method different from Agile project management?

Agile project management and the Waterfall methodology have the same end goal: crystal clear project execution. While Waterfall planning isolates teams into phases, Agile allows for cross-functional work across multiple phases of a project. Instead of rigid steps, teams work in a cycle of planning, executing, and evaluating, iterating as they go.

The "Agile Manifesto" explains the benefits of Agile over the Waterfall model:

  • Люди и взаимодействие важнее процессов и инструментов.
  • Работающий продукт важнее исчерпывающей документации.
  • Сотрудничество с заказчиком важнее согласования условий контракта.
  • Responding to change by following a plan

If you're looking for tools that support Agile project management and serve the same end goal as Waterfall, consider Jira. It’s best suited for Agile projects, and helps you:

  • Track work: With Gantt charts, advanced roadmaps, timelines, and various other tools, you can easily track your progress throughout the project.
  • Align your team: Tracking allows you to seamlessly plan across business teams, keeping everyone aligned on the same goals.
  • Manage projects and workflows: With Jira, you can access Jira project management templates that you can use for your Agile workflows.
  • Plan at every stage: Jira Product Discovery, another product by Atlassian, offers product roadmaps for planning and prioritizing product features at every stage, from discovery to delivery.

Atlassian's Agile tools support the product development lifecycle. There are even Agile metrics for tracking purposes. Jira lets you drive forward the Agile process. It uses intake forms to track work being done by internal teams and offers a repeatable process for requests.

These Jira products integrate natively within the app, unifying teams so they can work faster.

Use Agile methodology for project management

Waterfall methodology has a long history in project management, but it's often not the right choice for modern software developers. Agile methodology offers greater flexibility.

Here’s why most teams prefer an Agile process:

  • Adaptability to changes: If something arises, your team will be better able to adjust on the fly. Waterfall’s rigidity makes it difficult to deal with any roadblocks.
  • Continuous feedback loop: Continuous improvement requires a feedback loop. With Agile, you can gather feedback from stakeholders during the process and iterate accordingly.
  • Stronger communication: Teams work collaboratively in an Agile process. Waterfall is a series of handoffs between different teams, which hinders effective communication.


Here is where a project management tool such as Jira comes in handy for an Agile methodology. You can also use a project management template for your Agile projects. Your team can plan, collaborate, deliver, and report on projects in one tool. That keeps everyone aligned throughout any project and streamlines project management.

Waterfall methodology: Frequently asked questions

Кому лучше всего подходит каскадная методология?

The Waterfall methodology works best for project managers working on projects that include:

  • Less complex objectives: Projects that don't have complicated requirements are best suited for Waterfall.
  • Predictable outcomes: Waterfall works best for those projects that are replicable and proven.
  • Reduced likelihood of project scope creep: A project where clients aren't likely to come up with last-minute requirements is suitable for Waterfall.

Кому лучше всего подходит каскадная методология?

Agile methodology is perfect for nimble teams with an iterative mindset, such as:

  • Cross-functional teams: A team of people with different skill sets that allows them to work on various aspects of a project. These are collaborative types who are flexible.
  • Self-organizing teams: Autonomous teams that don't need a lot of handholding. They embrace ambiguity in a project and are great problem solvers. This mindset also gives them more ownership over outcomes.
  • Startups and small businesses: These benefit from the mindset of "move fast and break things". So they can fail fast, learn, and improve.

Finally, Agile works well for customer-centric projects where their input allows you to iterate.

What factors should I consider before implementing a project management approach?

When deciding on the proper methodology to implement in project management, there are four main factors to consider: project complexity, organizational goals, team expertise, and stakeholder involvement.

Let’s break each one down:

  • Project complexity: Waterfall can help break down larger, more complex projects into smaller sets of expectations and goals. But its rigidity doesn’t deal well with unknowns or changes. Agile is better for complex projects that have a lot of variables.
  • Organizational goals: What does your organization want to achieve? Is it looking to innovate or keep the status quo? An Agile approach is best if your organization wants to break down silos. Teams will work more collaboratively with more autonomy.
  • Team expertise: Agile is an excellent way to go if your team is cross-functional and can work across skill sets. If your team members rely heavily on a singular skill set, Waterfall may be better.
  • Stakeholder involvement: If your stakeholders are going to be more hands-on, Agile will help you best because it allows for continuous feedback and iteration.
продолжение темы
Скорость в Scrum