结论先行:如果供应商只交付文档、不碰服务器和代码库,你仍然可以把接口设计成可验收的,但前提是自己这一侧有人能执行命令、能读日志、能对结果负责。接口的核心不是“文档写得多细”,而是把每一项交付物绑定到一个你能独立运行、独立观察的动作上。若你这边完全没有可执行环境,也没有任何人能验证动作结果,那么再完整的文档接口也无法阻止项目停在纸面。
供应商只交文档时,双方之间实际存在两条通道,容易被混为一谈。
只交文档的供应商,往往把大量说明性内容当成可执行内容交付。你要做的是逐条标记:这一条我能不能在本地或测试环境实际执行一次?能执行,才进入接口清单;不能执行,退回补充或降级为参考材料。
设计接口时,不要只写“提供部署文档”,而要拆成可验证的单元。假设一个场景:供应商交付一份站点初始化说明,你这边有一台测试服务器和只读的代码仓库权限。可以这样约定:
这个三件套的价值在于:它把“文档是否合格”变成了“动作是否可复现”。供应商收到报错原文后,要么补充缺失的配置说明,要么承认该步骤依赖他们未交付的环境。无论哪种结果,你都能决定下一步是继续等待补充,还是换用替代方案。
缺少完整数据或权限是常态。你不需要一开始就拿到生产库或域名管理权,但至少要保留一个最小动作:在隔离环境里按文档走一遍,并记录在哪一步停下。
可执行的最小动作包括:用占位数据跑通本地启动、用样例文件验证导入格式、用只读账号确认接口返回结构。不能从这些动作推出的结论是:站点已经可以上线、性能已经达标、生产环境不会出问题。这些结论需要生产权限和真实流量才能验证,而只交文档的供应商通常不提供这部分验证。
如果连隔离环境都没有,退而求其次的动作是:要求供应商提供一份带具体值的配置样例,并由你逐项核对字段是否齐全。这仍然不能替代实际运行,但至少能暴露明显的缺项。
假设供应商交付的文档里包含一段必须由他们内部工具生成的加密配置,而该工具不对外提供,也不给出等价的生成步骤。此时无论你这边有多少执行权限,接口都无法闭合,因为关键动作只能由对方完成。这种情况下,文档接口设计得再细也没有意义,你需要把问题升级为“该依赖是否必须由对方提供”,并据此决定是要求替代方案,还是把该部分排除在本次交付范围之外。
另一个失效条件是:你这边没有任何人能读日志、判断报错含义。此时动作可以执行,但观察点无法解读,接口仍然断裂。解决办法不是继续要文档,而是先指定一个能承担验证责任的人,或者把验证动作外包给第三方。
不要等全部文档齐备再开始。从接口清单里挑一条依赖最少、最容易观察的链路,例如配置文件加载或静态页面生成,实际执行一次,把结果分为“通过”“报错”“无法执行”三类。通过的部分可以进入下一轮扩展;报错的部分带着原文向供应商提问;无法执行的部分明确记录缺少什么权限或数据。这个动作的结果直接决定你是继续按文档推进,还是需要重新谈判交付边界。