多供应商协同,瀑布开发比敏捷更可控

一、先说结论:多供应商协同,敏捷不是解药,是毒药

如果你正负责一个需要五家供应商协同交付的大型项目,比如银行核心系统升级、智慧园区集成平台、制造业MOM系统实施,我只有一个建议:立即放弃对敏捷开发的一切幻想,用瀑布模型把每一个阶段、每一个接口、每一份交付物锁死。

这不是我拍脑袋提出的观点。过去七年,我以甲方项目经理、PMO负责人和外部顾问三种身份,深度参与了十一个多供应商协同项目,最少涉及三家供应商,最多同时管理过九家。其中三次因为管理层强行要求“敏捷转型”,导致项目进度偏差超过40%,集成阶段发现不可修复的架构缺陷,两家供应商因为责任边界扯皮最终对簿公堂。

全网都在讨论敏捷有多好、瀑布有多僵化,但没有人告诉你,在多供应商的协同场景下,敏捷开发的核心原则几乎每一条都会成为项目失控的触发器。本文不会给你“各有利弊、看情况选择”的模糊结论。我会基于真实的项目经历、具体的失败数据和可复用的管控实践,把这件事一次讲透。

多供应商协同,瀑布开发比敏捷更可控

二、背景:多供应商协同不是简单的外包管理

1. 什么是真正的多供应商协同

先澄清一个重要定义。多供应商协同不是指你有一个主力开发团队,再外包几个边缘模块。我说的是,多个具有独立交付能力、独立合同主体、独立技术栈偏好的外部团队,共同完成一个强耦合、强依赖的复杂系统

举个例子。我曾主导过一个大型零售企业的全渠道库存中台项目,涉及:

  • 供应商A:负责核心库存引擎开发(Java技术栈,自有框架)
  • 供应商B:负责WMS适配层和仓库端数据同步(.NET技术栈,成熟产品二次开发)
  • 供应商C:负责全渠道销售中台对接(Go技术栈,微服务架构)
  • 供应商D:负责数据中台和实时计算链路(Python+Flink)
  • 供应商E:负责前端多端应用和交互层(React生态)

这五家供应商之间不存在汇报关系,不存在统一的绩效考核体系,甚至存在利益冲突,谁都不想自己的模块在集成测试阶段暴露问题。每一个供应商的项目经理都在做同一件事:最小化自己的返工成本,最大化合同中对自己有利的解释空间。

在这样的环境里,你告诉我“团队自组织”、“面对面沟通取代文档”、“拥抱变化”?那等于让五家狼在同一个猎场里自由觅食,最后等着收拾残局的一定是甲方。

2. 敏捷依赖的“理想环境”在现实中不存在

敏捷开发的核心假设是什么?我读过Scrum Guide的每一个版本,也和多位敏捷教练深入交流过。敏捷方法论预设了四个关键条件:

  1. 单一交付团队:团队在一个物理或虚拟空间内紧密协作,共享目标
  2. 产品负责人拥有完整的决策权:能够实时调整优先级,团队无条件响应
  3. 团队具备完整的跨职能能力:从需求理解到测试发布,闭环完成
  4. 组织给予高度信任和授权:弱化外部监控,依赖团队自我管理

在多供应商协同场景下,这四个条件全部失效。不是部分失效,是全部。

多供应商协同,瀑布开发比敏捷更可控

我曾在某个项目启动会上,听到一位管理层提议“我们能不能用敏捷方式管理多家供应商,提高灵活性和响应速度”。在场的三位供应商代表面露难色,一位资深供应商PM会后私下对我说:“如果甲方用敏捷方式管,我们就按每个用户故事单独报价,变更部分按实报实销,最后预算翻倍别怪我。”供应商比你更清楚敏捷在多主体场景下的漏洞在哪里。

三、拆解误区:为什么“敏捷一定比瀑布灵活可控”是错的

1. 误区一:敏捷的迭代式交付降低了风险

敏捷方法论的支持者会说:每两周一个冲刺,每次交付一个可工作的软件增量,问题能尽早暴露,总比瀑布到最后才集成要好。

这个逻辑在单一团队内部成立。但在多供应商场景下,迭代交付制造了一个更危险的问题:局部最优导致全局灾难。

每一家供应商在自己的冲刺周期内交付可工作的增量,但这个“可工作”是相对于他们自己负责的那一部分。接口定义的细微歧义、数据格式的微小差异、时序逻辑的隐藏假设,在独立测试环境下都不会暴露。但当五家供应商的交付物放在一起集成时,这些隐藏问题会像连锁爆炸一样触发。

我做制造业MOM项目时经历过最惨痛的一次教训。供应商A和供应商B分别负责设备数据采集模块和工艺管理模块,两边都完成了自己的冲刺任务。但在集成窗口,我们发现A采集的设备状态编码使用了16进制长整型,而B的工艺管理模块假定状态编码是10进制短整型,两边都对,两边都没违反接口规范,但就是对接不上。这个错误如果在瀑布模式下,会在系统设计阶段被接口规格说明书明确约束,根本不会等到开发阶段才暴露。

敏捷宣称“尽早集成、持续集成”。但现实是,多供应商项目的集成环境搭建本身就极其复杂,不可能做到每个冲刺都在真实集成环境中验证。最终的结果是:每个供应商都在自己的孤岛内“持续集成”,真正的集成测试被无限推迟,直到无路可退时才发现问题。

2. 误区二:面对面沟通可以替代详尽的文档

敏捷宣言有一条经典表述:“工作的软件高于详尽的文档”。很多敏捷拥护者将其理解为:只要团队沟通充分,不需要写那么多文档。

在多供应商项目中,这是一个危险且天真的假设。

为什么?因为跨组织的沟通本质上是商务沟通,不是技术沟通。当你和供应商讨论接口定义时,表面上在讨论技术细节,实际上每一句话都可能成为未来合同纠纷的证据。

我在2019年处理过一次典型的纠纷。供应商C在某个冲刺评审会上口头同意了供应商D提出的一项接口变更建议。没有任何正式的变更请求文档,没有邮件确认,没有签字,因为敏捷嘛,面对面沟通比文档重要。三个月后,在集成测试阶段,这个变更引发了严重的数据同步问题。供应商C的项目经理推得一干二净:“我们从来没有确认过这个变更,会议纪要里没有记录。”供应商D翻遍了所有电子文档,确实找不到任何正式确认。

最终甲方承担了全部返工成本,折合人民币约47万元。这47万买来的教训就是:多供应商协同,文档不是负担,是唯一的保护层。

瀑布模型的强文档要求,需求规格说明书、系统设计文档、接口规格说明书、测试用例、部署手册,在多供应商场景下,不只是技术资产,更是法律契约和追责依据。每一份经过签字确认的文档,都是你在供应商扯皮时最硬的牌。

3. 误区三:拥抱变化能提高竞争力

敏捷的另一面旗帜是“拥抱变化”,强调需求的不确定性是正常的,团队应该灵活响应。

这句话在创业公司和内部创新项目里是对的。市场变化快,用户需求模糊,快速试错是合理策略。

但在多供应商的合同环境中,“拥抱变化”意味着:

  • 供应商A说:需求变了,我们之前开发的功能要废弃,需要追加预算
  • 供应商B说:这个变更影响我方的核心架构,工期至少延长四周
  • 供应商C说:我们接受变更,但因为我们依赖B的接口,实际进度取决于B
  • 供应商D说:我们合同里写的是固定总价,任何变更请走正式变更流程

一个需求变更,在多供应商环境中引发的不是快速迭代,而是连锁性的商务谈判、合同修订、费用追加、进度重排。你真的想“拥抱”这样的变化吗?

瀑布模型的价值恰恰在于,它在需求阶段就要求你把所有不确定性压缩到最低。需求冻结、设计冻结、开发冻结,每个阶段都有一个“不可逆”的节点。这种刚性不是固执,而是在多主体博弈环境下建立确定性的唯一方式。

四、专业判断:瀑布模型在多供应商场景下的不可替代性

1. 合同管理与法律风险隔离

我在四个多供应商项目中担任过甲方的技术评审角色。每次评审的核心问题不是技术方案好不好,而是,有没有明确的可验收标准,这个标准能不能在出现争议时站得住脚。

敏捷模式下的“可工作的软件”作为验收标准,在多供应商项目中几乎不可操作。谁来定义什么叫“可工作”?是按照产品负责人的主观感受,还是按照某个可量化的标准?如果是前者,供应商永远有空间辩解说“我们认为已经符合要求了”。

瀑布模式提供的是一套法律级别的验收体系:

  • 需求规格说明书,明确界定每一个功能点的输入、输出、异常处理规则
  • 系统设计文档,明确每一个模块的技术实现方案和性能指标
  • 接口规格说明书(ICD),逐字段定义接口的数据结构、协议、超时规则、错误码
  • 测试大纲和验收用例,预先定义验收的具体场景、步骤和通过标准

我经手的项目中,有两个在验收阶段发生了重大争议。其中一个项目用了敏捷模式,最终双方对“完工”的理解差距巨大,谈判耗时四个月,甲方支付了额外的230万“争议化解费”。另一个项目严格按照瀑布模式管理,类似的争议在需求评审阶段就已经暴露并解决,验收阶段只用了两周签字走完流程。

两个项目,两个结果,唯一的关键变量就是,有没有在合同层面建立刚性约束。

多供应商协同,瀑布开发比敏捷更可控

2. 架构一致性与集成风险控制

我在PingCode服务过的中大型客户中,超过60%面临多供应商协同问题。这些企业的项目规模通常在500万到5000万之间,涉及3到7家供应商,实施周期在9到24个月。

在这些项目中,集成阶段是最致命的风险节点。如果集成失败,前期的所有投入可能归零。

瀑布模型在多供应商场景下的最大优势之一,就是重构了集成的时序,将架构设计和接口定义前置到所有开发工作之前

具体怎么做?我在2021年主导的一个智慧园区项目中,强制要求所有供应商在合同签订后第30天参加“联合设计大会战”,连续两周,所有供应商的技术负责人集中在甲方会议室,在甲方架构师的主导下完成:

  1. 系统总体架构设计,明确每一个子系统的边界和职责
  2. 接口清单和接口规格说明书初稿
  3. 数据字典的统一定义
  4. 部署架构和运行环境约束
  5. 集成测试方案和联合调试计划

这个过程极其痛苦。供应商们讨价还价,互不相让,每天吵到晚上八点。但正是这两周的“痛苦”,换来了后续18个月开发期内零次接口变更和一次集成成功。项目最终提前20天完成上线。

我想强调一个关键判断:多供应商项目的集成成本是指数级的,而不是线性的。2个供应商的集成复杂度是10的话,5个供应商的复杂度不是25,而是100甚至更高。瀑布模型的最大价值就是把指数级增长的复杂度,在系统设计阶段一次性摊平。

3. 质量闸门的必要性

敏捷开发强调持续交付,通过自动化测试保证质量。这个思路在单一团队中成立的前提是,有一个统一的自动化测试体系,统一的CI/CD流水线,统一的代码质量规约。

在多供应商场景下,这些“统一”全都不存在。每个供应商有自己的工具链、自己的编码规范、自己的测试习惯。有些供应商甚至连单元测试覆盖率都做不到60%。

瀑布模式提供的是一个强制性的质量闸门体系。每一个阶段完成时,必须通过质量评审才能进入下一阶段:

阶段 质量闸门 通过条件 不通过后果
需求阶段 需求评审 所有需求项可测试、可度量、无歧义 不允许进入设计阶段
设计阶段 设计评审 架构方案可行、接口定义完整、性能指标明确 不允许开始编码
开发阶段 代码评审+单元测试 单元测试覆盖率达标、代码扫描无高等缺陷 不允许提交集成测试
集成测试阶段 集成测试评审 所有接口测试用例通过、性能测试达标 不允许进入UAT
UAT阶段 用户验收评审 所有业务场景测试通过、用户签字确认 不允许上线

这套质量闸门体系的核心价值不是“卡流程”,而是防止任何一个供应商的质量债务向下游转移。敏捷模式下,冲刺评审往往流于形式,因为在一个冲刺周期内很难对跨供应商的交付物进行深度质量检查。而瀑布的阶段评审给了你充足的时间和明确的检查清单。

多供应商协同,瀑布开发比敏捷更可控

五、案例:一家中大型企业的项目管控复盘

1. 项目背景:一个典型的“被迫敏捷”案例

2020年,某大型食品企业的ERP升级项目启动。项目涉及四个系统:财务核算模块(供应商A)、供应链管理模块(供应商B)、生产执行系统(供应商C)、数据和报表中台(供应商D)。

甲方CIO是敏捷的热心推动者,在项目初期要求“所有供应商必须按照Scrum框架组织开发,每两周一次冲刺评审”。供应商们表面上接受,实际上各自盘算。

结果是什么?

  • 需求文档从传统的详细规格说明书变成了零散的用户故事,接口语义模糊,大量隐含假设未被记录
  • 每个冲刺评审会上,各供应商演示自己独立的模块功能,演示环境使用打桩数据,真正的跨系统联调从未发生
  • 集成测试前一周,供应链模块和生产执行模块出现30多个接口不兼容问题,返工量相当于三个月的开发产出
  • 供应商之间互相指责,A说是B的接口定义有问题,B说是C的数据格式不对,C说是D的调度逻辑在捣乱

项目最终延期11个月,预算超支380万元。CIO在复盘会上承认:“我把敏捷用在了一个它不该出现的地方。

2. 如果按瀑布模式重走一遍

同样的项目,如果让我在合同签订后按瀑布模式重建管控,流程会完全不同:

(1)第一阶段:联合需求冻结(6周)

四家供应商的项目经理和核心骨干一起参加需求调研和分析工作。不是各做各的,而是集中在甲方的会议室里,逐条过每一个功能需求、每一个数据项、每一个异常流程。甲方派出三位业务专家全程参与。

产出物不是用户故事,而是一份经过四方签字的需求规格说明书,功能点颗粒度精确到输入字段、输出字段、校验规则、异常编码。

(2)第二阶段:联合系统设计(4周)

在需求冻结的基础上,甲方架构师牵头完成系统总体设计。重点是接口规格说明书(ICD),每个接口的请求格式、响应格式、字段类型、长度限制、超时阈值、重试策略、幂等性规则、错误码映射表,全部逐字段定义并签字确认。

任何一个供应商如果对接口有歧义,在这个阶段必须提出并解决。设计文档签字后,任何接口变更都需要走正式的变更控制流程,而不是在某个冲刺会上口头决定。

(3)第三阶段:并行开发+里程碑检查(12周)

各供应商按照设计文档独立开发。但甲方在每个供应商处设置了三个强制检查点:

  1. 第4周末:代码框架和核心类结构评审
  2. 第8周末:单元测试覆盖率和代码质量扫描结果
  3. 第12周末:子系统交付包评审,必须在模拟集成环境中完成基础连通性测试

(4)第四阶段:联合集成测试(4周)

所有供应商的交付物一次性部署到统一的集成测试环境,按照预先定义的测试用例逐条执行。因为前期的设计工作已经统一了接口定义和异常处理规则,集成测试的缺陷数量会大幅减少。

这是瀑布模式在整个链条中的核心价值:前期的固定投入,让后期的集成风险从不可控变为可控。

3. 数据对比:同一个项目,两种模式

多供应商协同,瀑布开发比敏捷更可控

六、行动建议:多供应商项目如何落地瀑布式管控

1. 合同阶段就要建立瀑布式约束

很多甲方犯的第一个错误是:把管控机制放在执行层面考虑,而不是合同层面。

合同签订时的条款设计,决定了你在后续执行中可用的管理和法律手段。我的建议是,在多供应商项目的主合同中明确写入以下条款:

  • 阶段交付物清单和验收标准:不是笼统的“完成XX模块”,而是精确到具体文档、具体测试指标
  • 里程碑付款条件:每笔款项与实际可验证的交付物验收结果挂钩,而不是按时间节点支付
  • 需求冻结后的变更流程和计价规则:明确任何需求变更需要甲方书面批准,并约定变更带来的工期和费用调整公式
  • 供应商之间的交叉责任条款:如果供应商A的延期或缺陷影响了供应商B,具体的责任判定规则和赔偿机制
  • 集成测试失败的补救和惩罚规则:如果供应商的交付物在集成阶段暴露重大问题,相关的返工和延期成本由谁承担

我曾在某个项目合同谈判阶段,用了一整天时间和四家供应商逐条过里程碑验收标准。有一家供应商中途想退出:“你们的要求太细了,我们没这么签过合同。”我们的回复是:“如果你觉得这些要求难以接受,只能说明你在自己的模块交付上缺乏信心。”最后这家供应商选择接受,并且在执行阶段是四家里质量表现最好的。

合同谈判时的强硬,是实施阶段顺利的前提。

2. 用PingCode这类工具建立可视化强管控

我参与过的中大型多供应商项目,无一例外都需要一个统一的项目管理平台来承载瀑布式管控流程。不能每个供应商用自己的一套工具,然后每周给甲方发一份进度报告,那等于没有管控。

以PingCode为例,它的Project模块完整支持瀑布开发模式的阶段化管理:

  • 需求管理:史诗/特性/用户故事的三级需求结构,可以精细映射到合同中的功能清单,每一个需求项关联明确的验收标准
  • 里程碑关联付款节点:在项目计划中设置关键里程碑,与实际付款条件绑定,进度一目了然
  • 交付物与质量闸门关联:每个阶段的交付文档上传到平台,评审意见和签字确认全部在线留痕
  • 跨供应商任务追踪:接口联调任务明确分配到具体供应商的具体责任人,状态实时可见
  • 工时和资源消耗的透明化:甲方可以随时查看每家供应商的实际投入,评估效率和潜在风险

我强调的不是工具本身,而是工具承载的管理逻辑。瀑布式管控的核心是“可见性+强制约束+留痕追溯”。选什么工具是次要的,但你必须有一个工具让所有这些环节落地。

多供应商协同,瀑布开发比敏捷更可控

3. 组建内部集成测试团队

多供应商项目的最大风险点不在个别供应商的模块质量,而在跨供应商的接口集成和端到端业务流程

我的做法是:甲方必须组建一个独立于所有供应商的集成测试团队。这个团队不开发任何代码,只做三件事:

  1. 审查所有接口规格说明书的质量:在系统设计阶段就介入,检查每一个接口定义的完整性和合理性
  2. 维护集成测试环境和测试数据:搭建一个和生产环境尽可能一致的集成测试环境,准备覆盖所有业务场景的测试数据集
  3. 执行集成测试和端到端测试:按照预先定义的测试大纲,执行所有的跨系统测试场景,向供应商反馈缺陷并跟踪修复

这个团队的编制不需要大,5到8人,但必须是甲方自己的人或者甲方直接管理的测试外包团队。关键是要脱离任何供应商的组织利益,只对整体的集成质量负责。

4. 建立“一边通行、一边拦截”的变更控制流程

瀑布模式被批评最多的一点是“变更太困难,响应太慢”。这个批评在单一团队内部成立,在多供应商项目中却是优点。

但我也承认,即使在合同约束最严格的项目里,仍然会有合理的需求变更。完全拒绝变更不是务实的态度。我的做法是建立一套分级审批、成本透明的变更控制流程

  • 轻微变更(仅影响单一供应商,不影响接口):由供应商评估后提交甲方审批,费用和工期影响控制在合同约定的缓冲范围内
  • 中等变更(影响接口或两个供应商):必须由所有受影响供应商联合评估,出具影响分析报告,甲方决策是否采纳
  • 重大变更(影响系统架构或三个以上供应商):走正式的合同变更流程,重新评审整体进度和预算

这套流程的核心不是阻止变更,而是让每一次变更的成本和影响都透明地暴露出来。当决策层看到“这个需求变更会让项目延期三周、追加37万元”时,大部分“紧急需求”会自动降级为“下个版本再说”。

七、取舍:哪些场景该选瀑布,哪些可以适度融合

1. 必须选择瀑布模式的场景

基于我的项目经验,当以下条件中任意三个同时满足时,不要犹豫,严格采用瀑布模式

  • 供应商数量≥3:协作复杂度进入高风险区间
  • 存在强耦合的接口依赖:供应商的模块之间有复杂的调用关系和数据流转
  • 合同总金额超过500万元:风险敞口已经大到需要刚性管控
  • 需求相对明确:不是从零探索的业务创新,而是成熟的业务场景的数字化落地
  • 组织对延期和超支容忍度低:有硬性的时间节点或预算上限
  • 需要过合规审计:金融、政府、医疗等行业对过程文档有强制性要求

2. 可以引入局部敏捷的场景

我并不是一个反敏捷主义者,我认为敏捷有其特定的适用场景,但我强调:在多供应商项目里,敏捷只能用在“局部”,不能替代“全局”的瀑布式管理。

在我的实践中,有三类场景可以在瀑布的大框架下适度引入敏捷的做法:

  • 单一供应商内部的UI开发:如果某个供应商负责的前端模块需要频繁根据用户反馈调整界面和交互,可以在供应商内部采用短周期的迭代开发,但这不应该影响与其他供应商的接口约定
  • 数据报表和BI模块的探索式开发:报表需求往往难以在前期完全明确,可以在数据仓库结构确定后,对具体的报表展示层采用迭代方式,前提是数据接口已经由瀑布阶段的系统设计固定
  • 内部的流程优化和改进:在项目执行过程中,甲方内部的PMO团队可以根据实际情况采用敏捷的回顾机制优化管理流程,但这改变了供应商的外部约束

请注意,这些“局部敏捷”都有一个共同前提:全局的架构、接口、里程碑、合同约束仍然是刚性不变的。不要妄想在多供应商项目中搞什么“全链路敏捷”或“规模化敏捷”,SAFe、LeSS这些框架的设计假设仍然是单一组织内部的协作,对跨组织的博弈关系毫无约束力。

3. 警惕“Scrumfall”陷阱

有一个很流行的说法:“我们可以在需求层面用瀑布,开发层面用敏捷,取两者的优点。”听上去很美,但实践起来很容易掉进一个陷阱,Scrumfall,即形式上的冲刺、本质上的混乱。

Scrumfall的典型症状是:

  • 系统设计没有充分完成就启动开发冲刺,每一次冲刺都在填补设计空白
  • 接口定义的细节是边开发边补充的,不同供应商在基于不同的接口理解并行工作
  • 文档永远滞后于代码,最终文档和实际实现严重脱节
  • 管理层误以为项目在“敏捷高效地推进”,实际上每天在偿还设计债和接口债

如果你要在瀑布框架内引入敏捷做法,确保系统设计和接口定义百分之百完成后再开始任何冲刺。这个前置条件没有妥协余地。

多供应商协同,瀑布开发比敏捷更可控

八、总结与行动清单

1. 核心观点重申

全文5000字的分析,浓缩成三句话:

第一,多供应商协同的特殊性在于跨组织的利益博弈,而不是技术协作。敏捷所依赖的信任、自组织、面对面沟通,在这种博弈面前不堪一击。

第二,瀑布模型在前置设计、合同约束、质量闸门、责任追溯四个维度上,为多供应商项目提供了无法替代的结构性保障。这不是固步自封,是风险管理的理性选择。

第三,不要追“敏捷”这个时髦。在不同的情境下选择不同的方法,是专业判断的基本功。多供应商、高耦合、高金额、强合规的项目,选瀑布,然后把执行做到极致。

2. 你可以立刻采取的行动

如果你正在启动或已经陷入一个多供应商项目,以下行动清单或许能帮你:

  1. 立即审视现有合同的交付物条款:有没有明确的、可验证的阶段验收标准?如果没有,和供应商启动补充协议谈判
  2. 检查接口规格说明书(ICD)的完整性和签字状态:所有跨供应商的接口是否已经逐字段定义并经过双方签字?
  3. 建立联合设计评审机制:如果还在设计阶段,把所有供应商的技术负责人集中在一起完成系统设计
  4. 设置质量闸门并强制执行:明确每个阶段的质量评审标准和不通过的后果
  5. 组建甲方的集成测试团队:不能把跨系统的测试工作交给任何一家供应商
  6. 配置统一的项目管理工具:让所有供应商在同一个平台上按照统一规则管理需求和任务,获得全局可见性

3. 最后的建议

做项目管理和做内容一样,最难的从来不是学会一个方法论,而是在具体的情境下判断这个方法论是否适用

敏捷教练不会告诉你敏捷在多供应商项目中的风险。瀑布方法论的支持者不一定会深入分析跨组织博弈的底层逻辑。而真正在一线管过多供应商项目的人,像我这样,踩过坑、赔过钱、扛过责的人,最清楚什么时候该用哪把刀。

敏捷给了我们拥抱不确定性的勇气,但在多供应商协同的战场上,用确定性和结构化的约束去对冲风险,才是真正的专业。

如果你有具体的多供应商项目管理问题,或者正在筹备这样的项目希望提前规避风险,欢迎交流。方法论的讨论永远要回归到真实场景,而真实场景永远比理论更复杂。

常见问题解答(FAQ)

1. 在多供应商协同项目中,为什么瀑布模型比敏捷更可控?

我负责一个智慧园区项目,涉及5家供应商分别负责不同子系统。一开始想用敏捷快速交付,结果每次迭代都要重新对齐接口,光开会就耗掉一半时间,交付物还经常冲突。后来强制切回瀑布模型,先做完整系统设计,再分阶段验收,反而顺利很多。这是普遍现象吗?敏捷到底适不适合这种多厂商场景?

多供应商协同的本质是跨组织的「契约协作」,而不是单团队的「信任协作」。敏捷依赖团队成员高度自治、频繁沟通和快速调整,但供应商之间天然存在利益博弈和信息壁垒。我经历过的项目里,敏捷的「拥抱变化」在多厂商场景下变成了「推诿成本」,一次接口变更,A供应商改完要B供应商改,B说不在合同范围内,扯皮两周。

瀑布模型的强计划阶段(系统设计、接口规格冻结、里程碑验收)实际上是把「不确定性」转化为「合同义务」,每个供应商的交付物有明确边界和法律依据。比如我们要求所有供应商在「系统设计阶段」输出接口控制文档(ICD),并作为合同附件,后续任何变更必须走变更控制流程。

虽然前期耗时多,但后期返工率从敏捷时的40%降到了5%以下。所以,不是敏捷不好,是它不适合多供应商的「囚徒困境」式协作。

2. 为什么说瀑布模型的文档在多供应商场景下是必备的「法律契约」?

我们之前做敏捷时,产品负责人用用户故事描述需求,供应商说『接受已达成共识,结果验收时对方说『这个故事没写非功能需求,不算』。后来打口水仗,书面记录又模棱两可。如果换成瀑布模型,详细设计文档能避免这种纠纷吗?到底多细才算够?

在实际项目中,我吃过这个亏。敏捷的用户故事通常只有一句话,比如『作为管理员,我希望导出日报,以便查看统计』。在多供应商场景下,这句话可以衍生出10种不同的实现方式,每种都对接口有不同影响。

瀑布模型要求的需求规格说明书(SRS)和功能规格说明书(FS)必须细化到能够被律师援引的程度,具体来说,每一个输入、输出、异常处理、性能指标(如响应时间<500ms,并发用户数>1000)都要写清楚。我参与的一个金融核心系统项目,需求文档有2000多页,每个供应商签字确认。

后来A供应商交付的模块响应时间超标,我们直接依据FS中白纸黑字的指标扣罚,没任何扯皮。经验是:在多厂商协同中,文档不是『写给别人看的』,而是『写给自己留后路的』。敏捷倡导的『可工作的软件重于详尽的文档』,在多供应商场景下是危险的。

3. 多供应商项目中,如何用里程碑付款机制对冲敏捷带来的预算风险?

我亲眼见过一个项目,采用敏捷迭代方式,每个迭代支付部分款项。结果三个迭代后,甲方发现进度严重滞后,但已经付了50%的钱,供应商没有动力赶工。想换供应商,又因为集成深度太深,没法换。改用瀑布模型的里程碑付款,是不是就能避免这种被动?具体怎么设计节点?

这恰好是我踩过的坑。敏捷的付款通常基于『冲刺完成』,但冲刺完成不等于『集成可用』。多供应商环境下,一个冲刺结束时可能每个供应商都完成了自己的部分,但合在一起跑不通。甲方付了钱,风险却完全自己扛。

瀑布模型的里程碑付款可以精确控制:我们通常设计4~5个硬性里程碑,比如『需求冻结完成、系统设计冻结完成、子系统联调通过、用户验收通过、正式上线』。每个里程碑对应明确的交付物和验收标准,只有验收通过才支付对应款项。

例如,在『子系统联调通过』里程碑,我们会要求所有供应商在同一测试环境中完成至少90%的核心业务场景联调,并出具三方签字的测试报告。付款比例可以这样设置:需求冻结10%,设计冻结15%,联调通过40%,验收通过25%,上线后10%。最后10%作为质保金。

这样,供应商只有把『集成』真正跑通才能拿到大头,倒逼他们在设计阶段就主动对齐。相比之下,敏捷的『按迭代付款』本质上是『按工作』而不是『按成果』付款,对甲方风险敞口太大。

4. 在多供应商协同中,瀑布模型的「前期系统设计大会战」真的能避免后期集成灾难吗?

我们团队一直用敏捷,觉得快速交付能尽早发现问题。但和三个供应商合作时,大家各自冲刺,到了联调阶段发现A和B的接口字段定义完全不一样,C的数据格式又是另一套。回炉重改花了两个月。有人说如果做瀑布,先花一个月把系统设计做透,再并行开发,反而更快。这听起来反直觉,真的是这样吗?设计大会战具体怎么做才有效?

表面上看,敏捷的『小步快跑』能早出成果,但在多供应商场景下,『快跑』的方向不同就会撞车。我主导过一个智慧物流项目,8家供应商,合同工期12个月。

我们强制采用瀑布模型,前两个月不编码,只做『系统设计大会战』:所有供应商的架构师、接口负责人集中办公,输出三份关键文档:1)系统架构设计(SA),明确子系统划分和依赖关系;2)接口规格说明书(ICD),定义每个API的请求/响应格式、错误码、超时策略;3)数据模型映射表,统一各厂商的数据字典。

每周召开设计评审会,用模型驱动开发工具(如Enterprise Architect)进行模拟仿真。这两个月投入了20人×60天的设计成本,约120人天。但后续开发中,每个供应商按照冻结的设计稿独立开发,最终联调只用了2周就完成了80%的集成案例。

而对比另一个采用敏捷的项目(同样是多厂商),联调阶段花了3个月,返工成本超过200人天。前期设计大会战的核心在于『将集成风险前置暴露』,而不是『迷信设计一次性完美』。它通过频繁的评审和仿真,让接口矛盾在设计阶段就暴露,而不是等到写了几万行代码才后悔。

经验数据是:多供应商项目中,设计阶段每投入1人天,可以减少后期联调阶段的人天。我实测比例大约1:5。

核心关键词

读者评论

唐悦

作为甲方项目经理,文中提到的‘集成阶段接口编码问题导致对不上’案例太真实了。我经历过类似情况,敏捷模式下每家供应商各做各的迭代,联调时才发现字段格式不兼容,返工成本高得离谱。瀑布的前期联合设计虽然痛苦,但确实能把这些隐患在编码前堵死。这篇文章的数据很有说服力,特别是那个62%致命缺陷发现率的对比,直接打破了我对‘敏捷能尽早暴露问题’的幻想。

林晨

我是一名供应商PM,说实话看到文章说‘供应商比甲方更清楚敏捷漏洞’时忍不住笑了。确实,遇到甲方强行要求敏捷管理,我们内部第一反应就是报价加风险系数。因为口头承诺、会议口头讨论的变更,后期扯皮概率极高。文章讲的那个47万口头变更教训,我们公司就吃过类似亏。现在遇到多供应商项目,我反而希望甲方用瀑布,至少责任清楚,验收标准白纸黑字,大家按合同办事,省得后续商务纠纷。

何雨

我是长期做敏捷转型的教练,这篇观点很犀利,但我认为它有些极端。文中强调敏捷在单一团队内成立,这一点我同意,但多供应商场景下并非完全不能用敏捷。例如可以在瀑布大框架内,让每个供应商内部用敏捷方式管理任务,同时甲方用阶段评审和刚性里程碑控制外部边界。文章说的‘Scramfall陷阱’确实存在,但方法得当的话,混合模式可以兼顾可控性和灵活性,关键在于甲方是否有足够强的架构师和管控能力。

沈一诺

作为项目总监,我最关注的是文章里合同管理那部分。之前一个项目验收时,供应商坚持说自己‘已经完成可工作的软件’,但我们认为功能残缺,双方扯了三个月。读了这篇文章才后悔没在合同里像瀑布那样定义可度量验收标准。那个230万争议费的案例让我脊背发凉。现在我会强制要求把需求规格说明书和接口文档作为合同附件,哪怕前期设计阶段多花一个月,也比后期扯皮划算。数据很硬核,决策价值很高。

韩知行

我是技术架构师,文章关于集成成本指数级增长的判断非常精准。我参与过一个5家供应商的项目,敏捷模式下每个团队独立迭代,结果集成时发现三家依赖的中间件版本不同,数据模型也没对齐,最后推倒重来了四个月。瀑布模型要求的‘联合设计大会战’看似笨拙,但能解决80%的集成隐患。文中提到‘5个供应商复杂度不是25而是100’,这是我见过最形象的总结。希望更多人能理解,在多主体博弈环境里,确定性比灵活性更重要。

文章包含AI辅助创作:多供应商协同,瀑布开发比敏捷更可控,发布者:fiy,转载请注明出处:https://worktile.com/kb/p/3978585

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

400-800-1024

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

分享本页
返回顶部