---
title: "什么是 Waterfall？"
canonical: https://wavect.io/zh/glossary/waterfall/
language: zh
description: "一种顺序式开发模型，每个阶段（需求、设计、构建、测试、部署）在下一个阶段开始之前完成。对范围固定且充分理解的工作很扎实，对产品探索则很糟糕。"
image: "https://wavect.io/img/general/bak/open_graph_preview.jpg"
---

方法

# Waterfall

一种顺序式开发模型，每个阶段（需求、设计、构建、测试、部署）在下一个阶段开始之前完成。对范围固定且充分理解的工作很扎实，对产品探索则很糟糕。

最近审阅: 2026-06-02 审阅人 [Kevin Riedl](/zh/team/kevin-riedl/) [wiki ↗](https://www.wikidata.org/wiki/Q139796365)

Waterfall 把一个项目作为一连串有序的阶段来执行：先收集所有需求，然后设计整个系统，然后构建它，然后测试它，然后部署它。每个阶段产出一份签署确认的文档，并在下一个阶段开始之前完成。它的吸引力显而易见：你预先就知道计划、成本和日期，而且所有人在写下一行代码之前都达成一致。

它对某些工作仍然有正当的适用之处。当范围真正固定且被充分理解时，当监管方要求预先的文档和可追溯性时，或当你在构建硬件、金属切下后无法廉价迭代时，顺序式阶段就是诚实的模型。把这样的项目假装成「敏捷」，只是把计划藏了起来，而不是把它去掉。

合同这一面，是 Waterfall 与敏捷碰撞得最具体的地方。在奥地利和德国法律下，一份固定价格的 Werkvertrag 需要一个明确的交付物来绑定供应商，这会自然地把项目推向一个瀑布式、被完整规格化的范围。真正迭代的工作，也就是你预期需求会随学习而变化的那种，更适合 Dienstvertrag 或 Retainer。当创始人既想要固定价格的法律确定性、又想要敏捷的灵活性时，麻烦就来了：这两者朝相反方向拉扯。诚实的解法通常是先做一段固定价格的发现，把范围钉到足以定价的程度，然后用剩余不确定性实际所需的那种边界渗透度去跑构建。

它在产品探索上失败得很惨。致命的假设是，你能在任何用户接触它之前就预先把正确的产品规范定下来。你几乎永远做不到。等到构建阶段结束时，几个月前收集的需求已经有一部分是错的，而 Waterfall 没有廉价的办法在测试阶段之前发现这一点，那时改动任何东西都很昂贵。你得到的是一个符合规范却错失需求的产品。

与 [敏捷](/zh/glossary/agile/) 诚实的区分：Waterfall 把所有决策前置，并赌它们是对的。敏捷（无论是以 [Scrum](/zh/glossary/scrum/) 还是一种更轻量的流动来跑）把决策分散到整个工作过程中，并赌早期反馈会抓住错误的决策。无论哪种，两者都只是对同一组底层 [SDLC](/zh/glossary/sdlc/) 阶段所做的排序选择。对于任何你还不确切知道该构建什么的事情，这个赌注偏向敏捷。对于任何答案真正已知且固定的事情，Waterfall 的可预测性是一个优点，而不是缺陷。

// FAQ

## 常见问题

### 什么是 Waterfall？

一种顺序式开发模型，把一个项目作为有序阶段来执行，即需求、设计、构建、测试、部署，每个阶段在下一个开始之前完成并签署确认。它在写代码之前就预先承诺完整的计划、成本和日期。

### 敏捷与 Waterfall 的对比？

Waterfall 把每个决策前置并赌计划是对的，然后抗拒改变。敏捷把决策分散到短迭代中，并用早期反馈来修正方向。Waterfall 适合范围固定且被充分理解的工作以及受监管或硬件类工作。敏捷适合任何你还不确切知道该构建什么的事情，而那是大多数软件。

### Waterfall 何时会失败？

在产品探索中。它假设你能在任何用户接触它之前就规范出正确的产品，而你几乎永远做不到。错误的需求只在测试阶段才浮现，那时改动它们最昂贵，于是你交付了一个符合规范却错失真实需求的产品。

相关术语

- [Agile](/zh/glossary/agile/)
- [Scrum](/zh/glossary/scrum/)
- [SDLC](/zh/glossary/sdlc/)

相关服务

- [软件开发](/zh/services/software-development/)

相关案例研究

- [Polity](/zh/case-studies/polity/)

相关指南

- [软件开发流程：从首次通话到完整交接](/zh/software-development-guide/software-development-process/)

聊聊

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/#organization",
      "@type": [
        "Organization",
        "ProfessionalService",
        "LocalBusiness"
      ],
      "employee": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "founder": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "legalRepresentative": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "name": "Wavect GmbH",
      "subjectOf": {
        "@id": "https://wavect.io/verified-claims.json#dataset",
        "@type": "Dataset",
        "creator": {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        "description": "A machine-readable registry of quantitative and qualitative claims published by Wavect, with review dates, localized page appearances and public third-party citations where available.",
        "inLanguage": "en",
        "isAccessibleForFree": true,
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "name": "Wavect verified publication claims",
        "url": "https://wavect.io/verified-claims.json"
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/team/kevin-riedl/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Kevin Riedl",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796365",
        "https://www.linkedin.com/in/wsdt",
        "https://github.com/wsdt"
      ],
      "url": "https://wavect.io/team/kevin-riedl/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/team/christof-jori/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Christof Jori",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796367",
        "https://www.linkedin.com/in/jocr77/",
        "https://github.com/jo-chris"
      ],
      "url": "https://wavect.io/team/christof-jori/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/#website",
      "@type": "WebSite",
      "inLanguage": [
        "en",
        "de",
        "es",
        "zh"
      ],
      "name": "Wavect",
      "potentialAction": {
        "@type": "SearchAction",
        "query-input": "required name=search_term_string",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://wavect.io/search/?q={search_term_string}"
        }
      },
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "url": "https://wavect.io/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/zh/glossary/waterfall/#term",
      "@type": "DefinedTerm",
      "alternateName": [],
      "description": "一种顺序式开发模型，每个阶段（需求、设计、构建、测试、部署）在下一个阶段开始之前完成。对范围固定且充分理解的工作很扎实，对产品探索则很糟糕。",
      "inDefinedTermSet": "https://wavect.io/zh/glossary/#termset",
      "name": "Waterfall",
      "termCode": "waterfall",
      "url": "https://wavect.io/zh/glossary/waterfall/"
    },
    {
      "@id": "https://wavect.io/zh/glossary/waterfall/#webpage",
      "@type": "WebPage",
      "about": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "author": {
        "@id": "https://wavect.io/team/kevin-riedl/#person",
        "@type": "Person",
        "name": "Kevin Riedl",
        "url": "https://wavect.io/team/kevin-riedl/"
      },
      "dateModified": "2026-06-02",
      "description": "一种顺序式开发模型，每个阶段（需求、设计、构建、测试、部署）在下一个阶段开始之前完成。对范围固定且充分理解的工作很扎实，对产品探索则很糟糕。",
      "headline": "Waterfall",
      "inLanguage": "zh",
      "isPartOf": {
        "@id": "https://wavect.io/#website",
        "@type": "WebSite"
      },
      "lastReviewed": "2026-06-02",
      "mainEntity": {
        "@id": "https://wavect.io/zh/glossary/waterfall/#term"
      },
      "mentions": [
        {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        }
      ],
      "name": "Waterfall",
      "reviewedBy": {
        "@id": "https://wavect.io/team/christof-jori/#person",
        "@type": "Person",
        "name": "Christof Jori",
        "url": "https://wavect.io/team/christof-jori/"
      },
      "speakable": {
        "@type": "SpeakableSpecification",
        "cssSelector": [
          ".gls-single__h1",
          ".gls-single__tldr"
        ]
      },
      "url": "https://wavect.io/zh/glossary/waterfall/"
    },
    {
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "item": "https://wavect.io/zh/",
          "name": "首页",
          "position": 1
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/zh/glossary/",
          "name": "技术、产品与合作模式术语表",
          "position": 2
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/zh/glossary/waterfall/",
          "name": "Waterfall",
          "position": 3
        }
      ]
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "一种顺序式开发模型，把一个项目作为有序阶段来执行，即需求、设计、构建、测试、部署，每个阶段在下一个开始之前完成并签署确认。它在写代码之前就预先承诺完整的计划、成本和日期。"
      },
      "name": "什么是 Waterfall？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Waterfall 把每个决策前置并赌计划是对的，然后抗拒改变。敏捷把决策分散到短迭代中，并用早期反馈来修正方向。Waterfall 适合范围固定且被充分理解的工作以及受监管或硬件类工作。敏捷适合任何你还不确切知道该构建什么的事情，而那是大多数软件。"
      },
      "name": "敏捷与 Waterfall 的对比？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "在产品探索中。它假设你能在任何用户接触它之前就规范出正确的产品，而你几乎永远做不到。错误的需求只在测试阶段才浮现，那时改动它们最昂贵，于是你交付了一个符合规范却错失真实需求的产品。"
      },
      "name": "Waterfall 何时会失败？"
    }
  ],
  "speakable": {
    "@type": "SpeakableSpecification",
    "cssSelector": [
      ".faq-question",
      ".faq-answer"
    ]
  }
}
```
