结论先说:合同内任务按“里程碑倒排、按验收物排期”,临时救火任务按“影响面分级、限时插队并占用缓冲”,两者不混在同一张表里,才可能既守住交付又不被突发需求拖垮。这个结论成立的前提是合同里写清了验收物和变更流程;如果合同只写了“改到满意为止”,下面所有排期方法都会失效,因为边界本身不存在。
合同内任务是可预期、可拆分、可验收的,排期的核心是依赖顺序和资源占用。临时救火任务是突发、不可预期、往往没有明确验收标准的,排期的核心是影响面和响应上限。把两者放进同一张甘特图,最常见的后果是救火任务不断挤占合同内任务的时间,而合同内任务的截止日期不会因此顺延。
一个可操作的区分方式是问三个问题:这件事是否在合同附件的工作范围内?是否对应一个可交付物或验收点?如果今天不做,损失是可逆还是不可逆?三个问题都指向“范围内、有验收物、可延后”,就归入合同内任务;出现“范围外、无验收物、不可逆”的组合,就归入临时救火。
按工时正排的问题是,一旦中途插入救火任务,剩余工时被压缩,但里程碑日期不会自动后移,最后只能靠加班补。倒排的做法是:先锁定验收日期和验收物,再往前推每个依赖环节的最晚开始时间。
这样做的影响是:合同内任务的排期不再依赖“每天能做多少”,而依赖“哪些节点不能动”。下一步动作是把这份倒排表作为变更谈判的底稿,任何插入请求都要说明它推后哪个验收物。
救火任务全部即时响应,等于没有排期。可行的做法是先分级,再给每级设定不同的响应上限和插队额度。
关键约束是插队额度:每周允许阻断级和严重级占用的总时长要有上限,超出上限就必须触发变更流程,重新协商合同内任务的日期。这个上限不是拍脑袋定的,可以从倒排表中“缓冲时间”的实际余量推算。
假设合同约定六周内完成一个展示型站点,倒排后第三周需要确认栏目结构,第五周需要完成移动端适配。第二周出现一个阻断级问题:表单提交失败。按分级规则立即处理,占用两天。这两天从缓冲中扣除,栏目结构确认推迟到第三周后半段。
此时有两种成立的选择。第一种:如果缓冲仍够覆盖后续依赖,栏目结构确认只顺延两天,移动端适配不受影响,无需变更合同。第二种:如果缓冲已被前一次救火用掉,栏目结构确认会撞上移动端适配的准备期,就必须走变更流程,书面确认是压缩评审时间还是顺延最终验收日期。两种选择的分界点不是“救火多不多”,而是“缓冲还剩多少”。
反例也要说明:如果合同没有约定验收物和变更流程,只约定“六周内上线”,那么上述倒排表缺少可核对的锚点,救火任务占用的时间无法换算成任何验收物的顺延,排期就会退化成谁催得急谁先做。
多个角色对“这件事算不算合同内”有不同理解时,争论本身不产生排期。可行的动作是建一份变更记录,每条只写四项:提出时间、请求内容、判定级别、影响的验收物。判定级别和影响验收物这两栏,就是双方需要对齐的事实。
下一次排期会议只核对两件事:合同内任务的倒排表是否仍然成立,救火额度是否已经用尽。如果两者都成立,按原计划推进;如果任一不成立,先处理变更记录,再更新排期。这样做的结果是,排期表始终对应一份可以追溯的变更记录,而不是对应某个人当天的判断。下一步动作是把最近两周的救火记录按级别归类,算出实际占用时长,再决定缓冲是否需要调整。