authors are vetted experts in their fields and write on topics in which they have demonstrated experience. 我们所有的内容都经过同行评审,并由同一领域的Toptal专家验证.
Costas is a project and product management expert who specializes in sophisticated technology projects for highly competitive markets around the world. Costas holds a doctorate degree from the National Technical University of Athens and has held multiple C-suite positions during his 25-year career.
IT行业长期存在的状态 人力资源短缺. 资源紧张,截止日期紧迫,诸如“关键时刻会对团队成员产生毁灭性的影响. 与此同时,大约 12%的钱用于投资 在项目中通常会因为糟糕的计划而丢失. 怎么能 项目经理 在一个时间和劳动力已经达到极限的行业,阻止这种损失?
与 86%的软件团队 从2021年开始采用敏捷实践,这看起来像是 敏捷的解决方案 是唯一的选择. 但 敏捷 is nothing if not flexible: Applying critical chain project management (CCPM) planning to an 敏捷工作流 is a great way to identify and resolve chokepoints in processes while still keeping the benefits of 敏捷 delivery. 的 use case in this article will show you how to reap the benefits of a hybrid CCPM/敏捷 approach.
CCPM是优化资源的最有效的项目管理工具之一. 第一次描述是在以利亚胡. Goldratt 1997年的书 关键链,并建立在他之前的基础上 约束理论. 简而言之,CCPM提供了一个框架来识别和限制项目约束. You’ve probably heard the saying 那 a chain is only as strong as its weakest link—CCPM seeks to concentrate efforts on the weak links 那 threaten the whole project.
CCPM处理这些薄弱环节 六个步骤 那, 综上所述, improve the efficiency of available resources while making sure they’re assigned where they’re most needed:
的 goal of this process is to add buffers around events and interdependencies 那 are vital to project outcomes. CCPM使用三种缓冲器来确保及时交付:
一旦这些步骤都完成了,新计划也写好了,差异应该是显而易见的. 如示例所示 甘特图 下面, 任务分配的时间全面减少, 但缓冲和安全边际已被应用于最重要的任务.
CCPM可以被认为是一个优化 瀑布 方法,所以把它应用到敏捷中可能不是很直观. 但 both CCPM and 敏捷 have the same goal: to ensure project efficiency by improving speed and reliability. CCPM通过时间线规划在前端进行更改,而 敏捷 在每次冲刺后的整个工作过程中进行改进. 这意味着不难想象一个 混合框架 工作评估在CCPM中完成,工作本身在 敏捷.
把它想象成一个许多人每周做多次的小项目:开车去上班. 在这个场景中,您从一个计划和时间估计开始. 有资源(燃料)和限制(交通). 有 also critical steps 那 have to be accounted for if the commute is going to be successful, 比如找停车位. 你可能会在计划中为你提前知道的约束建立缓冲, 比如在交通高峰期提前15分钟出门. (“工作驱动”项目的这一部分看起来很像CCPM计划.)
Once you’re actually on the road, there are critical milestones 那 determine your ensuing choices. 也许你听说高速公路上发生了车祸,所以你找了另一个匝道. 也许一个同事打电话让你搭车, 所以你离开高速公路一会儿,然后在超过你的缓冲时间之前回到高速公路上. 这是流程的敏捷部分. 意外事件(i).e., 需求变化)导致另一条路径, 但是你应该努力尽可能地坚持原来的计划.
有 几点建议 了解敏捷是怎样的 结合CCPM,但是为了我们的目的,我们将检查一个用例,在这个用例中,CCPM被用来计划一个项目,并且 Scrum 是用来执行它的.
一家公司开发的产品已经进入了一个受监管的市场. Regulations require 那 this product meet high standards for reliability (based on code quality), 安全认证, 以及许可证遵从性. 的 company has decided to improve product performance by integrating a new open-source software (OSS) library with a database management system (DBMS).
的 management team estimates 那 the new DBMS will improve key metrics like client retention cost, 净推荐值, and first-time acceptance rate; with the new DBMS, 这家公司可以胜过竞争对手, 达到计划的收入目标, 并在年底前获得下一轮融资. 开发人员有四个月的时间来完成集成并验证产品一致性. This integration will need to take place alongside the team’s regular maintenance responsibilities.
的 development team has inferred 那 the code quality of the OSS library is not sufficient for a highly regulated market. 最初的集成步骤揭示了几个缺陷和漏洞, 比如硬编码令牌和代码复制. 这大大增加了整个产品的技术债务. 由于该产品的庞大客户群, the development and test departments are already struggling to keep up with incoming support requests.
错误修复和漏洞解决的传入请求显著增加. 及时提交支持单, but the development team doesn’t have the capacity to handle the extra requests or adequate experience with the newly integrated DBMS. 额外的挑战进一步加重了本已负担过重的团队的负担.
的 测试团队 是否正在努力实现一个充分覆盖新集成软件的测试套件, and the release team lacks the capacity to update documentation and the product’s web presentation. 开发团队缺乏仔细处理新发现问题的可用性, 导致补丁工作或延迟, 这两种方法都不是好的解决方案. 两者都破坏了原计划.
测试团队也会在每个sprint中报告越来越多的问题. 它的待办事项越来越多,集成的完成时间也被推迟了. Business pressure leads the project manager to micromanage the completion of each task on the scheduled date, 令人沮丧的人. 团队开始孤立自己,使用 有不好的效果 不得已而为之,结果只会更糟.
开发团队现在面临的情况是,他们必须完成一个主要的离散项目, but also address new incoming requests and comply with external regulations; it’s not realistic for them to depend solely on 敏捷还是瀑布 在这种情况下. 因为团队 已经在使用Scrum 功能开发和混合 看板 用于错误修复和客户端定制请求的框架, 他们不愿改变这两种方式. 但, pushed by business stakeholders to align the project with their goals (and urgent fundraising needs), 团队决定使用以下四个步骤将CCPM计划添加到他们的工作流程中:
1. 识别关键链
项目经理确定了由八个任务组成的关键路径:
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. 所有团队成员将在项目期间可用, 但我们没有预算再雇新人了.
的 project manager conducts an initial workload estimation to determine the obligations of the development team. 该团队先前估计了数据库集成所需的工作量, 而是因为直到整合开始,质量问题才显现出来, 估计没有考虑到增加的工作量 重构数据库的代码.
有许多估算工作负载的方法. 例如, the effort needed to align the OSS quality could be assessed using a combination of software composition analysis tools, 代码审查工具, 和安全工具等 修补, SonarQube, Snyk, Coverity扫描, c2m, or Checkmarx. 团队还可以运行技术债务评估套件,如c2m或 CloudZero,或使用 源代码评估套件. 但对于我们的目的来说,实际的方法不如结果重要:
任务 | 每个Sprint的工作天数 |
集成操作系统 | 5 |
调整OSS质量 | 5 |
消除漏洞 | 5 |
实现测试套件 | 2 |
更新文档 | 2 |
运行测试 | 1 |
释放 | 1 |
修正错误 | 2 |
3. 消除多任务处理,估计新的时间框架,增加缓冲
尽管这些任务在概念上是分开的, 在实践中,项目经理可能会一次完成所有这些任务. Operating under CCPM’s assumption 那 the elimination of multitasking reduces necessary time by half, 项目经理编写新的工作量估算. 他们还为这些关键任务分配缓冲区(通常设置为任务工作量估计的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. 重写计划
使用新的工作负载估计和缓冲区, the project duration remains about the same but the pressure on bottlenecks in the critical chain is relaxed, 使计划的目标更有可能实现.
此时此刻, CCPM计划完成, 并且可以计划新的sprint,以反映CCPM计划的优先级. 开发工作仍在进行中 Scrum进行两周的冲刺,其中包括集成和维护任务. 但是在这些sprint中,CCPM计划的目标为sprint计划提供了信息. 工作时间取自CCPM估算值, 并优先考虑集成任务, 只有在sprint的集成任务完成时才处理维护任务. 当团队的sprint计划中考虑到这些ccpm建立的优先级时, 团队成员应该能够在规定的时间内完成DBMS集成.
是否用作 独立的方法 或者与敏捷相结合, CCPM是平衡管理团队和开发团队之间压力的有效工具, 和帮助 项目经理 在完成目标的同时,不要让团队不堪重负,也不要过度消耗资源. When CCPM is combined with 敏捷’s ability to react in real time to unexpected developments and customer feedback, 其结果是一个强大的框架,可以按时在预算范围内交付项目.
Critical chain project management (CCPM) is a 瀑布 method for optimizing resources in projects by identifying the most essential tasks and likely resource constraints, 消除多任务, 并在项目中添加缓冲区.
Critical chain project management offers a way to meet delivery deadlines on a tight budget by reducing the pressure on chokepoints in the workflow. This helps 项目经理 meet their goals without overtaxing team members or cutting corners on delivery.
Critical path management is another method for project planning 那 also focuses on identifying the most essential tasks for delivery. 虽然每个方法的执行有几个不同之处, 最明显的是关键链在规划中使用缓冲区.
希腊雅典
2019年3月22日成为会员
Costas is a project and product management expert who specializes in sophisticated technology projects for highly competitive markets around the world. Costas holds a doctorate degree from the National Technical University of Athens and has held multiple C-suite positions during his 25-year career.
世界级的文章,每周发一次.
世界级的文章,每周发一次.