结论先行:当甲方用“页面能不能用、内容能不能改”衡量,乙方用“功能是否实现、工时是否消耗”衡量时,交付表不能只列项目名称,而要建立一层共同可核对的“中间指标”。最实用的中间指标是可观察结果:一个页面在指定设备上打开后,导航、表单、内容替换入口分别呈现什么状态。只要双方同意用同一组观察点记录,指标差异就不会在验收时集中爆发。
甲方关心的是业务可用性,例如栏目结构是否方便客户找到信息、后台能否自行替换图片和文字。乙方关心的是实现完整性,例如模板是否套完、字段是否绑定、接口是否连通。这两类指标都合理,但不在同一层:前者是结果层,后者是过程层。
如果交付表只写“首页完成”“新闻模块完成”,甲方看到的是“完成”两个字,乙方看到的是自己那一侧的动作结束。双方都没有说谎,却会得出不同判断。可对照的交付表要做的,是把过程层动作翻译成结果层可观察的状态,同时保留乙方的实现口径。
具体做法是:每个交付项都写三列——观察点、甲方判断依据、乙方完成依据。观察点必须是双方都能在同一环境下看到的东西,而不是“体验良好”“结构合理”这类无法对照的描述。
这样记录后,甲方不必理解组件绑定,乙方也不必争论“好不好用”。双方只需确认同一个观察点是否成立。若成立,该项可进入下一环节;若不成立,问题被定位到具体观察点,而不是停留在“你们没做完”和“我们已经做完了”的对立上。
假设双方把观察点定为“网站打开速度要快”。甲方在办公室网络下测试,认为很快;乙方在本地环境测试,也认为很快。上线后甲方在弱网环境下打开,觉得慢,于是拒绝确认。此时交付表并没有错在“列了速度”,而是错在观察点没有绑定条件。
速度本身受网络、设备、页面资源和第三方脚本影响,单次快慢不能直接证明某一方处理正确。更可对照的写法是限定条件:在指定网络条件下,用同一台设备打开指定页面,记录从输入地址到主要内容可见的先后状态。即便如此,也只能说明该条件下的表现,不能推断所有用户环境。这个反例说明:凡是受外部条件影响大的指标,都必须把条件写进观察点,否则交付表会制造新的争议。
当某个观察点未通过时,不要直接进入责任讨论,而是先做一次对照记录:甲方和乙方各自在同一条件下复现一次,把看到的现象写在同一行里。若双方看到的现象一致,就进入修复;若不一致,先统一测试条件,再判断是环境差异还是实现差异。
这个动作的结果会直接影响下一步:现象一致且可复现,说明问题在交付范围内,按观察点修复后重新确认;现象无法复现,说明需要补充条件说明,而不是继续争论。把这一步写进交付表,甲乙双方就不必在验收会上重新解释各自的指标,因为表格本身已经保留了对照过程。
取舍一:观察点数量。每个页面都写十几条观察点,维护成本会超过收益。更实际的做法是只对关键路径写细观察点,例如导航、表单、内容替换、权限入口,其余项目用统一模板带过。
取舍二:谁先填。乙方先填“完成依据”,甲方再补“判断依据”,容易变成乙方主导。更可对照的顺序是双方先共同确认观察点,再各自填写自己那一列。观察点没确认前,不进入填写。
取舍三:异常怎么记。不要只记“通过/不通过”。加一列“未通过时的现象描述”,并注明记录条件和时间。这样即使后续人员更换,也能从记录判断当时发生了什么,而不是依赖记忆。
假设一个项目里,甲方要求后台能替换首页横幅,乙方认为字段已绑定就算完成。若观察点写成“登录后台,找到首页横幅字段,替换一张图并保存,前台刷新后显示新图”,双方就能在同一动作上判断。这个例子只用于说明对照方法,不代表任何具体项目的实际结果。
交付表的价值不在于让双方指标变得相同,而在于让不同指标在同一观察点上留下可核对的记录。先确认观察点,再填写各自依据,最后用复现结果决定下一步,这比在验收阶段争论“完成”的定义更省成本。