把接口设计成“可验收的中间产物”,而不是“等对方上线”。要求供应商每份文档都附带可执行的输入、输出、校验命令和责任人,你方按同一套命令复现一次;复现失败就退回文档,复现成功才进入下一阶段。这样即使对方不碰你的服务器,你也能独立完成实施,并把责任边界留在可验证的环节上。
常见矛盾是:供应商交付了结构、模板、字段说明,甚至标注了优先级,但你方工程师打开后仍不知道先改哪一处、改完用什么判断对错。表面看是文档不够细,实际往往是两种不同原因造成的,需要分开判断。
这两种原因的区分证据很直接:让对方用一份从未见过的样例数据,按自己的文档走一遍并给出中间输出。如果能走通,问题偏向原因一,补操作序列即可;如果走不通或需要口头补充,问题偏向原因二,必须把隐含前提显式写进接口。
不要接受“一份总文档”作为交付单位。把每个可独立验证的改动点定义为一个接口单元,每个单元必须包含四样东西:输入、输出、校验方式、责任人。输入指这份文档假设你手上已有什么;输出指改完后应产生什么可观察结果;校验方式指一条你能自己运行的检查命令或检查清单;责任人指出问题时找谁确认。
假设一个场景:供应商交付了一份页面标题与描述模板,声称“按此替换即可”。把它拆成接口单元后,输入是当前页面清单和字段映射表,输出是替换后的页面文件,校验方式是逐条比对模板占位符是否都被真实字段填充、有无残留未替换变量,责任人是对方的技术对接人。你方按此复现,若发现某个占位符在映射表中找不到对应字段,就退回该单元,而不是继续往下做。
拿到文档后,先不要安排全量实施。选一个最小单元,由你方人员独立复现,过程中只允许查阅文档,不允许向对方提问。记录三类信息:卡住的位置、需要猜测的地方、文档与实际不符的地方。
复现结果直接决定下一步动作:
这个动作的结果会改变后续节奏:通过率高的单元可以批量处理,反复卡住的单元应暂停实施,先补齐接口再继续,避免把错误假设扩散到更多页面。
“供应商只交文档不实施”本身不一定是问题,问题在于责任边界模糊。把边界落在接口上:每个单元明确谁提供输入、谁执行改动、谁负责校验、校验不通过时由谁修正。你方执行改动时,若因输入缺失导致失败,责任在提供输入的一方;若输入完整而执行结果不符合输出定义,责任在执行方。这样即使对方全程不接触你的系统,也能判断某次失败该退回哪一步。
需要核对对方资料时,只核对与接口有关的凭证,例如字段字典的版本、配置文件的来源说明、样例数据的生成规则。普通服务词不必上升到机构核验,重点始终是这份文档能否被你独立复现。
当出现以下情况时,可以认为双方接口基本可用:你方人员在不提问的情况下能完成一个完整单元;每个失败都能定位到具体缺失的输入或未定义的输出;对方补充的内容是清单和规则,而不是新的解释性段落。反之,如果每次沟通都产生新的口头约定,说明接口仍在漂移,应暂停扩大实施范围,先把已确认的约定固化下来再继续。