结论先给:能把延期模块与已完成模块分开验收的,就只验收已完成部分,把第三方依赖写成带触发条件的待验项;如果整站上线、数据迁移或支付回调必须等第三方就绪才能跑通,那么拆分验收只会制造假通过,此时应改为阶段确认而不是验收。判断的关键不是合同里写了几个阶段,而是每个阶段是否存在不依赖第三方的可观察结果。
建站项目里的第三方通常指地图接口、短信通道、支付渠道、CDN、备案相关服务或客户自有的旧系统。延期发生时,不要按页面数量或功能菜单拆分,而要先做一次依赖穿透:把每个交付物追问到“谁来提供输入、谁来确认输出”。
假设一个项目里,产品列表和内容页已完成,短信验证码因通道延期未通。此时可以验收前者,后者写成待验项,并注明触发条件为“通道可用后48小时内完成联调”。这个动作的结果是:尾款可以按已完成比例结算,但待验项必须保留单独的责任期限,否则延期责任会被稀释成整体拖延。
只拆交付物不拆责任,延期方仍会把问题推给第三方。做法是给每个待验项配三样东西:触发条件、验证方式、超期处理。触发条件写“对方接口可用”,验证方式写“在测试环境完成一次真实提交并留存返回记录”,超期处理写“超过约定天数后按未完成计入延期”。
证据要落在可复核的载体上,而不是口头说明。可用的包括:测试环境的操作录屏、接口返回日志、页面快照、字段对照表、双方确认的邮件或工单记录。需要避免的是把“第三方说快好了”当作进度证据,这类信息无法支撑验收结论。
一个实际动作是:在拆分清单里给每个待验项标注“谁提供触发条件”。如果触发条件掌握在第三方手里,验收日期就不能写成固定日期,而应写成“条件满足后N天”。这一步会直接影响下一步——只有触发条件明确,才谈得上把尾款、质保期和延期责任分开计算。
反例很具体:如果合同目标本身就是“上线后可正常收款”,而支付渠道延期,那么把商品页、购物车、订单列表分别验收并没有意义,因为核心业务闭环没有跑通。此时拆分验收会让人误以为项目大部分已完成,实际却无法交付使用。更稳妥的做法是改为阶段确认:确认已完成的技术工作,但不触发验收和尾款节点,等闭环可跑通后再一次性验收。
另一种失效情形是旧系统退出阶段。如果旧站仍在承载流量和订单,新站的关键模块又依赖第三方,提前拆分验收可能导致两套系统并行时间拉长,数据同步和内容重复问题反而增加。这种情况下应先明确退出条件,而不是急着给部分模块盖章。
第三方延期常和旧合作关系退出同时发生。此时拆分验收的目的不只是结算,更是决定哪些部分值得保留。可保留的是:已确认的页面结构、内容数据、可导出的配置、域名和账号控制权。可拆掉的是:只服务于旧合作方流程的临时脚本、未经验证的接口封装、无法说明来源的统计代码。
动作上,先导出内容与配置并做一次独立环境验证,确认不依赖原服务商也能运行;再对第三方依赖项逐条标注“继续等待”或“更换方案”。这个动作的结果会决定下一步是继续拆分验收,还是直接启动替换方案。若替换成本低于等待成本,就不应为了维持原验收框架而继续拖延。
把当前交付物列成一张表,每行写清:交付物、是否依赖第三方、可观察结果、触发条件、责任方。然后只对“不依赖第三方且可观察”的行执行验收;其余行转为待验项,附上触发条件和超期处理。最后检查一次:如果所有待验项同时延期,项目是否仍能被判定为未完成。若答案是否定的,说明拆分方式需要重做,而不是继续往下验收。