如何使用「关键路径」法对需求进行高效管理?

24 评论 25804 浏览 115 收藏 7 分钟

产品的需求管理是产品经理所担当的责任之一,通过需求的管理能够良好的支持项目经理安排任务以及确保产品的交付进度。关键路径法在需求管理中就是一个很有效的工具。

关键路径法

该方法主要目的是找出在执行过程中的“关键节点”,严格控制进度,同时通过计算float浮时以决定哪些活动具有最低的交付日程弹性(通俗点:延迟时间)。(希望不清楚如何使用的小伙伴们重点详细阅读“案例”章节。)

案例

我们在实际工作中着手进行一个新的产品开发的时候,经常会面对复杂的业务关系,当产品经理将整个产品的需求拆分后,会发现需求与需求之间的关系错综复杂,有的互相影响,有的需求依赖于前置需求的完成。举个最最简单的例子,一个在线2C电商平台,经常会有“购物车”和“工具栏”的需求,很明显,只有购物车的需求开发完成的前提下,才能着手进行开发工具栏需求,此时工具栏的前置需求就是“购物车”。

举一个实际工作案例给小白们讲解下,在实际产品开发中,当拆分完需求、估算完需求工时后(如下图所示)PM就将面临着如何制定以下需求的交付计划:

  • 哪些需求可以有弹性的完成时间(允许合理时间内延迟)?
  • 延迟时间又是多少?
  • 完成整个平台最晚需要多长时间呢?
  • 最早完成的交付时间又是多少?
  • 需求的优先级如何排列等等

这些都是PM需要考虑的,一句话要用科学的分析给出结论,而目前依然有很多团队的PM在制定需求计划的时候是拍脑袋而定,或者后期团队就盲目的采用追加人力的方式解决问题。而关键路径工具可以解决以上问题。

需求示例列表:第一列为需求名称,第三列为需求的完成工时

(1)根据上面的需求列表,首先希望小伙伴根据前置需求的关系,画出需求网络图。

如下所示,标记上需求的名称和该需求的估算工时。

(2)其次以独立需求(无前置需求)开始进行顺向评估。

  • 最早开始时间=前置需求完成时间,标记在需求左上角;
  • 最早完成时间=需求工时+前置完成时间,标记在右上角。如下所示:

可以看出整个产品中需求J最早完成时间为194,是整个需求中工时最大的。换句话说也就是平台完成的最早时间为194,故关键路径为A-F-G-D-J。在项目开发过程中,要着重关注关键路上的需求进度。

(3)确定产品的关键路径后,我们在以反向的视角检视需求网络图,由没有后续需求的所有需求开始进行评估。

  • 需求最晚完成时间=项目最早能完成的工时=后置需求最晚开始时间(标记在需求右下);
  • 最晚开始时间=最晚完成时间-需求估算工时。(标记在需求左下)。

示例(重点),上图中没有后续需求的有E、H、J。这三个需求最早完成的时间为170、177、194.可以推导出E、H、J最晚完成的时间为194.(因为整个项目最早完成时间为194)。E、H、J最晚开始时间分别等于最晚完成时间-所需要的工时,以此类推直到所有需求评估完毕位置。详见下图:(注意点:需求E、H、J的前置需求都是需求D,需求D完成的最晚时间被关键路径上的需求J所决定,故需求D最晚完成时间为需求J的最早开始时间)。

从上图可知,关键路径的特点是一组无buffer时间的需求组成。整个产品开发过程中可能有多条关键路径,但至少存在一条。

(4)浮时:指的是某个需求最早开始时间在不影响整个产品交付的前提下,可以延迟的时间。

也就是说浮时 Total Float=最晚开始时间-最早开始时间=最晚完成时间-最早完成时间。

如下所示:

示例:需求B的浮时=95-90=5 ,可以延迟五个工时。

产品经理依据以上四步使用关键路径工具就可以产品开发中清晰的了解整个产品的关键节点,有助于分配资源,保证产品优质按时交付。有效的解决了案例中的PM需要解决的问题。希望大家不妨在各自的团队中尝试使用下,如果有其他的问题,还希望能与大家一起研究讨论。

 

作者:洲伯通,就职于大连某软件公司电商团队,10年软件开发、设计工作经验,致力于传播优质的专业知识,分享自己在工作中的所见、所思、所得。

本文由 @洲伯通 原创发布于人人都是产品经理。未经许可,禁止转载。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 好像没讲到产品完成的最晚时间这块。

    来自福建 回复
  2. 开发来看pm的流程

    来自福建 回复
  3. 楼主是不是刚考完PMP 😳

    来自广东 回复
    1. 不是~~~ 😄 刚考完NPDP 😄

      来自辽宁 回复
    2. 厉害厉害,分享下经验呗,你是在哪考的啊 方便的话交个朋友啊,微信13049368516

      来自广东 回复
  4. 请教,我是2年产品青年,实际工作中发现最困难是不是组织规划时间,而是时间估计不准。比如某模块功能估计25工时完成,这个时间如何算出来的呢?是否考虑了中途紧急需求插进来等干扰因素?估不准了是不是整个计划就打水漂了?

    来自浙江 回复
    1. 1、我们基本以项目经理(懂开发的人)去评估这个时间,后期就是自己通过项目学习了;多问问为什么需要是这个工时;
      2、如果工时比较紧,我们会通过删减需求的复杂度(例,减少细化的验证功能等),以完成任务为目标,后期再优化;
      3、中途紧急的需求加进来的话,按照紧急程度进行排序,决定是否优先处理,其他需求时间顺延;
      4、The most important,我们不会把时间安排死,会有浮动的时间在,以防止产品出现紧急需求,另外产品经理把规划做好,其实不会太紧急需要多个工时的需求;
      本人愚见,希望有所帮助。

      来自山东 回复
  5. E的左下角应该是173,而不是123

    来自江苏 回复
    1. 灰常感谢指摘!

      来自辽宁 回复
  6. 为什么不用甘特图来管理呢,更直观

    来自江苏 回复
    1. 😄😄😄 举个例子喝水可用杯子喝,也可拿碗喝 ,还可以打瓶、水袋喝等等,工具没有好坏,解决问题就行,如果甘特图能估算出需求最晚开始、最晚完成、最早开始、最早完成也可以使用哦~~ 因人而异

      来自辽宁 回复
  7. 请教,在评估关键路径上的需求进度的时候,是否需要考量开发人员的数量?开发人员数量怎么结合进去?

    来自北京 回复
    1. 个人认为需要考虑投入的资源,评估人力资源的步骤在关键路径描绘前已经确定,至于说如何评估每个需求的投入人员数量,我建议使用德尔菲方法。从团队中分别选3-4个不同技术能力的人员进行评估,然后综合判定该需求的所用工数和投入资源数量

      来自辽宁 回复
  8. 你这个方法和土木工程管理中项目进度管理很类似。

    来自广东 回复
    1. 额,方法不限于行业~

      来自辽宁 回复
  9. 评论竟然没有删除键……上面一条写错了,重新写一下:为什么整个产品中需求J最早完成时间为194,不是174?

    回复
    1. 因为需求j 估算的工时是45 啊,最早完成工时194,是所有需求中完成时间最长的,也就说只有j结束了 整个项目才完成 所以….

      回复
    2. 图一和图二是不是写错了,里面J的估算时间是30?

      回复
  10. 为什么整个产品中需求J最早完成时间为194?而不是164?

    回复
    1. 需求J的估算工数:45 给您带来困惑非常抱歉!

      来自辽宁 回复
  11. 哈哈,我工作第一年就是这么算的 😆

    来自广东 回复
    1. 嗯 666 有其他好方法可以分享

      回复
  12. 方法论有助于让我这种刚入行的小白PM理清思路,谢谢楼主分享!很实用!

    来自北京 回复
    1. 谢谢 能帮助别人就很快乐

      回复