结论先讲:谁把脚本从“一次性”转为“长期依赖”,谁就应先承担临时维护责任,直到组织架构优化把这项职责正式写进某个岗位。更准确地说,责任归属不取决于脚本最初由谁编写,而取决于当前谁有权修改运行环境、谁最清楚业务前提、谁能在脚本失效时决定回滚或停用。若这三点分散在三个人身上,维护责任就不该只挂在原作者名下。
很多团队误把“还在跑”等同于“长期工具”。判断标准可以更具体:它是否已经进入固定流程、是否被非原作者调用、失效后是否会导致数据缺口或发布阻塞。如果三个答案都是“是”,它就不再是临时脚本,而是一项隐性基础设施。
假设某SEO团队用一个脚本每周拉取站点日志并生成抓取异常清单。最初只是某位成员为排查一次改版问题临时写的,后来运营每周都等这份清单开会。此时原作者休假,脚本因接口字段变化报错,会议没有数据可用。这个例子说明:长期化不是脚本变复杂,而是它嵌入了别人的工作节奏。
在这种情况下,维护责任应优先归给当前流程负责人,而不是最初写脚本的人。原作者可以提供上下文,但不应默认无限期兜底。
第一种是“原作者继续维护”。它成立的条件是:原作者仍在同一团队、仍掌握运行权限、脚本变更频率低,并且组织愿意把这项维护计入其工作量。缺少最后一条时,这种安排通常只能短期维持。
第二种是“转交给使用频率最高的岗位”。它成立的条件是:该岗位能获得代码仓库或脚本存放位置的写权限,能读懂关键参数,并且有至少一人可以互为备份。如果使用方只有执行权、没有修改权,转交只会把故障延迟到下一次报错。
第三种是“由平台或技术负责人统一托管”。它成立的条件是:脚本数量已经多到需要统一入口、统一日志和统一权限;否则托管成本可能高于脚本本身。对网站团队来说,常见的最小托管动作是:把脚本放入共享仓库,指定一名owner,记录输入来源、输出位置和停用条件。
这三种方式没有绝对优劣,区别在于团队当前是否有权限、有备份、有工时。不能因为“技术更专业”就默认技术岗必须接手,也不能因为“谁写谁负责”就忽略原作者已经转岗或工作量饱和。
如果原作者已经调离该业务线,只保留历史记忆,却仍被要求处理每次报错,那么“原作者负责”这个结论就失效。此时继续让他维护,会带来两个问题:他不再了解当前业务前提,修改可能偏离现流程;他的响应速度取决于新岗位安排,故障恢复时间不可控。
更合理的替代动作是:由当前流程负责人组织一次交接,把脚本的输入、输出、依赖字段、失败表现和停用条件写成简短说明,再指定新的维护人。交接完成后,原作者只保留咨询角色,不再承担第一响应责任。
这里要说明一个不能推出的结论:脚本最近没有报错,不等于维护责任已经清晰。没有报错可能只是因为输入数据恰好稳定,或调用方暂时减少,不能单独证明当前安排正确。
如果团队暂时拿不到完整日志、也没有仓库管理权限,仍可先做三件事:
这些动作的结果会直接影响下一步:如果调用人无法判断影响范围,就应先补依赖清单,而不是急着转移代码权限;如果调用人能判断且能回滚,就可以进入正式交接。
需要提醒的是,缺少权限时不要用“先让某人私下维护”代替正式安排。私下维护会让责任更模糊,也会让下一次组织架构优化时更难判断这项工具该归谁。
真正有效的做法,是在下一次职责梳理时把“脚本与自动化工具”列为一项可归属的工作对象,而不是留在个人默契里。可以按以下顺序推进:先列出仍在被非原作者使用的脚本,再标出每个脚本的业务影响面,然后指定owner和备份人,最后把owner写入岗位职责或项目分工。
如果只能先做一步,就做owner指定,并让owner在文档中写下停用条件。这样即使权限、工时和流程尚未完全理顺,团队也知道该找谁、什么时候该停,而不是等脚本再次报错才临时争论归属。