把合同内任务和临时救火任务放进同一张排期表,是拖垮项目节奏最常见的原因。更可行的做法是:合同内任务按交付物倒排,临时救火任务按影响面分级插空,并且为救火预留固定比例的缓冲时间,而不是靠加班消化。你手上如果已经有一份写满任务的排期表,可以先把它拆成两张表,再决定谁先谁后。
拿你现有的任务清单,逐条标注两个信息:这条任务是不是合同或需求确认单里写明的交付物;如果不做,影响的是上线节点、已有功能,还是只是体验优化。标注完之后,合同内任务归入交付队列,其余归入救火队列。
拆分时最容易出错的是把“客户口头提的紧急修改”直接塞进交付队列。判断标准不是谁催得急,而是它有没有对应的书面确认。没有确认的,一律先放救火队列,等确认后再决定是否转正。
这个动作的结果会直接影响下一步:交付队列决定里程碑,救火队列只决定当天或当周的插入顺序,两者不互相挤占。
合同内任务的排期依据应该是可验收的交付物,比如页面模板、表单流程、后台配置、上线检查项,而不是“设计几天、前端几天”这种工时堆叠。倒排的做法是:先固定验收日期,再往前推每个交付物必须完成的时点。
假设一个项目约定四周后上线,那么第三周末应完成全部页面与流程联调,第二周末应完成模板与内容填充,第一周末应完成结构与字段确认。这个例子只是说明倒排方法,具体周期要按你的合同约定调整。
倒排之后要留出一个明确的冻结点:冻结点之后,合同内任务只做修复,不再接受新增范围。冻结点的作用是让救火任务有地方可插,而不是让交付队列无限延长。
救火任务需要一套固定的分级规则,否则谁先说话谁先处理。可以按影响面分成三档:
分级之后,每次插入救火任务都要记录它占用了哪个交付物的时间。如果一周内阻断级任务超过两次,说明问题不在排期方法,而在需求确认或测试环节,需要回头补流程,而不是继续压缩合同内任务。
把救火任务全部当成意外,排期就一定会崩。更现实的做法是在每周排期里预留一段固定缓冲,专门用于处理影响级和阻断级任务。缓冲被用掉多少,直接反映项目当前的健康程度。
同时要约定救火任务转正的条件:当一条临时需求被反复提出,或者它已经影响到合同约定功能的验收,就应当走变更确认,把它写进交付队列并相应调整里程碑。没有这个转正机制,救火队列会越积越厚,最终变成第二份合同。
一个可执行的动作是:每周固定一次,把救火队列里超过三天未处理的任务重新过一遍,判断是升级、转正还是关闭。这个动作的结果决定下周交付队列是否需要重新倒排。
把交付队列和救火队列放在同一份可见文档里,但用不同区域展示,并标注每项任务的来源、影响面和预计占用时间。这样做的目的不是让排期更好看,而是让“为什么这周合同内任务没推进”有一个可查的答案。
当有人追问进度时,你不需要解释情绪,只需要指出救火队列占用了多少缓冲、哪些任务因此顺延。如果顺延已经影响到合同约定的验收点,就该启动变更确认,而不是继续在两张表之间来回挪动任务。排期的价值不在于排得满,而在于让每一次插入都有代价、每一个顺延都有依据。