结论先说:合同内任务按“交付物依赖”排,临时救火任务按“影响面+可逆性”排,两者共用一条产能上限。救火任务不应插进合同任务的队列中间,而应占用单独预留的缓冲产能;一旦缓冲被吃满,就必须把合同内任务的承诺日期整体后移并书面确认,而不是靠加班硬扛。
假设某推广排名服务合同约定两个月内完成三批页面优化和一轮外链结构调整,团队每周可投入的有效工时是固定的。第一个月合同任务推进正常,第二个月客户临时提出“竞品突然发力,先帮我处理这几个词的排名波动”。如果直接把这批救火任务插进当天队列,合同任务不会消失,只会被推迟到后面,最终在交付日集中爆雷。
这个情境里真正需要判断的不是“救火重不重要”,而是:救火任务消耗的是哪部分产能、合同任务的依赖链会不会因此断裂。个别救火任务插队时看不出问题,一旦一周内出现三次以上,排期就会从“可控延迟”变成“系统性延期”。
合同内任务的排期依据是交付物之间的先后关系,而不是谁催得急。可用的判断顺序是:
一个实际动作:在合同启动时,把三批任务画成一张依赖图,标出每批的“最晚开始日”。当救火任务占用产能后,先检查哪一批的最晚开始日被突破,被突破的那批就是需要重新谈日期的对象,而不是笼统地说“整体延后”。
救火任务不能一律优先,也不能一律排队。可按两个维度分级:
影响面大且不可逆的,例如误操作导致的批量页面失效、robots 或 canonical 配置异常,应立刻占用缓冲产能处理。影响面小且可逆的,例如个别长尾词排名波动、单篇内容需要微调,应进入下一次合同任务的批次里一并处理,不必单独插队。
这里有个容易忽略的边界:排名波动本身往往不是“故障”,可能是算法调整、竞品动作或数据延迟。把波动直接当成救火任务,会让团队长期处于被动响应状态,合同任务的依赖链被反复打断。合理做法是先做一次快速归因,确认是技术性异常还是正常波动,再决定是否占用救火产能。
排期失控的常见原因不是任务太多,而是把救火任务默认塞进“剩余时间”。正确做法是:
这个动作的结果很直接:团队知道什么时候该说“可以接”,什么时候必须说“接不了,需要调整合同日期”。它把“能不能做”变成一个有依据的判断,而不是靠感觉或加班。
出现以下任一情况,就应停止局部插队,改为整体重排:
重排时,把合同任务按依赖链整体后移,并明确新的交付节点;救火任务则按分级结果决定哪些立即做、哪些并入下一批。这样处理的结果是:救火不再以牺牲合同承诺为代价,合同任务也不再因为反复插队而失去可预测性。
如果救火任务持续高频出现,更合理的下一步是把其中稳定复现的部分写进合同范围,重新约定产能和交付节奏,而不是长期依赖临时协调。