3. 活动定义与排序:把大象装进冰箱需要几步

做项目计划,第一步是什么?

很多人上来就画甘特图,排时间。我告诉你,这是错的。你得先搞清楚——到底有哪些活要干,这些活谁先谁后。这就是今天要聊的:活动定义与排序。

3.1 活动定义的方法

活动定义,说白了就是把工作包拆成更小的、可执行的任务。你想想看,一个工作包叫“搭建服务器环境”,这没法直接派活。你得拆成“采购硬件”、“安装操作系统”、“配置网络”、“部署中间件”这些具体动作。

我个人习惯用三种方法来做这件事:

  1. 分解法——从WBS往下拆,一层层细化。这是最正统的路子。
  2. 模板法——翻翻以前做过的类似项目,把历史活动清单拿出来改改。我手头有个“标准活动库”,新项目来了直接复用,省时省力。
  3. 专家判断——找几个老手坐在一起,用头脑风暴把活动列出来。记得有一次做地铁监控项目,我们团队闭门讨论了两天,愣是把一个看似简单的“安装摄像头”拆出了47项子活动。
我的小技巧: 拆活动时,每个活动的工期最好控制在2-5天。太细了管理成本高,太粗了没法跟踪。这个尺度,你多做几个项目自然就摸准了。

3.2 活动依赖关系类型

活动定义完了,接下来就是排顺序。为什么A必须在B前面?为什么C可以和D同时干?这就涉及到依赖关系。

项目管理里,依赖关系分四种:

类型 英文缩写 含义 举个栗子
完成-开始 FS 前序活动完成后,后续活动才能开始 地基浇完才能砌墙
完成-完成 FF 前序活动完成后,后续活动才能完成 文档写完才能完成审核
开始-开始 SS 前序活动开始后,后续活动才能开始 挖沟开始后,铺设管道才能开始
开始-完成 SF 前序活动开始后,后续活动才能完成 新系统上线后,旧系统才能下线

实际项目中,FS(完成-开始) 占了八成以上。但另外三种也别忽视。我曾经在一个厂房改造项目里,就因为没处理好SS关系——挖沟和铺管必须同时推进——结果工期延误了整整两周。

避坑指南: 依赖关系分两种:一种是硬逻辑(比如必须先浇地基才能砌墙),另一种是软逻辑(比如我想先做A再做B,但其实顺序可以调)。别把软逻辑当硬逻辑,那会把自己逼死。

3.3 前导图法(PDM)

PDM,也叫单代号网络图。每个活动用一个方框表示,箭头表示依赖关系。这是目前最主流的方法,几乎所有项目管理软件都在用。

它的核心规则很简单:

  • 节点 = 活动
  • 箭头 = 依赖关系
  • 不能有回路(别搞成死循环)

我习惯用PDM来算关键路径。怎么算?四个参数:最早开始(ES)、最早完成(EF)、最晚开始(LS)、最晚完成(LF)。

正推法算ES和EF:从起点开始,ES=0,EF=ES+工期。遇到多个前置活动,取最大的EF作为当前活动的ES。

逆推法算LS和LF:从终点开始,LF=项目总工期,LS=LF-工期。遇到多个后续活动,取最小的LS作为当前活动的LF。

总时差 = LS - ES(或者LF - EF)。总时差为0的活动,就是关键活动。这些活动一个都不能延误,否则整个项目就晚了。

关键路径法(CPM)的核心: 找出总时差为0的活动链。这条链上的每个活动,都是你的命门。我每次做项目计划,第一件事就是把关键路径标红,天天盯着看。

3.4 箭线图法(ADM)

ADM,也叫双代号网络图。它用箭头表示活动,节点表示事件。说实话,现在用ADM的人不多了,但我觉得它有个好处——能直观地表示依赖关系中的“虚活动”。

虚活动是什么?就是工期为0、不消耗资源的活动,用虚线箭头表示。它只用来表达逻辑关系。比如:

活动A(挖地基)→ 活动C(砌墙)
活动B(采购砖头)→ 活动C(砌墙)

但A和B之间没有直接关系。这时候就需要一个虚活动:
A → 虚活动 → B → C
表示“A完成后,B才能开始,然后C才能开始”

嗯,有点绕。但你在做复杂项目时,虚活动能帮你理清那些“剪不断理还乱”的逻辑关系。

3.5 PDM vs ADM:怎么选?

对比维度 PDM(前导图法) ADM(箭线图法)
表示方式 节点=活动,箭头=关系 箭头=活动,节点=事件
虚活动 不需要 需要,用于表达逻辑
复杂度 简单,容易上手 复杂,容易画错
软件支持 所有主流工具都支持 逐渐被淘汰
适用场景 绝大多数项目 逻辑关系极其复杂的项目

我个人建议:用PDM就够了。除非你是在做那种几十个活动互相嵌套、逻辑关系绕成毛线球的项目,否则别碰ADM。我曾经在一个航天项目中被迫用过ADM,画完图后自己都看不懂……

3.6 知识体系总览

下面这张图,把今天讲的内容串起来了:

活动定义与排序知识体系 活动定义 分解法 模板法 专家判断 依赖关系类型 FS 完成-开始 FF 完成-完成 SS 开始-开始 SF 开始-完成 网络图方法 PDM 前导图法(推荐) ADM 箭线图法(备选) 关键路径法(CPM) 核心逻辑 1. 先定义活动(用什么方法拆?) 2. 再确定依赖关系(谁先谁后?) 3. 最后用网络图建模,找出关键路径(哪些不能延误?) 4. 关键路径上的活动,就是项目经理每天要盯的死穴

这张图把今天的内容串成了三条线:左边是活动定义的方法,中间是依赖关系的四种类型,右边是两种网络图方法。三条线最终汇聚到最下面的关键路径法——这才是我们做活动定义和排序的最终目的:找到那条决定项目生死的关键路径。

好了,这一章就到这里。记住:活动定义和排序是项目计划的骨架,骨架歪了,后面再怎么填肉都没用。下次做计划时,多花点时间在这两步上,你会发现后面的进度控制轻松很多。