CategoryResourceRepost/极客时间专栏/项目管理实战20讲/硬技能篇/05 | 规划:排除计划中的“延期地雷”.md
louzefeng d3828a7aee mod
2024-07-11 05:50:32 +00:00

130 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<audio id="audio" title="05 | 规划:排除计划中的“延期地雷”" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/80/af/808cc26ac2483abef239492c6b9b7daf.mp3"></audio>
你好,我是雷蓓蓓。今天,我们来聊一聊如何排除计划中的“延期地雷”。
我发现,有很多程序员是根本不做估算的。原因有很多,但总体来说,可以归结为一个:**嫌麻烦**。我的一个程序员朋友曾经跟我说过这样一段话“我们是创业团队领导一拍脑袋给个deadline时间差不多了我们就开干。如果到时候上不了线我们就再加班呗反正计划都是倒排的估不估工作量问题不大。”
这种现象很普遍,那么,为啥一定要做计划呢?
在项目管理中,**计划是贯穿始终的重要课题,是各个角色协同工作的基准**。程序员在做项目管理的时候,会有个特别明显的优势,就是对项目中涉及到的架构设计、技术难点等问题,有着非常深刻的理解,因此,你对技术类风险会有更高的把控力。
但是,你还需要学习的是,从全局的视角出发,去推进项目整体目标的落地,优化各个角色的协同过程。作为项目经理,你要**利用一切可以利用的资源、尽自己最大的努力达成项目目标**,而计划是你可以借助的重要工具。
那么,计划到底是什么?计划是用来做什么的呢?
实际上,计划是“市场需求或发起人的期望”和“团队生产力”之间平衡的结果。**从本质上来讲,计划是用来对焦的!做计划,是个集体对焦的过程**。如果我们省去对焦的步骤,就会给后续的执行工作埋下很多“地雷”。在执行过程中,这些“地雷”一旦被引爆,就会把我们的项目拖向失控的深渊。
## 扫雷游戏
我们都知道,好的计划是成功的开始。但是,在做计划时,我们很容易遭遇一些雷区,下面我们就一起来玩一个“扫雷游戏”。
我有个程序员朋友小勤,她升任项目负责人之后,在工作中突然多了很多困惑,尤其是在做计划时,她遇到了很多问题。现在,我就带你来看看她在做计划时遇到的典型问题。
这些问题涉及五大常见雷区,希望通过这些讨论,你能对导致计划失败的这五大雷区有更深刻的理解,提早规避。
### 雷区1不够具体
小勤的第一版计划是这样的:
>
网课2.0升级项目计划于9月18日提测10月1日正式上线。
你可能会说,这也太简单了吧?实际上,在程序员自己管理的项目中,这种“一句话式”的计划是很常见的。这份计划规定了提测和上线时间,也算是有了基本的约定。
但是,你还记得我们刚刚对计划的定义吗?计划是一种集体对焦的方式。**好的计划,不仅要给出时间节点,还要给出依据和来源,这样才能更有效地对焦。**
这里需要引入一个概念,叫作**WBS工作分解Work Breakdown Structure这是我们做计划的第一个标准动作**。
作为一个描述思路的规划和设计工具WBS可以清晰地表示各项目工作之间的相互联系帮助团队更高效地管理项目。
WBS是项目管理领域非常重要的方法。**创建WBS的过程也就是把项目工作按阶段可交付成果分解成较小的、更易于管理的组成部分的过程**。
简单来说WBS就是“把大象放进冰箱”的过程在做计划的时候我们要把“大象”也就是我们要做的这件事情真正拆解开明确要分成多少块工作内容涉及哪些角色和哪些环节的工作项你需要将工作项拆解到3个工作日以内每项任务都对应到个人。
在跟小勤沟通好WBS之后她很认真地做了改进以下是她修改后的第二版计划
<img src="https://static001.geekbang.org/resource/image/fc/e4/fc48769b83279ac847eee1640bfaa7e4.png" alt="">
从这份计划中,我们可以看到,小勤对开发任务进行了详细地拆解,每个人的工作都很明确。你觉得这样很好了,对不对?
No这恰恰是做计划时最容易忽视的一种“延期地雷”。这份计划看似很详细实际上仍然是个任务的集合没有办法指引我们有效地达到目标。
**做计划的方式的转变,背后其实是思维方式的根本转变**。小勤在做程序员的时候,她的目标就是完成开发任务。但当她的职责扩大之后,她本能地将设定目标默认为完成一堆开发任务,她还没有意识到,作为项目负责人,自己还需要做些什么。
### 雷区2不够全面
我刚刚说过,项目管理是运用当前一切可用的资源,去完成整个项目目标。这份计划的最大问题就是,**只有任务列表,没有识别关键资源和关键依赖,也没有考虑研发之外其他环节**。这样的计划,无法让我们明确实现目标的关键路径,也无法明确是否可以完成目标以及如何完成。
**识别依赖并画出关键路径,就是我要讲的做计划的第二个标准动作,这一步意味着我们开始从目标的角度对资源进行统筹思考**
关键路径是决定项目工期的进度活动序列。它是项目中最长的路径,关键路径的工期决定了整个项目的工期。所以,任何关键路径上的延迟都将直接影响项目的预期完成时间。
明确了这一点之后,小勤又进一步调整了计划,我们来看看小勤做的第三版计划。
<img src="https://static001.geekbang.org/resource/image/7c/f2/7c14929c016a6c3a7da15d8df0e1e2f2.png" alt="">
从图中可以看出,小勤已经把工作流中的先后依赖关系识别出来了,这样一来,关键路径也明确了,这份计划总算有个模样了。清晰了关键路径之后,我们要对其进行持续关注,把关键路径上的风险作为最高优先级应对。
除此之外,在核心部分计划出炉以后,我们还要对项目涉及到的其他合作环节,进行全面地规划和安排,为各个阶段设定合理的里程碑节点,确保考虑周全。
听完我的建议之后,小勤再一次改进了她的计划,把其他合作环节也明确地标注出来了,如图所示:
<img src="https://static001.geekbang.org/resource/image/96/55/969a02fcc5ad8b23659978f8efb00c55.jpg" alt="">
明确了和其他合作环节的时间节点之后,我建议你使用**Visio**工具,把整个过程可视化出来,让计划更加直观。
<img src="https://static001.geekbang.org/resource/image/ec/39/ec79d263252f1c47c4e7f8d305515839.png" alt="">
### 雷区3不够准确
修改过几轮计划之后,小勤对于日常排期越发驾轻就熟。她再一次来找我时,情况已经好了很多。不过,她又碰到了一些新问题。
排在首位的是,当计划在执行中出问题的时候,总是会产生很多纠纷,大多是因为大家对一些节点的定义理解不一致,比如什么叫提测,什么叫里程碑完成。
有一次还发生了“乌龙事件”。在临近上线时开发同学跟她说“拜托我从来没说过XX号完成交付我说的是XX号开发完你去看看聊天记录”这让她很是难堪。
对小勤来讲,这时迫切要做的,就是让节点的定义形成共同的标准。这就要引出**做计划的第三个标准动作了,就是定义完成标准**。
简单来讲完成标准就是某时间点需要完成的事项列表或者是应该达到的某项指标特定水平的Bug数量/性能指标等)。进度计划中的任何重要时间节点,都应该有一组完成标准。**越早定义完成标准,计划按照期望完成的概率就越大**。
以最关键的几个常见时间节点为例,完成标准如下:
- **需求/设计确认**:执行所需的需求稿或设计稿已经完成,而且公开评审通过,团队已经准备好要编写产品代码了。值得一提的是,有些团队还会对需求稿或设计稿做一定的要求,比如把未处理的反馈意见数小于多少作为标准。
- **功能完成/提测**所有定义的功能都已经完成比如冒烟测试通过率高于90%团队已经准备好将焦点转移到质量保证上并将所有剩余问题都当作Bug来跟踪。一些质量基础比较好的团队也可以把CI自动回归用例集通过率、静态代码检查分数、单元测试覆盖率等作为更加细节具体的完成标准。
- **里程碑完成**质量已经达到适当水平如不存在P0及P1优先级的Bug可以上线发布或者可以开始下一个里程碑。
### 雷区4没有共识
事先定义完成标准,就好比提前约法三章,会让计划有更准确的指向作用。当我继续深挖小勤的烦恼之后,我发现,她做计划还有个毛病,就是进度计划的文档只在她自己的电脑里,在执行计划的过程中,她只和几个开发口头说过,从来没有以任何公开的方式发布过,甚至都没有发邮件、公告等与全员同步信息,更别说开专门的规划会了。
她只是“做”了一份计划,而不是在“做计划”。这真是个惊人的发现。
其实,做计划本身并不是最难的,真正难的是什么?对焦!**没有达成共识的计划,是不具备任何效力的**。
事实上PM在召开规划会之前排期的内容已经准备得差不多了。在全员规划会上除了对齐信息之外更重要的是当面达成共识这其实也是仪式感和承诺的象征对计划后续的有效执行是至关重要的。因此**达成共识并公开透明,就是做计划的第四个标准动作**。
对于一些小项目,即便没有全员规划会,我也强烈建议你至少要在确认计划之后,向所有项目组成员,包括项目的所有干系人,发送计划邮件,正式周知,这可以尽早地发现共识的偏差。
### 雷区5不够即时
计划就像冰箱里的酸奶,即时的,才是有效的。虽然定计划是个谨慎的过程,但我们也需要看到,计划绝不是固定不变的。
在整个项目周期中,由于随时会可能出现变更,加上对估算的不断细化,做计划永远是个反复修正、渐进明晰的过程,我们要对计划进行持续地跟进与调整**。重要的是,每一次进行调整,都要确保项目中的每个人知道当前的计划是什么,调整计划需要怎样的决策过程,都需要谁参与决策**。而**及时调整变更,就是做计划的第五个标准动作**。
你需要注意的是,与进度计划有关的任何变更,都需要提交给项目管理人员,最好由团队中对应功能小组的成员(该功能模块涉及的策划、设计、开发、测试)及其他相关干系方共同讨论,明确计划变动可能对各方造成的影响,最终做出决策,并公开告知所有项目组成员。
## 总结
好了做计划的五大雷区我都介绍完了针对这些雷区我给出了做计划的5个标准动作分别是**WBS工作分解****识别依赖及各环节关键路径****定义完成标准****达成共识并公开透明****即时调整变更**。最后,针对雷区的特征,我用一张图片来总结一下好计划应该具有的特点。希望你在做计划时,能够对照着下表进行梳理,以免埋下“延期地雷”。
<img src="https://static001.geekbang.org/resource/image/c3/9f/c3666af0b298fcad7fc7e819aca33f9f.jpg" alt="">
## 畅所欲言
如果你是我在这一讲开头提到的那位创业团队的程序员,你被老板要求倒排时间,你会怎么办?请尝试运用今天所学的知识,梳理一下自己的行动方案。
欢迎你畅所欲言,我在留言区等你,也欢迎你把文章分享给你的朋友。