把“接口”理解成一份可执行的责任交接单,而不是技术文档目录。供应商只交文档、不参与实施时,你需要的不是更多说明页,而是一组双方都能独立验证的输入输出约定:谁在什么条件下提供什么,接收方用什么动作确认,确认失败后回到哪一步。下面以你手里那份部署说明或配置文档为对象,逐步把它转成可执行的接口。
同一份交付文档,缺失的东西可能完全不同。先把问题归到下面三类之一,处理方式才会分叉。
判断方法很直接:拿文档里任意一条步骤,问“执行这一步需要的前置条件,现在在谁手里”。如果答案落在供应商之外的人身上,而文档没有约定获取方式,这条就是接口缺口。三类缺口的补救成本不同,环境接口通常最容易补,验收接口最容易被忽略却最影响后续排期。
接口卡的目标是让任何一方单独阅读都能判断“现在轮到谁”。每条接口至少包含五项:提供方、接收方、交付物形态、触发条件、确认动作。假设你手里有一条“配置对象存储访问凭据”的说明,可以改写成:
这里的关键动作是把“说明”变成“可被拒绝的交付物”。文档可以含糊,交付物不能。只要一项交付物无法被拒绝,它就不是接口,只是背景资料。做完这一步,你会得到一张双方各自持有相同内容的清单,后续争议从“文档里写了”转为“这一项是否按约定形态交付”。
不要等全部接口卡写完再验证。选一条依赖最少、失败最容易观察的链路先跑通,例如从你的服务器发起一次健康检查请求,或读取一个由供应商提供的静态配置。假设这条链路在文档里被描述为“服务启动后即可访问”,实际执行时你发现需要额外开放一个出站规则,而文档未提。这个现象本身就是证据:接口卡缺少环境前置条件。
处理动作是把该条件补进提供方一侧,并明确由谁在什么时间点确认。结果会直接影响下一步:如果断点出现在环境层,后续验收接口的编写可以推迟;如果断点出现在数据或验收层,说明文档与实现之间的偏差更大,需要先冻结接口范围再继续。这里要避免一个常见误判——某次请求失败或某项统计为零,不能单独证明文档错误,也可能是触发条件未满足、确认动作设计过严或环境本身尚未就绪。把每种解释对应的检查动作写进接口卡,比直接判定责任更有用。
供应商不实施,意味着所有变更都要通过接口传递。需要提前约定三件事:
一个可用的短例子:假设接口卡约定供应商提供一份字段映射表,你按该表导入数据后发现两条记录冲突。先检查映射表是否覆盖了冲突字段,再检查导入动作是否按确认动作执行。若两者都符合,则问题属于接口未覆盖的边界情况,应新增一条接口卡,而不是修改原卡的解释。这个动作的结果是接口集合随问题增长,而不是随解释摇摆。
如果供应商连交付物形态都无法固定,例如同一份配置每次提供的字段名都不同,那么接口卡会退化成反复协商,此时更现实的选择是先缩小范围,只对最关键的一条链路建立接口,其余部分接受文档级交付。另一种情况是你自身没有可执行确认动作的一方,例如没有能独立发起请求的环境,那么接口设计应优先补确认能力,而不是继续细化条款。判断标准是:每条接口卡是否至少有一方能在不询问对方的情况下完成确认。做不到这一点,接口就还没有真正建立。