作者都是各自领域经过审查的专家,并撰写他们有经验的主题. 我们所有的内容都经过同行评审,并由同一领域的Toptal专家验证.
科斯塔斯·沃里奥蒂斯的头像

科斯塔斯Voliotis

科斯塔斯是一个项目和产品管理专家,专门为全球竞争激烈的市场提供复杂的技术项目. Costas拥有雅典国立技术大学的博士学位,在他25年的职业生涯中担任过多个高管职位.

专业知识

工作经验

25

分享

IT行业长期存在的状态 人力资源短缺. 资源紧张,截止日期紧迫,诸如“关键时刻会对团队成员产生毁灭性的影响. 与此同时,大约 12%的钱用于投资 在项目中通常会因为糟糕的计划而丢失. 怎么能 项目经理 在一个时间和劳动力已经达到极限的行业,阻止这种损失?

86%的软件团队 从2021年开始采用敏捷实践,这看起来像是 敏捷的解决方案 是唯一的选择. 但是如果不灵活,敏捷就什么都不是:将关键链项目管理(CCPM)计划应用于一个项目 敏捷工作流 是一个很好的方法来识别和解决过程中的瓶颈,同时仍然保持敏捷交付的好处. 本文中的用例将向您展示如何从混合CCPM/敏捷方法中获益.

项目管理中的关键链方法

CCPM是优化资源的最有效的项目管理工具之一. 第一次描述是在以利亚胡. Goldratt 1997年的书 关键链,并建立在他之前的基础上 约束理论. 简而言之,CCPM提供了一个框架来识别和限制项目约束. 您可能听过这样的说法:一条链的强度取决于它最薄弱的环节——ccpm试图将精力集中在威胁整个项目的薄弱环节上.

CCPM处理这些薄弱环节 六个步骤 那。, 综上所述, 提高可用资源的效率,同时确保它们被分配到最需要的地方;

  • 识别关键链. 在任何项目中, 要想项目成功,有一系列的任务是绝对必须完成的. 识别关键链时, 项目经理定义最重要和最耗时的任务, 还有给料链, 关键链依赖于它. 例如, “编写文档”可能是关键链上的一个任务, 而“选择文档软件”可能是馈线链上的一个任务.
  • 识别可能的资源限制. 在给员工分配任务时,考虑一下你可能面临的限制.g.、假期或其他计划休假).
  • 通过消除多任务处理来提高注意力. 让团队成员专注于特定的活动将会带来更高的生产力. 多任务是 已知会阻碍性能,消除它可以让你为每项任务分配更少的时间.
  • 通过假设单任务分配来估算时间. CCPM是在这样的假设下运作的:如果一个团队成员专注于一项任务, 分配给那项任务的时间可以减半. 例如, 如果您对给定任务的初始估计是四天, 消除多任务处理后, 这个时间可以缩短到两天.
  • 增加缓冲区. 重新引入减少的部分时间作为关键任务的缓冲. 使用上面提到的相同的估计示例, 如果你把四天的任务减少到两天, 在计划中再增加一天,以防任务比预期的时间长.
  • 重写你的计划. 利用新的时间框架和缓冲,写一份新的项目计划. 在这个阶段,你应该 水平的资源根据需要重新分配时间、劳动力和工具.

此过程的目标是在对项目结果至关重要的事件和相互依赖关系周围添加缓冲. CCPM使用三种缓冲器来确保及时交付:

  • 项目缓冲区: 在最后一个任务之后和项目完成之前找到的集合时间. 这是大多数关键链活动所具有的偶然性.
  • 喂养缓冲区: 添加到支线链上的任务上的时间,以确保这些任务的延迟不会影响到最重要的活动.
  • 资源缓冲区: 物质资源的储备(例如.e.(工人或设备),如果项目需要,可以根据需要重新分配.

一旦这些步骤都完成了,新计划也写好了,差异应该是显而易见的. 如示例所示 甘特图 下面, 任务分配的时间全面减少, 但缓冲和安全边际已被应用于最重要的任务.

甘特图的两个部分展示了应用关键链项目管理之前和之后的示例项目计划.

合并路线:敏捷和CCPM

CCPM可以被认为是一个优化 瀑布 方法,所以把它应用到敏捷中可能不是很直观. 但是CCPM和敏捷都有相同的目标:通过提高速度和可靠性来确保项目效率. CCPM通过时间线规划在前端进行更改,而 敏捷 在每次冲刺后的整个工作过程中进行改进. 这意味着不难想象一个 混合框架 工作评估在CCPM中完成,工作本身在 敏捷.

把它想象成一个许多人每周做多次的小项目:开车去上班. 在这个场景中,您从一个计划和时间估计开始. 有资源(燃料)和限制(交通). 如果通勤成功,还有一些关键的步骤必须考虑在内, 比如找停车位. 你可能会在计划中为你提前知道的约束建立缓冲, 比如在交通高峰期提前15分钟出门. (“工作驱动”项目的这一部分看起来很像CCPM计划.)

一旦你真的上路了,就会有一些关键的里程碑决定你接下来的选择. 也许你听说高速公路上发生了车祸,所以你找了另一个匝道. 也许一个同事打电话让你搭车, 所以你离开高速公路一会儿,然后在超过你的缓冲时间之前回到高速公路上. 这是流程的敏捷部分. 意外事件(i).e., 需求变化)导致另一条路径, 但是你应该努力尽可能地坚持原来的计划.

几点建议 了解敏捷是怎样的 结合CCPM,但是为了我们的目的,我们将检查一个用例,在这个用例中,CCPM被用来计划一个项目,并且 Scrum 是用来执行它的.

CCPM和敏捷:一个混合用例

一家公司开发的产品已经进入了一个受监管的市场. 法规要求该产品满足高可靠性标准(基于代码质量)。, 安全认证, 以及许可证遵从性. 公司已经决定通过集成一个新的开源软件(OSS)库和一个数据库管理系统(DBMS)来提高产品性能。.

管理团队估计,新的DBMS将改善关键指标,如客户保留成本, 净推荐值, and first-time acceptance rate; with the new DBMS, 这家公司可以胜过竞争对手, 达到计划的收入目标, 并在年底前获得下一轮融资. 开发人员有四个月的时间来完成集成并验证产品一致性. 这种集成将需要与团队的常规维护职责一起进行.

一行列出了OSS集成工作负载的各个阶段,接着一行列出了定期维护的各个阶段.

这个问题

开发团队推断OSS库的代码质量不足以满足高度规范的市场. 最初的集成步骤揭示了几个缺陷和漏洞, 比如硬编码令牌和代码复制. 这大大增加了整个产品的技术债务. 由于该产品的庞大客户群, 开发和测试部门已经在努力跟上即将到来的支持请求.

错误修复和漏洞解决的传入请求显著增加. 及时提交支持单, 但是开发团队没有能力处理额外的请求,也没有足够的经验来使用新集成的DBMS. 额外的挑战进一步加重了本已负担过重的团队的负担.

测试团队 是否正在努力实现一个充分覆盖新集成软件的测试套件, 发布团队缺乏更新文档和产品网络演示的能力. 开发团队缺乏仔细处理新发现问题的可用性, 导致补丁工作或延迟, 这两种方法都不是好的解决方案. 两者都破坏了原计划.

测试团队也会在每个sprint中报告越来越多的问题. 它的待办事项越来越多,集成的完成时间也被推迟了. 业务压力导致项目经理对每个任务在计划日期内的完成进行微观管理, 令人沮丧的人. 团队开始孤立自己,使用 有不好的效果 不得已而为之,结果只会更糟.

解决方案

开发团队现在面临的情况是,他们必须完成一个主要的离散项目, but also address new incoming requests and comply with external regulations; it’s not realistic for them to depend solely on 敏捷还是瀑布 在这种情况下. 因为团队 已经在使用Scrum 功能开发和混合 看板 用于错误修复和客户端定制请求的框架, 他们不愿改变这两种方式. 但, 在业务利益相关者的推动下,使项目与他们的目标(以及紧急的筹款需求)保持一致, 团队决定使用以下四个步骤将CCPM计划添加到他们的工作流程中:

1. 识别关键链

项目经理确定了由八个任务组成的关键路径:

  • 集成操作系统
  • 调整OSS质量(重构以解决缺陷和漏洞)
  • 消除漏洞
  • 实现测试套件
  • 更新文档
  • 运行测试
  • 释放
  • 修复错误(包括客户支持)

2. 识别可能的资源约束

的 constraints are clear: 的 development team lacks the required bandwidth for the tasks required; the code’s lack of maturity adds complexity; and extreme multitasking is cutting into the developers’ availability. 所有团队成员将在项目期间可用, 但我们没有预算再雇新人了.

项目经理进行最初的工作量估计,以确定开发团队的义务. 该团队先前估计了数据库集成所需的工作量, 而是因为直到整合开始,质量问题才显现出来, 估计没有考虑到增加的工作量 重构数据库的代码.

有许多估算工作负载的方法. 例如, 调整OSS质量所需的工作可以使用软件组合分析工具的组合来评估, 代码审查工具, 和安全工具等 修补, SonarQube, Snyk, Coverity扫描, c2m, or Checkmarx. 团队还可以运行技术债务评估套件,如c2m或 CloudZero,或使用 源代码评估套件. 但对于我们的目的来说,实际的方法不如结果重要:

任务

每个Sprint的工作天数

集成操作系统

5

调整OSS质量

5

消除漏洞

5

实现测试套件

2

更新文档

2

运行测试

1

释放

1

修正错误

2

3. 消除多任务处理,估计新的时间框架,增加缓冲

尽管这些任务在概念上是分开的, 在实践中,项目经理可能会一次完成所有这些任务. 根据CCPM的假设,消除多任务处理可以减少一半的必要时间, 项目经理编写新的工作量估算. 他们还为这些关键任务分配缓冲区(通常设置为任务工作量估计的50%), 以防意外延误.

任务

每个Sprint的工作天数

缓冲

集成操作系统

2.5

1.25

调整OSS质量

2.5

1.25

消除漏洞

2.5

1.25

实现测试套件

2

1

编写文档

1

0.5

运行测试

1

0.5

释放

1

0.5

修正错误

1

0.5

4. 重写计划

使用新的工作负载估计和缓冲区, 项目持续时间保持不变,但关键链中的瓶颈压力有所缓解, 使计划的目标更有可能实现.

此时此刻, CCPM计划完成, 并且可以计划新的sprint,以反映CCPM计划的优先级. 开发工作仍在进行中 Scrum进行两周的冲刺,其中包括集成和维护任务. 但是在这些sprint中,CCPM计划的目标为sprint计划提供了信息. 工作时间取自CCPM估算值, 并优先考虑集成任务, 只有在sprint的集成任务完成时才处理维护任务. 当团队的sprint计划中考虑到这些ccpm建立的优先级时, 团队成员应该能够在规定的时间内完成DBMS集成.

管理资源以确保交付

是否用作 独立的方法 或者与敏捷相结合, CCPM是平衡管理团队和开发团队之间压力的有效工具, 和帮助 项目经理 在完成目标的同时,不要让团队不堪重负,也不要过度消耗资源. 当CCPM与敏捷的能力相结合,对意外的开发和客户反馈做出实时反应时, 其结果是一个强大的框架,可以按时在预算范围内交付项目.


关于总博客的进一步阅读:

了解基本知识

  • 关键链项目管理意味着什么?

    关键链项目管理(CCPM)是一种通过识别最重要的任务和可能的资源约束来优化项目资源的瀑布方法, 消除多任务, 并在项目中添加缓冲区.

  • 为什么关键链项目管理很重要?

    关键链项目管理通过减少工作流程中瓶颈点的压力,提供了一种在预算紧张的情况下满足交付期限的方法. 这可以帮助项目经理实现他们的目标,而不会使团队成员负担过重或在交付过程中偷工减料.

  • 关键路径和关键链的区别是什么?

    关键路径管理是项目计划的另一种方法,它也关注于确定交付的最基本任务. 虽然每个方法的执行有几个不同之处, 最明显的是关键链在规划中使用缓冲区.

聘请Toptal这方面的专家.
现在雇佣
科斯塔斯·沃里奥蒂斯的头像
科斯塔斯Voliotis

位于 希腊雅典

成员自 2019年3月22日

作者简介

科斯塔斯是一个项目和产品管理专家,专门为全球竞争激烈的市场提供复杂的技术项目. Costas拥有雅典国立技术大学的博士学位,在他25年的职业生涯中担任过多个高管职位.

Toptal作者都是各自领域经过审查的专家,并撰写他们有经验的主题. 我们所有的内容都经过同行评审,并由同一领域的Toptal专家验证.

专业知识

工作经验

25

世界级的文章,每周发一次.

订阅意味着同意我们的 隐私政策

世界级的文章,每周发一次.

订阅意味着同意我们的 隐私政策

欧博体育app下载

加入总冠军® 社区.