3. 活动定义与排序:把大象装进冰箱需要几步
做项目计划,第一步是什么?
很多人上来就画甘特图,排时间。我告诉你,这是错的。你得先搞清楚——到底有哪些活要干,这些活谁先谁后。这就是今天要聊的:活动定义与排序。
3.1 活动定义的方法
活动定义,说白了就是把工作包拆成更小的、可执行的任务。你想想看,一个工作包叫“搭建服务器环境”,这没法直接派活。你得拆成“采购硬件”、“安装操作系统”、“配置网络”、“部署中间件”这些具体动作。
我个人习惯用三种方法来做这件事:
- 分解法——从WBS往下拆,一层层细化。这是最正统的路子。
- 模板法——翻翻以前做过的类似项目,把历史活动清单拿出来改改。我手头有个“标准活动库”,新项目来了直接复用,省时省力。
- 专家判断——找几个老手坐在一起,用头脑风暴把活动列出来。记得有一次做地铁监控项目,我们团队闭门讨论了两天,愣是把一个看似简单的“安装摄像头”拆出了47项子活动。
3.2 活动依赖关系类型
活动定义完了,接下来就是排顺序。为什么A必须在B前面?为什么C可以和D同时干?这就涉及到依赖关系。
项目管理里,依赖关系分四种:
| 类型 | 英文缩写 | 含义 | 举个栗子 |
|---|---|---|---|
| 完成-开始 | FS | 前序活动完成后,后续活动才能开始 | 地基浇完才能砌墙 |
| 完成-完成 | FF | 前序活动完成后,后续活动才能完成 | 文档写完才能完成审核 |
| 开始-开始 | SS | 前序活动开始后,后续活动才能开始 | 挖沟开始后,铺设管道才能开始 |
| 开始-完成 | SF | 前序活动开始后,后续活动才能完成 | 新系统上线后,旧系统才能下线 |
实际项目中,FS(完成-开始) 占了八成以上。但另外三种也别忽视。我曾经在一个厂房改造项目里,就因为没处理好SS关系——挖沟和铺管必须同时推进——结果工期延误了整整两周。
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的活动,就是关键活动。这些活动一个都不能延误,否则整个项目就晚了。
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 知识体系总览
下面这张图,把今天讲的内容串起来了:
这张图把今天的内容串成了三条线:左边是活动定义的方法,中间是依赖关系的四种类型,右边是两种网络图方法。三条线最终汇聚到最下面的关键路径法——这才是我们做活动定义和排序的最终目的:找到那条决定项目生死的关键路径。
好了,这一章就到这里。记住:活动定义和排序是项目计划的骨架,骨架歪了,后面再怎么填肉都没用。下次做计划时,多花点时间在这两步上,你会发现后面的进度控制轻松很多。