企业不给生产权限,交付仍然可以做,但要把“我替你上线”改成“我交付可验证的成品包,由你方在受控窗口上线并回传结果”。前提是:你能拿到测试环境或镜像环境,且对方指定一名有执行权的人做上线操作。若连测试环境也拿不到,只能做静态文件加书面说明,验收范围必须相应缩小,不能承诺线上效果。
这两种条件下的选择完全不同,不能照搬同一套排期。
条件一:有测试或镜像环境,但没有生产权限。这时交付物是“已在测试环境跑通的版本 + 上线操作单”。实施动作是:把变更内容、依赖项、执行顺序、回滚方式写成一份操作单,让对方的人在低峰时段照单执行;执行后由对方截图或导出日志回传。这个动作的结果决定下一步——如果测试环境与生产环境差异小,一次上线通常就能收敛;如果差异大,就要把差异点单独列出来,先补差异再谈上线时间。
条件二:只有成品包,没有任何环境访问权。这时交付物是静态文件、配置说明和自检清单,验收只能停留在“包内内容与约定一致”。实施动作是:用本地或独立环境生成成品,附一份逐项对照的清单,让对方自行部署。结果影响下一步——对方部署后如果出现与清单不符的现象,需要他们提供错误信息,而不是让你远程猜;缺少环境访问权时,反复口头调整往往不会收敛。
没有生产权限,最容易失控的不是技术,而是“做完了没有”这件事说不清。把交付拆成三个节点,每个节点都有可回传的证据。
这三个节点里,节点二的责任在对方,节点一和节点三的责任在交付方。责任边界写清楚,后面就不会因为“你没给我权限”和“你没做好”互相消耗。
样本少的时候容易觉得“只要操作单写得细就能替代权限”,规模化后例外会集中出现。
第一类例外是涉及数据写入或迁移的改动。这类操作一旦执行就很难回退,没有生产权限时不应由交付方设计“让对方照做”的步骤,而应把范围缩小到只读验证,把写入部分单独立项。
第二类例外是对方没有稳定的执行人。如果每次上线都换人、或者执行人没有决策权,操作单再细也会在执行环节走样。这种情况下更现实的选择是只交付到成品包,把上线和验证整体交给对方内部团队。
第三类例外是环境差异无法确认。当测试环境与生产环境的版本、配置或依赖情况不明时,任何“测试通过即上线通过”的判断都不成立。此时应当先做一次只读的环境比对,比对结果决定后续排期,而不是先排上线日期再补比对。
假设某次交付包含页面结构调整和一处表单字段变更,对方不提供生产权限,但愿意开放测试环境。
在“有测试环境”的排期下,交付方在测试环境完成调整,产出操作单,对方在约定窗口执行。执行后回传页面截图和表单提交结果,如果字段值正确写入,本次交付收尾;如果写入异常,先核对操作单里的字段顺序,再决定是修订操作单还是调整成品包。
在“只有成品包”的排期下,交付方只能提供文件和字段对照说明,对方自行部署。此时验收标准应写成“文件内容与对照说明一致”,而不是“线上表单一定可用”。若对方部署后反馈异常,需要他们提供具体错误信息才能继续,否则下一轮修改没有依据。
两种排期的差别不在工作量,而在验收标准。标准定得过高,没有权限的一方会承担无法验证的责任;标准定得过低,交付就变成只交文件、不问结果。
这四点落到文字上,交付就不再依赖“对方配合得好不好”这种模糊判断;没有生产权限也不再等于交付不可执行,只是验收的边界需要提前说清。