政企项目只用瀑布开发,我们的实战复盘

一、先说结论:政企项目只用瀑布开发,不是退化,而是理性回归

2024年年底,我们在某省厅级单位交付了一个预算两千三百万的大数据治理平台。项目周期14个月,团队峰值62人,最终延期19天,核心功能一次验收通过率91%,生产环境上线后三个月内P0级故障为零。

很多同行听到“延期19天”的第一反应是摇头,但熟悉政企交付的人知道,在甲方的财政年度结算窗口、等保三级测评、多部门联调联试面前,19天几乎可以忽略不计。真正让甲方领导在验收会上点头的,不是我们的界面多好看,而是整套交付物里113份设计文档、47份测试报告和19次阶段评审记录,每一份都可以追溯到招标文件、需求规格说明书和变更确认单。

这个项目,我们从头到尾只用瀑布开发

不是没想过敏捷。立项初期,团队里有三个Scrum Master出身的技术经理强烈建议至少在某些模块试点Scrum。但在第一次需求调研会之后,他们全部投了瀑布的票。原因很简单:当甲方的信息化处长明确告诉你“我不看你迭代,我只看里程碑付款节点和验收文档”的时候,任何不顾交付模式的理想主义都会变成项目风险。

这篇文章不是要论证瀑布比敏捷好,那种非黑即白的争论在真实项目里毫无意义。我要做的是完整复盘一个真实政企项目的全生命周期,把团队在每一个阶段的决策逻辑、踩过的坑、交付的数据和最终的经验判断全部摊开。如果你正在一个政企项目里痛苦挣扎,或者即将进入这个领域,这篇复盘至少能帮你少走三个月的弯路。

政企项目只用瀑布开发,我们的实战复盘

二、项目背景:一个典型的“必须用瀑布”的场景

1. 甲方画像:省级政府部门的信息化升级

项目甲方是某省级厅局的信息化处,核心诉求是把散落在7个处室、3个下属单位的业务数据统一接入一个大数据平台,实现数据汇聚、清洗、分析和可视化展示。系统最终的用户包括厅领导、各处室业务人员以及向下对接的市级单位。

这类甲方的典型特征我们太熟悉了:

  • 付款结构和里程碑强绑定:合同签了四笔付款节点,分别是需求确认(20%)、初验(30%)、终验(40%)、质保期满(10%),每一笔拨款都需要对应的交付物审计。
  • 多部门审批链路冗长:一个接口需求的变更可能涉及信息中心、业务处室、财务处、第三方监理以及厅领导五个环节,平均审批周期7-10个工作日。
  • 合规要求极高:等保三级、商密测评、国产化适配(麒麟V10 + 达梦数据库)、第三方测试报告,缺一项都拿不到上线许可。
  • 需求来源分散且质量参差不齐:有的处室能给出详细的功能清单,有的处室只会说“把我们现在用的Excel表搬上去就行”。

这些特征不是某一家的特例。过去八年,我交付过11个百万级以上的政企项目,从省厅到地市到央企,甲方变了,但这套约束条件几乎一模一样。

2. 团队现状:62个人,只有4个人做过完整的政企项目

项目启动时,团队包括项目经理(我)、需求分析师4人、架构师2人、后端开发22人、前端开发10人、测试工程师8人、实施运维6人、质量管理2人、配置管理1人、文档专员3人、第三方驻场人员3人。

62个人里,有完整政企交付经验的不超过4个。大部分开发人员来自互联网背景,习惯了两周一迭代、需求随时改的模式。第一次内部启动会上,一个后端组长直接问我:“为什么不能用Scrum?我们可以先做一个MVP给客户看,边用边改。”我当时只问了他三句话:

“甲方每个处室一周能抽出多少小时配合你开评审会?”“你确定边用边改的数据质量在审计时说得通吗?”“如果边改的过程中把等保相关的代码改错了,谁来担责?”

这三句话后来成了整个项目组对齐方法论的核心锚点。

政企项目只用瀑布开发,我们的实战复盘

3. 关键决策:为什么在启动会上全员投票瀑布

决策过程不是一言堂。我们花了一整天时间做了一次“交付模式评估会”,评估维度包括:

评估维度 瀑布适配度 敏捷适配度 决策依据
需求确定性 招标文件的需求清单已细化到功能点,甲方强调“先确认再开发”
变更成本承受力 每笔变更需经过5个审批环节,后期变更成本呈指数级增长
甲方参与度 甲方承诺每阶段参与评审,但无法保障每周持续的深度协同
合规交付物要求 等保、商密、监理、审计要求大量文档,瀑布天然内建文档产出
支付结构 以里程碑交付为付款节点,与瀑布的阶段产出物天然对齐

五个维度全部倾向瀑布。决策不是我们选的,是这个项目的客观约束帮我们选的。

三、拆解三个最常见的误区:“瀑布就是笨重”,“瀑布一定延期”,“瀑布做不了好产品”

复盘不是为了自证。交付成功不等于方法论完美。让我先把团队在复盘会上自己提出的三个质疑摆出来,这些质疑也是很多同行看到“政企项目用瀑布”时的第一反应。

1. 误区一:“瀑布模型太重了,写那么多文档纯粹浪费开发时间”

说这句话的人通常没有在政企项目里和监理打过交道。

我们这个项目,监理方是一家甲级资质的信息化监理公司,他们派驻的监理工程师每周到现场三天,工作方式非常明确:一切以文档为基准。需求规格说明书就是你承诺要做的,设计文档就是你承诺怎么做的,测试用例就是你承诺怎么验证的。监理的签字意味着这一阶段的产出物与合同约定一致,也意味着对应的付款节点可以启动。

没有文档,就没有付款。这不是一个修辞,是一个实际的发生条件。验收时,甲方审计要求的文档清单列出来有47项,从需求溯源矩阵到安全测试报告到运维手册,每一项缺失都会在最终审计报告里标记,直接影响终验签字和质保金返还。

但“大量文档”不等于“无价值的文档”。我们的做法是把文档模板化和结构化,所有需求文档统一写在协作平台上(我们用的是PingCode),用自定义字段关联需求、设计、测试和缺陷。一份需求文档在系统里创建后,开发人员可以在同一个平台上看到关联的设计任务,测试人员可以直接引用需求描述编写测试用例。文档没有变成Word文件躺在文件夹里吃灰,而是变成了一条可追溯的数据链。

举个例子:某个数据采集接口的需求在PingCode里以用户故事的形式创建,需求编号REQ-0427。架构师在同一个平台上创建设计任务DES-0815,关联到REQ-0427。开发人员领取任务TASK-TEST-1192,提交代码后在GitLab的commit message里写上REQ-0427。测试工程师写的每条测试用例都回溯到这条需求。最后监理只需要输入REQ-0427,就能看到这条需求从调研到设计到开发到测试到上线的完整轨迹。

重量不在于瀑布模型本身,而在于你用什么样的工具承载它。如果你还在用Word + 邮件 + Excel跟踪需求,那瀑布确实重得让人窒息。但如果你用上了合适的工具链,瀑布的“重”会变成一种可追溯、可审计的结构化资产。

政企项目只用瀑布开发,我们的实战复盘

2. 误区二:“瀑布开发一定会延期的,需求肯定会变”

这个项目确实延期了19天。但我要说的是,延期的原因不是瀑布,而是我们没有在前期把“需求基线冻结”这个动作做到极致。

很多人把瀑布和“需求不可变”划等号,这是对瀑布的根本误解。瀑布模型并不禁止变更,它要求的是变更必须走正式流程,必须有代价评估,必须有决策记录。这一点恰恰是政企项目最需要的东西。

我们这个项目一共经历了14次变更申请,其中通过的有8次,被驳回的有4次,撤回的有2次。每一次变更申请都要走完整的“提交→业务评估→技术评估→成本估算→监理审核→甲方领导审批”流程。这套流程的“重”恰恰筛选掉了那些不重要的、随意的修改冲动,而真正影响业务的需求变更即使流程复杂也会被推进到底。

问题的关键在前期。我们在需求调研阶段和甲方确认范围的时候,没有把“需求基线的定义和冻结条件”写进需求规格说明书的前言里。导致有些功能虽然标着“已确认”,但甲方的理解是“确认了我想要,但具体的后面再说”。这就在编码阶段暴露了出来,数据采集模块的一个字段格式问题,我们在编码完成、进入集成测试的时候被提出来,因为这个字段在处室的日常工作中确实存在另一个变体,但这份变体没有出现在最初的需求文档里。

追溯下来,是需求分析师在那个处室的访谈记录里有一行备注:“该字段在实际操作中可能存在手工调整的情况,但未纳入正式流程。”但这条备注没有被放进正式的需求确认单。甲方签字确认的时候也没注意到这个细节。最终,这个变更在集成测试阶段才被提出,直接影响了12个人天的返工和9天的计划偏移。

这不是瀑布的错,是需求基线的边界没有定清楚。如果我能重来,我会在需求确认阶段增加一条强制规则:每一个需求项的确认状态只有“已确认”和“待调研”两种,没有中间态。凡是有备注、有疑问的点,一律标记为“待调研”,不进基线。

政企项目只用瀑布开发,我们的实战复盘

3. 误区三:“瀑布开发出来的产品质量差,因为测试太靠后了”

这一点我倒要正面反驳了。我们这个项目最终的生产环境P0级故障为零,三个月内的高危Bug数量是4个,全部在48小时内关闭。质量好不好不是测试的时间点决定的,是测试的策略和资源投入决定的。

我们的测试策略是这样的:

  • 单元测试:开发提交代码前必须通过SonarQube的规则扫描和覆盖率检查,覆盖率要求不低于80%,核心模块不低于85%。
  • 集成测试:每个模块开发完成后,在独立的集成环境上进行两周的集中测试,测试用例由专门的测试工程师编写,而不是开发自测。
  • 系统测试:全系统搭建完成后,执行三轮全量回归测试,第一轮覆盖100%的核心功能,第二轮覆盖功能交互,第三轮做边界和异常场景。
  • 用户验收测试(UAT):甲方关键用户上线前用真实数据操作两周,所有问题记录在案并逐条闭环。

在瀑布模型下,测试确实是所有开发完成之后才开始的。但这并不意味着测试只能被动接住所有Bug。我们做对了两件事:

第一,在详细设计评审阶段,测试工程师就介入编写测试用例。设计文档定稿之后,测试用例跟着定稿,而不是等到开发完了才想怎么测。这就确保了很多设计层面的逻辑漏洞在设计评审的时候就被测试视角捕捉到了。

第二,我们在PingCode里把需求、设计、用例、缺陷四类工作项全部串联。每一条测试用例都在创建时关联了需求和设计任务,每一条缺陷在提报时也必须关联对应的需求。这样测试经理可以随时看到“某个需求已经被多少条用例覆盖了,产生了多少缺陷,缺陷的关闭率是多少”。这种可视化让项目经理可以在项目中期就精准判断当前的质量水位,而不是等到系统测试阶段才一脸懵。

三个月后复盘,我们一共编写了3647条测试用例,发现了493个缺陷,其中高危及严重缺陷23个,全部在系统测试和UAT阶段关闭。上线后的P0级故障为零。这个成绩放在任何方法论下都是拿得出手的,和敏捷没有关系。

政企项目只用瀑布开发,我们的实战复盘

四、工具如何支撑瀑布而不是拖后腿:以PingCode在项目中的实际用法为例

这一节不是产品广告。我是想告诉你在一个真实的、严肃的政企瀑布项目里,工具到底用来做什么、怎么用、以及为什么这么用。

1. 需求的多级管理:史诗、特性、用户故事三层结构

甲方招标文件的需求清单是按模块写的,粗到“数据采集子系统”,细到“支持Excel数据导入”。我们需要一种方式,既能让甲方领导在高层次看到整体进度,又能让开发人员看到精确到功能点的任务描述。

PingCode支持史诗(Epic)→特性(Feature)→用户故事(User Story)三层结构。我们在项目里是这样用的:

  • 史诗级:对应甲方的子系统或核心模块,比如“数据采集与接入”、“数据治理与标准化”、“可视化分析平台”。
  • 特性级:对应一个独立的、可验收的功能集合,比如“多源异构数据接入适配器”、“数据质量规则配置引擎”。
  • 用户故事级:对应具体的功能点,比如“作为数据管理员,我希望支持CSV、Excel、JSON三种格式的数据文件上传,以便快速接入存量数据”。

三层结构的好处是,甲方领导看的是史诗的完成百分比,甲方业务人员看的是特性的交付内容,开发人员看的是用户故事的验收标准。三个层级互不干扰,但在系统里是上下联动的。一个史诗下所有的用户故事全部完成后,史诗自动变为“已完成”。这种全量的状态联动决定了我们在每个阶段末向甲方汇报的时候,进度数据不需要人工拼接,直接从PingCode里拉一张报表就行。

政企项目只用瀑布开发,我们的实战复盘

2. 迭代规划如何在PingCode里对接瀑布的阶段划分

瀑布不排斥“迭代”这个概念,只是迭代的边界和目的不一样。我们把整个项目划分为四个“阶段迭代”:

  1. 需求分析迭代(持续9周):产出物是需求规格说明书、需求溯源矩阵、需求确认单。
  2. 设计迭代(持续8周):产出物是系统架构设计、详细设计文档、数据库模型设计、接口规范定义。
  3. 开发与测试迭代(持续28周):每个模块按照编码→单元测试→功能测试→集成测试的线性顺序完成,不同模块在时间上有部分重叠,但每一模块内部是严格的瀑布。
  4. 验收与交付迭代(持续10周):产出物是部署文档、运维手册、用户操作手册、第三方测试报告、等保测评报告。

PingCode的迭代规划支持创建时间盒,你可以为每个版本设定开始和结束日期,然后把用户故事和任务分配到版本里。我们的做法是每个开发迭代以4-6周为一个规划单元,目的不是为了快速交付一个可用版本,而是为了让项目经理和开发组长能在4周粒度上检查进度偏差。如果某一个4周窗口内的完成率低于85%,就要立即做根因分析,而不是等到模块结束才反应过来。

这种用法和Scrum的迭代概念完全不同。它不是“交付可工作软件给用户用”,而是“在可控的时间窗口内检查工作产品的完成质量”。但工具本身不区分你是瀑布还是敏捷,你只需要定义清楚自己的迭代粒度和产出物标准就行。

3. 站立会议在瀑布项目里的变形用法

我们每天早上也有站立会议,但不是Scrum的“昨天我做了什么,今天我要做什么,有什么障碍”三连问。我们的站立会议是这么开的:

Scrum Master(我们设置了这个角色,但职责完全是瀑布导向的)打开PingCode的任务板,以开发模块为单位逐条过:

  • 已完成的任务:确认关联的测试用例是否已经通过,通过率是多少。
  • 进行中的任务:当前进度百分比能否支撑本周的里程碑要求。
  • 阻塞的任务:阻塞原因是什么,谁能解决,解决时限是多久。

前后一共15-20分钟,结束。没有照本宣科,没有仪式感。站会的目的只有一个:在瀑布的线性流程里发现前置依赖的延迟,把它扼杀在还没有影响下游阶段之前。

我记得最深的一次是开发组长在站会上报告某个数据处理模块的开发进度只有30%,而那一周本来要求达到60%。原因不是代码难写,是数据治理规则引擎的那份设计文档里有一个关键规则定义模糊,开发人员和架构师来回确认了三轮邮件都没有结论。这个问题在站会上被当场升级,项目经理拉着架构师、需求分析师和甲方对接人开了一个40分钟的小型确认会,同一天出了澄清文档,第二天开发进度就追回来了。

站会是不是敏捷专属一点都不重要。重要的是你能不能把信息不对称在最短时间内转化为行动指令。瀑布项目的信息不对称风险比敏捷项目更大,因为各阶段衔接的节点更多。如果站会能帮助快速发现风险,你就用它,不需要纠结名字。

政企项目只用瀑布开发,我们的实战复盘

4. 燃尽图还是燃尽图,但烧的不是故事点

PingCode的迭代概览页面提供了燃尽图。我们没有用故事点,而是直接用任务完成数作为燃尽对象。每个迭代开始时,迭代里有多少个明确的任务,燃尽图的理想线就是这些任务按时间均匀完成。

实际做下来,我们发现这个燃尽图的前半段总是偏慢,因为瀑布项目的开发前期需要搭建环境、熟悉代码、解决技术难题,速度无法线性推进。真正加速是在迭代开始的第三、四周,这时候大部分技术问题已经解决,开发人员进入了“写代码的高效期”。

燃尽图给我们最大的价值不是展示进度,而是项目管理层和甲方监理看到同一个事实:进度偏慢不代表项目失控,它可能是合理的爬坡过程。有了图形化的进度展示,我们和甲方的沟通从“你解释一下为什么进度慢了”变成了“这个爬坡符合预期吗”,前者是质问,后者是讨论。沟通姿态完全变了。

五、实战数据复盘:到底哪些指标是我们真正关心的

交付一个项目不是把代码写完就结束了。政企项目真正的交付物是三样东西:系统本身、文档资产、甲方团队的能力转移。下面我把这个项目最核心的几个数据指标摊开。

1. 交付效率:人均产出与延期真实原因

项目总实际投入人天为3800人天,低于合同预估的4100人天,人效比预期提升了约7.3%。但最终延期了19天。为什么人效提升了,项目却延期了?

原因是资源到位时间滞后了14天。项目原计划第1周完成人员全部入场,但受甲方办公场地审批流程影响,第3周才完成全部驻场。开局就落后了两周,后面靠提升人效追回来5天,最终的净延期是9天,而不是19天。如果没有前期的高人效运转,延期可能超过一个月。

这个数据告诉我们两件事:第一,瀑布项目的资源到位时间直接影响交付基线,资源计划不能只写在投标文件里,要在合同签订的第一天就协同甲方启动内部审批;第二,人效不是越高越好,人效提升到一定阈值之后,测试和质量验证的压力会上升,我们发现开发人员写代码速度变快后,单元测试的覆盖率在部分模块出现了下降,被测试经理在复盘会上点名。

政企项目只用瀑布开发,我们的实战复盘

2. 质量指标:P0-P4分级与生产环境的零故障

我们用P0到P4的五级分类管理缺陷:

  • P0-致命:系统崩溃、数据丢失、安全漏洞,直接阻断核心业务流程。
  • P1-严重:核心功能不符合需求规格,或大范围数据异常。
  • P2-一般:非核心功能异常,有替代方案可规避。
  • P3-轻微:界面或交互不符合设计,不影响功能使用。
  • P4-建议:体验优化类建议。

全项目共发现493个缺陷,分级如下:

缺陷级别 数量 占比 关闭率
P0-致命 3 0.6% 100%
P1-严重 20 4.1% 100%
P2-一般 178 36.1% 98.3%
P3-轻微 241 48.9% 95.4%
P4-建议 51 10.3% 78.4%

三个P0级缺陷全部在系统测试中发现并解决,没有逃逸到生产环境。第一个是数据治理模块在处理某类特殊编码的行政区划字段时发生死循环,第二个是第三方组件在高并发场景下的内存泄漏,第三个是等保要求的一次加密算法不当使用。

生产环境上线后,P4级的建议类缺陷遗留了11个未关闭,主要是UI微调和报表格式调整,不影响系统正常运行,在和甲方确认后排到了运维期的第一轮小版本修复。

3. 变更管理:14次变更申请背后的统计分析

14次变更申请,我做了分类统计:

  • 需求遗漏类(6次):甲方在需求调研时遗漏的功能点,比如某个处室的特殊审批流程没有交代。
  • 政策调整类(3次):项目周期内国家层面或省里发了新的数据管理规范,系统需要适配。
  • 技术约束类(3次):国产化适配过程中发现的底层兼容性问题。
  • 体验优化类(2次):甲方领导试用后提出的交互调整。

需求遗漏类占了你变更的大头。但注意,这里的“遗漏”不全是乙方的锅。有3次遗漏是甲方内部不同处室之间信息不对称造成的,A处室确认的需求里没有覆盖B处室在意的东西,等到B处室在阶段评审会上看到原型才发现问题。政企项目的需求真相不是“甲方说不清楚”,而是“甲方内部没有人能替所有处室一起说清楚”。

这个洞察支撑了我们在复盘会上最重要的一个改进建议:以后做政企项目的需求调研,必须把“跨处室的需求对齐会”作为一个独立环节,在需求规格说明书定稿之前,组织所有处室代表一起过一遍全量功能清单。花一天时间对齐,比后期做12个人天返工划算得多。

政企项目只用瀑布开发,我们的实战复盘

六、不同情况下的取舍:什么时候该坚持瀑布,什么时候应该妥协

复盘不是为了把瀑布神化。我清楚地知道,这个项目的成功依赖于很多特定条件。换一个场景,可能瀑布就不是最优解。下面是我基于11个政企项目的经验,帮你做的分场景取舍判断。

1. 坚持全量瀑布的场景

以下条件同时满足三条或以上,请不要犹豫,直接选瀑布:

  • 合同明确约定了里程碑付款节点,且付款与特定的交付文档审计挂钩。
  • 甲方有正式的信息化监理或第三方审计介入。
  • 系统需要通过等保、商密或类似合规认证。
  • 需求在招标文件或合同附件中有明确的功能清单,颗粒度到子模块级别。
  • 甲方关键用户无法保证每周固定的参与时间。
  • 团队中有大量成员缺乏政企项目经验,需要明确的结构化指引。

在这种场景下选择混合模式或敏捷,短期看是灵活,长期看会把自己拖进无止境的文档补录和审计解释里。

2. 可以采用“瀑布外壳+敏捷内核”混合模式的场景

有些项目虽然整体是政企性质,但存在一个或多个边界清晰、相对独立的子系统,甲方对这个子系统的需求不明确,愿意接受探索性开发。这种情况下,可以做到:

  • 外壳对齐瀑布:整体合同结构、付款节点、验收标准、监理要求全部按瀑布来。
  • 内核用敏捷:在某个子系统内部,团队自行采用Scrum或Kanban,两周一个迭代,快速验证功能原型。
  • 汇报层不变:对外部审计和甲方的汇报仍然以阶段交付物和里程碑为准,内部团队知道怎么用敏捷的方式做出来。

我们团队后面接了一个地市级的政务服务平台项目,其中的“智能问答机器人”模块就是这种模式。整体合同是瀑布的,但这个模块的需求甲方自己也不知道怎么做,我们就和甲方私下达成共识,用两周一个Sprint的方式迭代了三轮,最终产出的Robot在验收时拿到了甲方的最高评价。但整个过程的对外输出仍然是瀑布格式的文档。

这种混合模式的底线是:团队必须有至少一名深度理解瀑布交付要求的项目经理来把控对外输出。如果PM的思维也是纯敏捷的,混合模式很容易变成两边都不靠。

3. 坚决不能用瀑布的场景

如果遇到下面这种情况,即使再想用瀑布也不要用:

  • 甲方自己的业务模式还没有确定,连业务处长都不知道半年后自己的处室会新增哪些职能。
  • 项目处于预研或创新试点阶段,甲方不要求交付完整系统,只是要看可行性验证。
  • 甲方明确提出希望采用“互联网模式”来运作项目,且内部已经配备了可全职参与的Product Owner。

遇到过最失败的一次强行瀑布,就是一个还处于政策探索期的数据资产项目,甲方领导要求半年内出成果,但业务规则每两周都在变。团队按瀑布做了一份需求规格说明书,签了确认,两个月后这份文档三分之二的内容已经不适用了。那个项目最终砍掉了大半范围,草草交付了一个阉割版。如果当时选择用敏捷原型的方式,至少能在前期验证方向,不至于投入四个月才发现路走错了。

政企项目只用瀑布开发,我们的实战复盘

七、瀑布与政企项目的未来:不是非此即彼,而是分层对齐

写到这里,我想说一个可能让部分读者不适的观点:政企项目和瀑布开发的“绑定”不是暂时的,也不是技术落后,而是一种根植于甲乙方权责结构的必然。

政企项目的核心矛盾从来不是“变化太快还是太慢”,而是“谁有权批准变化,谁有责承担后果”。瀑布模型通过严格的阶段门禁和签字确认机制,把风险和决策权绑定在了一起,甲方在需求阶段签了字,就意味着这个阶段的需求是甲方的决策,乙方按这个签字做,做对了是甲方的功劳,做错了也是甲方的决策成本。而敏捷模式下,持续的需求变化让责任归属变得模糊,这在商业项目里可以接受(甚至欢迎),但在审计驱动的政企项目里,模糊的责任归属就是最大的风险。

但这并不意味着瀑布不需要进化。我这一年的经验告诉我,瀑布的未来在于“分层对齐”:合同层继续用瀑布,管理粒度的迭代层用瀑布+滚动规划,而执行层可以局部借鉴敏捷的工程实践。

比如,持续集成和自动化测试在瀑布项目里完全是可落地的,而且效果极好。我们这个项目搭建了完整的CI/CD流水线,虽然部署到生产环境需要经过严格的审批窗口,但测试环境的自动化部署极大缩短了集成测试的等待时间。再比如,代码评审和结对编程这些敏捷推崇的工程实践,在瀑布项目里同样可以提升代码质量,不改变任何流程。

把“瀑布”理解为一套固定的流程是狭隘的。把“瀑布”理解为一种基于阶段门禁和审计追溯的治理框架,然后在这个框架下自由选择最好的工程实践,这才是政企项目管理应该走的路径。

政企项目只用瀑布开发,我们的实战复盘

八、给你的行动建议:如果今天就要启动一个政企瀑布项目

如果你读完这篇复盘,即将进入一个政企项目,下面是我给你的三件事优先级排序,不是理论,全是踩坑之后的执行要点。

1. 前两周最重要的事:锁定需求基线定义并写进合同附件

不要等到需求调研结束才开始定义基线。在项目启动会上,就要和甲方一起把需求规格说明书的目录结构、需求项的颗粒度标准、需求确认的签字流程、以及“什么条件下需求基线会被冻结”这四个问题谈清楚,并形成书面纪要。这四个问题不是需求问题,是合同治理问题。你越早让甲方签字确认这四个约束,后期越不会出现无休止的范围蔓延。

2. 选择一个能承载全流程追溯的平台,不要拼凑工具链

这个项目我们之所以能在监理和审计面前稳住,关键原因是PingCode把需求→设计→开发→测试→缺陷→上线的全链条数据打通了。当监理要求随机抽查某一条需求的完整实现轨迹时,我们可以在几秒钟内拉出一条从需求描述到设计文档到代码提交到测试用例到Bug状态的完整路径。这条路径不是做出来的,是工具本身内建的。

如果你现在还在用Excel管理需求、用Word写设计、用SVN管代码、用另一个系统管Bug,四套工具之间靠人手工对齐,我建议你在项目开始一个月内至少把需求和测试的管理迁移到一个结构化平台上。前期切换成本不低,但和后期因为追溯缺失而被扣质保金相比,完全值得。

3. 做好团队的方法论对齐,让所有人理解“为什么是瀑布”

62个人的团队,开头只有4个人有政企项目经验。我们没有在上岗第一天就开始写代码,而是花了整整三天做交付模式培训和对齐。第一天讲政企项目的特点和合同约束,第二天讲瀑布模型的阶段治理逻辑,第三天全部用来做历史项目复盘,把团队里几个有政企经验的老手的失败案例拿出来分析。当你听完三个因为文档不齐全导致尾款拿不回来的真实故事之后,没有人再会抱怨写文档是浪费时间。

团队对齐的关键不是科普瀑布的优缺点,而是建立一个理解:在这个特定的业务环境里,瀑布不是一种开发哲学的选择,而是一种履约能力的保障。


这篇复盘写了超过五千字,但我仍然觉得有很多细节没有展开。不过核心观点已经很明确了:政企项目选择瀑布,本质上不是技术决策,是契约治理决策。在这个前提下,项目经理的任务不是在瀑布和敏捷之间纠结,而是把瀑布这套框架用最好的工具和实践托起来,让它不仅符合审计要求,还能产出一个体面的、高质量的产品。

如果你正在一个政企项目里,或者即将负责一个,我的建议很简单:先去理解甲方的付款结构、监理要求和合规门槛,再决定你的交付模式。方法论是在地为王的,不是信仰为王。

如果你有类似项目的困惑,可以在评论区留下你的问题。如果你的团队正在做方法论选型,也可以参考我们在PingCode上沉淀的这套瀑布实践模板,不是因为它官方,是因为它在这个项目里确实跑通了。

常见问题解答(FAQ)

1. 政企项目为什么只能瀑布?能否用敏捷替代?

我在一个政务大数据平台项目里,团队想用Scrum,但甲方要求每个阶段必须提交完整的文档才进行下一阶段,否则不验收。我们被迫用瀑布,总觉得效率低。这到底是甲方的问题,还是我们选型的问题?有没有办法说服甲方接受敏捷?

基于我们一个实际项目(50人、2000万、周期14个月)的经验,政企项目选择瀑布不是甲方固执,而是系统复杂性、合规审计和决策链条共同决定的。甲方需要确定性:立项需要可研报告、预算需要精确估算、验收需要可溯源的文档。我们曾尝试说服用敏捷,但甲方明确说‘如果验收时功能与文档不一致,我不签字’。

关键不是替换瀑布,而是在瀑布框架内注入敏捷的沟通和迭代思维。例如,我们将需求阶段拆成3个迭代,每个迭代产出可验证的原型,但最终文档仍按瀑布标准输出。这样既满足甲方对确定性的要求,又减少后期返工。核心建议:不要对抗瀑布,而是优化瀑布内的协作节点。

2. 瀑布开发中需求频繁变更怎么办?如何控制范围?

我们项目进行到开发中期,甲方分管领导一句话,某个核心功能就要改,导致前期设计的数据库、接口全要返工。变更请求单走了两周,最后还是改了,团队士气很低。有没有办法在瀑布框架下有效管理变更?

我们当时面对同样的问题,后来建立了一套「变更触发机制」:成立由甲乙双方共同参与的变更控制委员会(CCB),任何变更必须填写模板化变更申请,包括业务价值、技术影响、工期影响、风险等级。我们有一次典型变更,甲方要求新增一个数据上报接口,评估后发现需要修改6个模块、额外2周、增加1个人月成本。

委员会讨论后,甲方权衡性价比后主动撤回。更重要的是,我们在需求冻结阶段完成了80%的核心需求,只允许变更影响≤5%范围。数据上,我们的需求变更次数从12次降到5次,总延期从预计3个月压缩到2个月。所以核心是:用流程和代价量化,让甲方自己为变更成本买单。

3. 瀑布文档太重,如何避免沦为文档奴隶?

我们项目花了45天写了近200页的需求规格说明书,但开发人员几乎不看,说是‘看文档不如看代码’。评审会上大家看着文档打瞌睡,最终文档与实现脱节,验收时又得补一堆文档。有没有更好的做法?

我们后来做了三件事解决这个问题:第一,文档模板化,抛弃长篇Word,改用Confluence页面+Mermaid流程图,核心信息控制在80页内。第二,引入活文档实践:对技术接口和核心逻辑,直接编写可执行的API文档(如Swagger)和BDD用例,让代码自己“说话”。

第三,评审会改为“需求走查+原型演示”结合,不再逐字念文档。数据对比:第一次项目文档耗费45人天,返工率15%;第二次优化后文档耗时25人天,返工率降到10%。关键洞察:文档的价值在于沟通和决策记录,而不是交付件本身。我们最终交付给甲方的文档是评审通过的、有签字的‘决议记录’,而不是厚重的word。

4. 复盘后,你还会在下一个政企项目用瀑布吗?什么情况需要混合模式?

听很多同行说政企项目应该用瀑布+敏捷混合模式,但甲方不接受。我们复盘自己项目后,也发现纯瀑布确实有些模块效率低。你们最终的结论是什么?有没有具体的判断标准?

我们的结论是:对于需求相对明确、变更可控、交付件严格的政企项目,瀑布仍然是首选。我们的项目延期16.7%(14个月 vs 12个月),但核心功能质量达标、验收一次性通过、后期维护成本低。但我不会下一个项目再照搬纯瀑布。

我们复盘发现了两个边界条件:①对于业务逻辑明确、有成熟案例的模块(如用户权限、报表展示),瀑布完全够用;②对于创新性、探索性强的模块(如AI预测、大数据算法),建议采用瀑布+迭代的混合模式:外部按瀑布里程碑验收,内部按迭代两周一个版本快速验证。

例如,我们后来在另一个项目中,将算法模块用敏捷开发,文档只写关键算法说明,结果该模块提前交付,还帮整个项目抢回了一周工期。判断标准:如果需求复杂度高、且甲方愿意接受‘逐步明晰’,就上混合;否则,稳守瀑布。

核心关键词

读者评论

赵明轩

作为甲方信息化处的项目对接人,看完这篇复盘很有共鸣。我们单位做大数据平台时最怕乙方中途改模式,瀑布加严格基线冻结确实省心。但那个字段格式的变更案例太真实了,我们自己也吃过这种亏,调研时业务人员随口说‘有时手动调一下’,结果上线前翻出老账。建议所有需求确认模板直接加一栏‘是否有争议或备注’,必须为空才算确认,不让任何模糊项溜进去。19天延期在财政年结面前确实不是事,验收时能追溯到的每一份文档才是真金。

程远

我是文章里提到的那种‘互联网转政企’的开发,进项目第一天就想跑。习惯了2周迭代、边用边改,突然要写47份文档、每行commit都要关联需求编号,觉得反人性。但真正扛到集成测试阶段才服气:当我把一个Bug追溯到需求规格说明书里的原文时,甲方和监理二话不说就签字了。不用再像以前那样扯皮‘这个功能当时是不是这么定的’。文章的结论很对,不是瀑布重,是工具链没跟上。PingCode那一套确实治好了我对文档的恐惧。

韩知行

个人、14个月、延期19天,这个数据放在政企项目里绝对是可圈可点。但我更关心的是:那62人里60%是互联网背景,前期思想对齐花的人力成本文章只字未提。从Scrum转瀑布,文化冲突消耗的沟通成本可能比写文档还高。另外19天延期虽小,但文中也承认是需求基线没定死导致的,如果换成另一个更复杂的多委办局项目呢?建议补充一下团队磨合阶段的量化数据,比如前三个月内离职率、无效返工天数等,这才算完整的复盘。

陆景

作为文章里提到的‘监理方’同行,必须说句公道话:很多乙方说瀑布文档多只是偷懒的借口。我们监理要的不是文档页数,是可追溯性和一致性。文中REQ-0427到DES-0815到TASK-TEST-1192的例子,就是标准溯源链,能做到这个水平的团队我一年见不到一个。但也有个提醒:工具链再好,如果需求本身逻辑有硬伤,平台也救不了。那个字段变体的问题,如果需求分析师在访谈时就把备注写进正式记录,监理在评审时就能注意到,根本不用等集成测试阶段返工。所以人工专业判断永远比工具重要。

沈一诺

我做过5年政企项目,一直用瀑布,但看到文章里‘全员投票瀑布’那段还是觉得有点理想化。实际上很多甲方信息处长嘴上说看里程碑,但真正开始时天天打电话追问功能进度,恨不得你每周都演示。文章中说甲方参与度‘中’,但现实往往是前期调研后甲方就退出,验收前再冒出十几个需求变更。边界条件是定死的,但人的因素永远是变量。不过文章关于变更流程筛选不必要修改的观点非常到位,我们给甲方建立了一个‘每笔变更估算成本和影响工期’,三个月后甲方自己就减少了70%的随意变更申请。工具加制度,才是真本事。

文章包含AI辅助创作:政企项目只用瀑布开发,我们的实战复盘,发布者:fiy,转载请注明出处:https://worktile.com/kb/p/3978500

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
fiy的头像fiy
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部