先给结论:合同内任务按“交付里程碑”倒排,临时救火任务按“影响面×不可逆程度”插队,并且只允许插进当天或本周的缓冲带,不允许直接改写合同任务的截止日期。柳州本地不少网络公司的项目排期之所以越做越乱,不是因为救火任务太多,而是因为两类任务共用同一张排期表、同一套优先级口径。本文要解决的是:当同一批人同时背着合同交付和随时可能出现的救火请求时,什么条件下保留合并排期、什么条件下必须拆开排期、什么条件下干脆拒绝接单。
一个人或两三个人的时候,排期靠脑子就够了:谁手上有什么、哪个急,一问就知道。这种模式在项目数少、客户数少、救火频率低的时候确实成立。问题出在两个变量同时增长:合同任务开始出现依赖关系(设计等文案、前端等设计、上线等备案),救火任务开始来自多个客户且都声称“很急”。
此时共用一个优先级字段会失真,因为两类任务的“急”根本不是同一种东西。合同任务的急是里程碑约束,晚一天可能触发违约或连锁延期;救火任务的急通常是情绪强度,客户喊得响不代表影响面大。把两者放进同一个排序队列,结果往往是喊得最响的活先做,合同里程碑被反复挤压,最后集中爆发。
可以区分的原因证据:如果近一两个月合同任务的完成时间持续后移,而救火任务数量并没有明显增加,说明问题不在救火量,而在排期口径被污染;如果救火任务数量确实上升,且集中在少数几个客户,说明问题在需求边界,而不是排期方法。
合并排期并非完全不能用,但它有明确前提:救火任务可以被预先量化,且合同任务本身留有可观的浮动时间。具体来说,如果团队能对历史救火请求做出稳定估计(比如每周大约占用多少工时、集中在周几),就可以把这块时间当作固定预留,和合同任务放在同一张表里,只是把它标成“不可挪用的缓冲”。
这个前提不满足时不要硬撑。判断标准很简单:如果连续两周实际救火耗时都超过预留量,说明预留估计已经失效,继续合并排期只会让合同任务的时间承诺变成空话。
一个注明假设的短例子:假设某团队每周预留 6 小时给救火,合同任务按剩余 34 小时排。如果实际救火连续三周达到 12 小时,那么合同任务相当于每周被吃掉 6 小时,一个月就是 24 小时,约等于三天工期。此时要么上调预留、要么下调合同承诺量,二者必须选一个,不能都不动。
更稳妥的方式是把两类任务拆成两条队列,各自有自己的排序规则,但共用一个仲裁点来决定谁占用缓冲带。这样做的关键动作是:
这个动作的结果会直接影响下一步:如果仲裁发现某类救火任务反复出现,说明它不是“临时”,而是被漏掉的合同范围,应该回到需求确认环节补充,而不是长期占用缓冲带。
拆开排期的适用前提是团队人数足够支撑两条队列各自有人跟进。如果只有一个人,拆开反而增加管理成本,此时更适合用“时间盒”方式:每天固定一小时处理救火,其余时间不响应非合同请求。
当救火任务持续挤占合同任务,且调整预留和拆队列都无法缓解时,剩下的选项是退出——要么拒绝新的救火请求,要么重新协商合同交付时间。判断是否到了这个点,可以看一个信号:合同任务的最晚开始时间被连续突破两次以上。第一次突破可以靠加班补回来,第二次突破通常意味着排期已经不可信。
退出不等于终止合作,更常见的做法是把临时请求转为变更单,明确它对应的时间成本由谁承担、合同里程碑是否顺延。这一步的实际动作是:把救火任务的影响写进变更记录,标注它占用了哪个合同任务的缓冲,以及该合同任务的新最晚开始时间。这样做的结果是,客户能看见临时请求的真实代价,而不是把它当成免费加急。
不需要复杂的项目管理工具,只需要在排期时对每个新任务问三个问题:它属于合同范围吗?它的最晚开始时间是什么?它占用的是缓冲带还是合同任务的固定时间?三个问题回答完,排期归属就清楚了。
如果答案指向“占用合同任务固定时间”,就必须走仲裁或变更流程,不能由执行的人自行决定。这一步守住,合同内任务和临时救火任务才不会互相吞噬。柳州网络公司的项目规模通常不大,正因为人少,排期口径一旦混乱,恢复成本比大团队更高,所以更值得在开始就把两条队列分开。