结论先说:当第三方延期已经发生,验收不应继续按“整站上线”这一个节点卡住,而应把第三方依赖单独拆成可独立确认的输入项,把自有开发部分提前验收。这样做的条件是:你能明确区分哪些功能必须等第三方数据或接口,哪些功能只依赖自有代码。如果第三方提供的是核心支付、身份认证或唯一数据源,且没有任何可替代的模拟层,那么拆分验收只能确认“未阻塞部分”,不能据此判断整站可交付。
不同依赖对验收的影响差别很大,先分类再决定拆不拆。
分类之后,把每个验收项标注它依赖哪一类。这一步的实际动作是产出一张依赖清单,清单上每一项写明“依赖谁、缺什么、缺了之后哪几个验收项不能做”。结果会直接影响下一步:只有可模拟依赖和交付物依赖,才适合提前验收;不可模拟依赖只能标记为待定。
拆分验收不是把整站拆成任意小块,而是按“第三方是否参与运行时”来切。
可以提前验收的部分:页面结构、自有表单校验、静态内容展示、不调用第三方接口的搜索或筛选、后台中不涉及外部同步的增删改查。这些部分的验收结论是有效的,因为它们不依赖延期方。
不能提前验收的部分:支付回调、第三方登录后的会话建立、外部物流状态回传、依赖对方数据源的报表。这些即使自有代码写完,也只能确认“代码已提交”,不能确认“功能可用”。
这里有一个容易失效的反例:假设第三方延期的是身份认证,而你的整站权限体系都建立在认证返回的用户标识上。此时把登录页之外的页面提前验收,看似合理,但一旦认证返回的字段结构与你假设的不同,所有依赖该标识的权限判断都要返工。所以,当第三方依赖处于调用链上游、且返回结构未冻结时,拆分验收的结论不能向上传递。
假设一个项目包含商品展示、购物车、在线支付三块,支付依赖第三方,对方延期两周。你可以这样安排:
这个例子的数字只用于说明比较方法,不代表真实工期。它的作用是让你区分“等第三方”和“等自己修”。
第三方延期时,不要只发催办消息,而要同步做两件事。
第一,把验收项按“是否可在无第三方条件下判定通过”重新分组,并记录每组当前的判定结果。第二,向第三方索要可冻结的接口契约,哪怕只是字段名和错误码列表。拿到契约后,用模拟层先跑通自有侧,这样第三方恢复时只需替换地址和密钥,而不是重新设计调用逻辑。
如果对方连契约都不给,那么拆分验收只能停留在“自有部分已确认”,不能给出整站可交付的判断。此时下一步动作是:把待定项和已确认项分开写进交付说明,让后续决策者知道哪些结论有边界。
当第三方依赖是唯一数据源,且没有沙箱、没有文档、没有模拟可能时,拆分验收会制造虚假进度。此时更稳妥的做法是保留整体验收节点,同时把自有部分做成可独立运行的演示,但不宣称已验收。判断标准很简单:如果替换掉第三方后,你无法用任何方式验证功能逻辑,那么提前验收就没有证据价值。
另一个边界是合同或付款节点绑定整站上线。这种情况下,拆分验收可以作为内部进度管理,但不能替代对外交付条件,需要先确认合同是否允许分项确认。