核心做法是把验收对象从“整站上线”改成“可独立确认的中间物”:第三方延期时,先验收不依赖它的部分,把依赖项单独挂起并约定补验条件。这样既不会因为一个外部接口卡住全部付款,也不会在未验证的情况下默认通过。
常见矛盾是:本地页面、后台和内容都已就绪,但支付、短信、地图或物流查询等第三方能力迟迟未通,整站无法按原计划上线。此时若坚持“全部完成才验收”,项目会无限期停摆;若直接按整站签字,等于把未验证的外部依赖也一并接受。
这通常有两种解释。第一种是拆分方式本身不成立,各模块耦合太深,离开第三方就无法单独运行,只能整体等待。第二种是拆分方式成立,只是原验收清单把“第三方可用”写成了所有模块的前置条件,掩盖了本可独立确认的部分。
判断依据是:去掉第三方依赖后,剩余部分能否在本地或测试环境独立打开、独立操作、独立记录结果。能,就属于第二种,应重新拆分;不能,就属于第一种,需要先做解耦或调整上线顺序。
如果前两项能独立走通,第三项有可观察的占位表现,就说明拆分验收有基础;如果页面打开即报错、后台依赖外部登录,则说明耦合仍在,拆分只会制造假验收。
第一层是自足交付:不调用任何第三方即可确认的页面、内容、后台操作和基础安全配置。第二层是接口契约:请求参数、返回结构、超时与失败提示是否符合约定,可用模拟数据或沙箱验证。第三层是真实联通:正式账号下的实际调用结果。
延期时先验第一层并出书面结果,第二层在可模拟的条件下验,第三层单独列为待补验项。每层对应不同的确认动作和付款节点,避免把第三层的风险转嫁到前两层。
假设某项目约定支付接口由第三方提供,对方延期两周。若按整站验收,这两周内无法确认任何内容;若按三层拆分,可以先确认商品页、订单表单、后台订单记录和失败提示,再以模拟返回确认参数格式,最后把真实支付列为补验项。
动作与结果的关系是:先完成第一层验收,就能据此确认内容和后台是否可交付,并决定是否释放对应款项;第二层通过后,才值得安排真实账号联调的时间;第三层补验通过前,不把“支付可用”写进最终确认。这样每一步的结果都直接决定下一步是否继续,而不是被动等待。
拆分验收要成立,需在补充约定中写明:待补验项的具体范围、补验的触发条件、由谁提供第三方账号或测试权限、延期期间已验收部分是否视为最终确认、以及补验不通过时的处理方式。缺少这些,拆分容易变成把问题推迟到上线后。
同时保留仍然有价值的部分:已确认的页面结构、内容数据和后台操作记录,即使第三方更换或合作终止,这些成果仍可迁移使用。需要退出旧合作关系时,先确认哪些交付物不依赖对方,再决定保留、迁移还是重做,比整体推倒更可控。