项目进度管理(4-1)关键链法

1 关键链法产生的背景

关键链法(Critical Chain Method,CCM)起源于20世纪80年代,是由Eliyahu M. Goldratt在他的著作《关键链》("Critical Chain")中首次提出和阐述的。Eliyahu M. Goldratt是以色列制造业界的著名人物,也是一位著名的管理学家和作家。他是“约束理论”(Theory of Constraints,TOC)的创始人之一,关键链法是约束理论在项目管理领域的应用之一。

Goldratt在他的著作中指出,传统的项目管理方法,尤其是关键路径法(Critical Path Method,CPM)在解决资源约束和不确定性问题上存在局限性。他认为传统方法中的人为保守估算和缺乏对资源约束的考虑会导致项目的延期和资源浪费。为了应对这些问题,他提出了关键链法作为一种改进的项目管理方法。

关键链法的核心思想是通过资源约束和缓冲管理,减少资源约束可能导致的项目延期风险。Goldratt强调了乐观估算的重要性,鼓励项目团队在考虑资源约束的情况下,对任务的时长进行更积极的估算。他还引入了项目缓冲和资源缓冲的概念,以应对不可预测的延误。

随着时间的推移,关键链法逐渐得到了业界的关注和应用。它在资源约束和不确定性较高的项目中,特别是在复杂的工程和创新领域,显示出了明显的优势。关键链法的理念逐渐演化和完善,被广泛应用于项目管理实践中,为项目管理者提供了一种更具适应性和效率的方法。

总结下来,关键链法的产生背景与传统的项目管理方法在解决资源约束和项目延期问题上的局限性有关。主要有:

  • 资源约束问题: 传统的项目管理方法,如关键路径法(Critical Path Method,CPM),通常不考虑资源的有限性和瓶颈。这导致在资源受限的情况下,项目进度可能会受到影响,因为任务无法同时进行。传统方法可能导致任务在排程时受到资源瓶颈的限制,从而导致项目延期。
  • 人为保守估算: 在传统方法中,为了防止可能的延误,项目管理者倾向于给任务提供保守的时长估算。这样的估算可能过于悲观,导致了任务间的过度缓冲,浪费了潜在的资源和时间。
  • 不确定性: 许多项目面临不确定性和变化,这可能导致任务的实际完成时间与预期有很大差异。传统方法无法灵活应对这种不确定性,导致了项目的不可预测性。

关键链乏旨在解决资源约束和不确定性带来的问题,强调资源的有限性和瓶颈,优化资源的利用,减少人为保守估算带来的延误,从而提高项目的进度控制能力。它的核心思想是通过优化资源约束下的任务顺序、任务时长估算和缓冲管理,以更有效地应对项目管理中的挑战。

2 理解关键链法及其核心概念

关键链法(Critical Chain Method,CCM)是一种项目管理方法,旨在优化项目进度管理,特别是在资源约束和不确定性环境下。它在项目管理中引入了一系列概念,以解决传统关键路径法可能遇到的问题,如资源浪费、人为保守估算等。核心概念主要有:

  • 关键链任务: 在关键链法中,关键链任务是指那些受资源约束影响的任务序列。关键链任务决定了整个项目的完成时间,因为它们受到资源瓶颈的制约。关键链任务是项目中最重要的任务,需要特别关注。
  • 资源约束: 关键链法强调资源的有限性和瓶颈,即在项目中可能存在资源不足的情况。这些资源约束可能来自人力、设备、材料等方面,它们会影响任务的执行时间和项目的进度。
  • 缓冲管理: 关键链法引入了两种类型的缓冲,即项目缓冲和资源缓冲。项目缓冲是用来保护项目的整体完成时间,而资源缓冲是用来保护关键链任务之前的时间,以应对资源约束可能导致的延迟。
  • 乐观估算: 关键链法鼓励使用更乐观的任务时长估算,即在资源得到合理分配和支持的情况下,任务可以更快地完成。这有助于减少人为保守估算可能导致的项目延期。
  • 任务优先级: 关键链法强调关键链任务的优先处理,确保它们得到足够的资源支持。其他非关键链任务的时长则可以相对灵活,以适应资源约束。

通过结合以上核心概念,关键链法试图在项目管理中解决资源约束和不确定性的问题,以提高项目的进度控制和成功交付的概率。它关注资源的合理分配、任务优先级和乐观估算,以最大程度地减少资源约束可能带来的影响。接下来主要针对 资源约束、缓冲管理、乐观估算法进行更详细的解释。

2.1 关键链任务

2.1.1 识别关键链任务

识别受资源约束的任务序列,即关键链任务,是关键链法(Critical Chain Method,CCM)中的重要步骤。这些任务是影响整个项目进度的瓶颈,关键链法的目标是优化它们的排程,以提高项目效率。以下是识别关键链任务的步骤:

  1. 制定任务网络: 创建一个任务网络图,显示任务之间的依赖关系和时间估算。这可以是一个甘特图、项目网络图等。
  2. 识别资源限制: 确定项目中资源的有限性和瓶颈。哪些资源在项目中是稀缺的?哪些资源可能会限制任务的并行执行?
  3. 考虑资源约束: 根据资源限制,从任务网络图中找出那些无法并行执行的任务。这些任务可能因为资源不足而需要等待,成为关键链任务。
  4. 识别最长路径: 在资源约束的条件下,找出整个项目网络中最长的路径,即关键路径。这条路径上的任务通常是关键链任务。
  5. 考虑资源可用性: 在资源约束下,对每个关键路径上的任务考虑实际资源的可用性,以确定是否有其他任务受到资源限制而成为关键链任务。
  6. 考虑资源的优先级: 有些资源可能比其他资源更稀缺,因此它们的瓶颈效应更大。考虑资源的优先级,将更关键的资源引导到关键链任务上。
  7. 进行仿真和分析: 使用仿真工具或项目管理软件,在不同资源限制和排程情况下分析项目的进度。观察哪些任务的延误对整个项目产生了最大影响。
  8. 实际执行情况: 在项目实施过程中,关注任务的实际进展情况。有时资源限制可能会出现在项目执行过程中,因此需要随时调整关键链任务。

总之,识别受资源约束的任务序列,即关键链任务,需要综合考虑资源限制、依赖关系、时间估算等因素。通过合理的分析和实际情况的观察,可以准确定位并优化关键链任务,以提高项目的进度和效率。接下来以案例的形式解读下 具体如何识别:

假设一个公司正在进行新产品的开发项目,需要完成以下几个子任务:A、B、C、D、E、F。每个子任务的预计完成时间和任务关系图如下:

在这个案例中,我们将根据资源约束和依赖关系来识别关键链任务。步骤如下:

@1 制定任务网络: 首先,创建一个任务网络图,显示任务之间的依赖关系。在这个案例中,我们假设任务的依赖关系如下:

  • A -> B -> C -> F
  • A -> D -> E -> F

@2 识别资源限制: 假设在项目中,资源B和E是稀缺的,可能会限制任务的并行执行。

@3 考虑资源约束: 考虑资源B和E的稀缺性,我们可以看到任务B和任务E是无法并行执行的,因为它们共享同一台资源。因此,任务B和任务E是受资源约束的关键链任务。

@4 识别最长路径: 在资源约束的情况下,从任务A开始,我们可以看到最长的路径是:A -> B -> C -> F,它的预计完成时间为5 + 3 + 6 + 2 = 16天。

@5 考虑资源可用性: 由于资源B和E在关键链路径上,我们需要考虑它们的实际可用性,以确定是否有其他任务受到资源限制。假设资源B和E在同一时间只能使用一台,我们可以看到资源约束并没有导致其他任务成为关键链任务。

说明:这里是以一个简化的项目的形式便于大家理解,在实际项目中,还要综合考虑资源的优先级、进行仿真和分析,以及实际执行情况分析等因素,以便更准确地识别关键链任务,优化项目排程,提高项目效率。

通过上述步骤,我们成功地识别出了关键链任务:B和E。这些任务受到资源约束的影响,可能会影响整个项目的进度。在这种情况下,关键链法的优化策略将集中在这些任务上,以提高资源的利用率和整体项目的效率,从而确保项目按时交付。

2.2.2 关键链任务在项目进度中的关键作用

关键链任务在项目进度中的关键作用是决定整个项目的最短完成时间,它们是资源约束下的瓶颈,优化它们的排程可以最大程度地提高项目效率。

2.2 资源约束和缓冲管理的理解

这里以案例的形式来解释资源约束和缓冲管理的概念。考虑一个软件开发项目,需要完成以下几个子任务:A、B、C、D、E、F。每个子任务的预计完成时间和任务关系图如下:

对于这个项目来说,什么是资源约束呢?

在这个项目中,假设任务 C 和任务 E 需要特定的软件环境,而软件环境的资源有限。这意味着在同一时间只能有一个任务使用该资源。因此,任务 C 和任务 E 是受资源约束的关键链任务。此时任务关系图中如果先C后E则有(工期23天):

如果先E后C则有(工期24天):

对于这个项目来说,什么是缓冲管理呢?

在关键链法中,引入了项目缓冲和资源缓冲的概念,以应对不可预测的延误和风险。项目缓冲是用来保护项目的整体完成时间,而资源缓冲是用来保护关键链任务之前的时间。假设在这个项目中,项目的整体完成时间需要在27天内完成。为了保证项目按时交付,我们可以设置3天的项目缓冲。受资源约束的关键链任务 C 预计需要6天完成,但为了避免意外导致的资源不足情况,我们可以设置2天的资源缓冲,以应对可能的延误。类似地,关键链任务 E 需要7天完成,我们可以设置1天的资源缓冲,共3天缓冲期。

在资源约束下(针对先C后E的情况,另一种分析也类似),如果任务 C 实际完成所需的时间超过了估算的6天,项目缓冲和资源缓冲可以帮助我们在不影响整体项目完成时间的情况下进行调整。例如,如果任务 C 实际需要7天完成,那么资源缓冲会被消耗1天,但整体项目完成时间仍然在项目缓冲范围内。但如果C实际需要超过8天,也就是2天的缓冲区用完了,那么就会消耗任务E的缓冲区。如果E的缓冲区也被消耗完了,那么此时就需要采取积极的措施来应对可能的延误风险,以确保项目能够按时完成,比如 任务加速 或者 应急计划等。

通过资源约束和缓冲管理,关键链法试图最大程度地优化资源利用,提高项目的进度控制能力,并确保项目能够按时交付。这种方法在资源有限和不确定性较高的项目中尤其有价值。

2.3 乐观估算法

乐观估算法旨在解决传统项目管理中任务时长估算过于保守导致资源浪费和项目延误的问题。

2.3.1 乐观估算法的背景和起源

传统项目管理方法通常倾向于使用保守估算,以考虑不确定性和风险,这可能导致任务间的过度缓冲和资源的浪费。项目管理者可能会过于谨慎地估算任务的时长,以确保项目能够按时交付。然而,这样的估算可能导致项目变得低效,资源利用不充分,而且整个项目可能会受到不必要的延误。

关键链法的创始人之一,以色列制造业家Eliyahu M. Goldratt在他的著作《关键链》("Critical Chain")中首次提出了乐观估算的概念。Goldratt认为,传统估算方法的保守性是导致项目管理问题的一个关键因素,它使项目变得缓慢、低效,并可能导致任务浪费时间。因此提出了乐观估算法。

2.3.2 乐观估算法的核心思想

乐观估算的核心思想是为任务分配更接近实际情况的、乐观的时长估算,而不是过于保守的估算。这样一来,任务在排程时会更合理地利用资源,减少任务之间的不必要缓冲时间。乐观估算考虑到任务完成可能比预期更快,从而提高资源的利用率和整个项目的效率。

2.3.3 乐观估算法的评估

在应用乐观估算时,项目管理者需要与团队合作,了解任务的实际完成时间,并根据实际情况进行估算。这需要基于团队的能力、资源的可用性和实际执行情况来确定任务的时长。通过这种方式,可以将项目的时间线更接近实际可能的情况,避免了过于保守的估算。

乐观估算法旨在通过更接近实际情况的任务时长估算,减少不必要的缓冲时间,提高资源的利用率,从而优化项目进度并应对不确定性。

2.4 任务优先级设置的原则

虽然每个项目的优先级设置可能因项目特性而异,但设置优先级的基本原则是普适的,因为它们适应于不同项目的特定情况。任务设置原则总结如下:

  • 关键链任务优先:在资源分配和任务调度中,将关键链任务设置为最高优先级。这些任务是项目进度的瓶颈,优化它们的排程可以最大程度地提高项目效率。
  • 资源约束考虑:考虑资源的有限性和稀缺性,将资源优先分配给关键链任务。确保这些任务得到充分支持,以保证项目按时交付。
  • 依赖关系和专业能力: 考虑任务之间的依赖关系,优先处理前置任务,以确保后续任务能够按计划进行。同时,将资源分配给与任务要求最匹配的专业能力,以提高任务的效率和质量。
  • 实时调整和沟通: 随着项目进展,随时根据实际情况调整资源分配和任务优先级。跨部门合作和沟通是确保优先级设置成功的关键因素。

3 实战案例-新产品开发项目的关键链法应用

假设一个公司计划开发一款新产品,涉及以下子任务:A、B、C、D、E、F。每个子任务的预计完成时间和资源需求如下:

  • A: 设计产品(预计3天,需要设计师资源)
  • B: 制造原型(预计5天,需要系统架构师资源)
  • C: 测试原型(预计4天,需要测试人员资源)
  • D: 优化设计(预计2天,需要设计师资源)
  • E: 批量生产(预计6天,需要系统架构师资源)
  • F: 市场推广(预计3天,需要市场专员资源)

任务关系图如下所示:

资源约束:公司只有一名设计师、一名系统架构师、一名测试人员和一名市场专员。在这个案例中,我们将看看如何应用关键链法来优化项目排程。步骤如下:

  1. 识别关键链任务: 根据资源约束和依赖关系,我们确定关键链任务。任务B和任务E由于需要系统架构师资源,成为关键链任务。
  2. 优化资源分配: 由于只有一名系统架构师,将系统架构师优先分配给关键链任务B和E,确保它们能够得到充分支持。
  3. 创建缓冲区: 在关键链任务B和E的后面,创建项目缓冲区,以便处理不可预测的延误。假设缓冲时间为2天。
  4. 设置资源缓冲: 考虑系统架构师资源的稀缺性,设置资源缓冲为1天,以确保关键链任务B和E受到足够的支持。
  5. 任务优化: 使用乐观估算法来确定实际的任务期限。假设任务B和任务E的乐观估算时间分别为4天和5天。考虑资源约束和资源缓冲,确定任务的开始时间和完成时间。

通过以上步骤,关键链法应用于新产品开发项目中,我们可以确保关键链任务(B和E)得到优先处理,系统架构师资源得到最大化利用,同时设置了缓冲区来应对不可预测的延误。这将使项目能够更有弹性地应对变化,提高项目的效率,并确保项目按时交付。

4 关键链法核心理念和应用方法总结

4.1 关键链法核心理念:

  • 关键链任务: 确定项目中资源约束下的关键链任务,它们是项目进度的瓶颈,决定整个项目的完成时间。
  • 资源约束: 优先考虑资源的有限性和稀缺性,将资源分配给关键链任务,以最大化项目效率。
  • 资源缓冲和项目缓冲: 创建缓冲区来应对不可预测的延误,使项目保持弹性。资源缓冲用于保护关键链任务,项目缓冲用于保护整个项目进度。
  • 任务优化: 使用乐观估算法来确定任务的实际期限,考虑资源约束和缓冲时间。确保任务在资源约束下能够及时完成。

4.2 关键链法应用方法

  • 识别关键链任务: 根据资源约束和依赖关系,确定关键链任务,它们是项目进度的关键瓶颈。
  • 优化资源分配: 将资源优先分配给关键链任务,确保它们得到充分支持,以保证项目按时交付。
  • 创建缓冲区: 在关键链任务后面创建项目缓冲区,以便应对不可预测的延误。
  • 设置资源缓冲: 针对关键链任务,设置资源缓冲,以确保它们受到足够的支持,避免资源约束影响进度。
  • 任务优化和实时调整: 使用乐观估算法确定任务的实际期限,考虑资源约束和缓冲时间。随着项目进展,根据实际情况灵活调整任务。

通过将这些核心理念和应用方法结合起来,关键链法能够帮助项目团队应对资源限制和不确定性,提高项目效率,确保项目按时交付。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/107109.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

玩转git第7章节,本地git的用户名和密码的修改

一 本地git的用户名和密码 1.1 本地用户名和密码修改 1.本地用户名修改 2.凭据管理 3.进行修改密码 1.2 代码提交操作

ChatGPT在医疗系统的应用探索动态

注意:本信息仅供参考,发布该内容旨在传递更多信息的目的,并不意味着赞同其观点或证实其说法。 生成式人工智能,如OpenAI开发的ChatGPT,被认为是可以颠覆医疗行业的工具。尽管该技术刚刚起步,但已有许多医…

接口测试总结分享(http与rpc)

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。 一、了解一下HTTP与RPC 1. HTTP(H…

SpringCloud超详细教程

1.认识微服务 随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢? 1.0.学习目标 了解微服务架构的优缺点 1.1.单体架构 单体架构:将业务的所有…

C语言(第三十二天)

1. 递归是什么&#xff1f; 递归是学习C语言函数绕不开的一个话题&#xff0c;那什么是递归呢&#xff1f; 递归其实是一种解决问题的方法&#xff0c;在C语言中&#xff0c;递归就是函数自己调用自己。 写一个史上最简单的C语言递归代码&#xff1a; #include <stdio.h>…

二、前端监控之方案调研

前端监控体系 一个完整的前端监控体系包括了日志采集、日志上报、日志存储、日志切分&计算、数据分析、告警等流程。 对于一名前端开发工程师来说&#xff0c;也就意味着工作不再局限于前端业务的开发工作&#xff0c;需要有Nginx服务运维能力、实时/离线分析能力、Node应…

常见的时序数据库

1.概念 时序数据库全称为时间序列数据库。时间序列数据库指主要用于处理带时间标签&#xff08;按照时间的顺序变化&#xff0c;即时间序列化&#xff09;的数据&#xff0c;带时间标签的数据也称为时间序列数据。 时间序列数据主要由电力行业、化工行业、气象行业、地理信息…

Redis通信协议

文章目录 Redis通信协议RESP协议数据类型 模拟Redis客户端 Redis通信协议 RESP协议 Redis是一个CS架构的软件&#xff0c;通信一般分为两步(不包含pipeline和PubSub)&#xff1a; 客户端(client)向服务端(server)发送一条命令。服务器解析并执行命令&#xff0c;返回响应结果…

远程调试环境配置

远程调试环境配置 前期准备ssh连接 前期准备 安装vscode中的两个扩展包php-debug和remote-ssh 然后安装与PHP版本对应的xdebug 访问xdebug的官方网页&#xff0c;复制自己的phpinfo源码到方框中&#xff0c;再点击Analyse ssh连接 输入&#xff0c;你想要远程连接的主机i…

Unity中的数学基础——贝塞尔曲线

一&#xff1a;前言 一条贝塞尔曲线是由一组定义的控制点P0到 Pn&#xff0c;n1为线性&#xff0c;n2为二次......第一个和最后一个控制点称为起点和终点&#xff0c;中间的控制点一般不会位于曲线上 获取两个点之间的点就是通过线性插值&#xff08; Mathf.Lerp&#xff09…

分布式 - 服务器Nginx:一小时入门系列之TCP反向代理和负载均衡

文章目录 1. HTTP反向代理和TCP反向代理2. http 块和 stream 块3. TCP反向代理配置4. TCP 负载均衡 1. HTTP反向代理和TCP反向代理 Nginx可以作为HTTP反向代理和TCP反向代理。 HTTP反向代理是指Nginx作为Web服务器的代理服务器&#xff0c;接收客户端的HTTP请求&#xff0c;然…

计算机竞赛 基于大数据的社交平台数据爬虫舆情分析可视化系统

文章目录 0 前言1 课题背景2 实现效果**实现功能****可视化统计****web模块界面展示**3 LDA模型 4 情感分析方法**预处理**特征提取特征选择分类器选择实验 5 部分核心代码6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于大数据…

C语言练习4(巩固提升)

C语言练习4 选择题 前言 面对复杂变化的世界&#xff0c;人类社会向何处去&#xff1f;亚洲前途在哪里&#xff1f;我认为&#xff0c;回答这些时代之问&#xff0c;我们要不畏浮云遮望眼&#xff0c;善于拨云见日&#xff0c;把握历史规律&#xff0c;认清世界大势。 选择题 …

新型数据中心网络安全体系研究

当前&#xff0c;新型基础设施建设已上升至国家战略&#xff0c;被赋予了数字化、智能化的新意义。作为算力基础设施&#xff0c;新型数据中心是信息基础设施中的重要内容&#xff0c;是数字政府、数字经济的“信息底座”&#xff0c;是未来引领数字经济发展的关键载体和支柱&a…

java八股文面试[多线程]——sleep wait join yield

sleep和wait有什么区别 sleep 方法和 wait 方法都是用来将线程进入阻塞状态的&#xff0c;并且 sleep 和 wait 方法都可以响应 interrupt 中断&#xff0c;也就是线程在休眠的过程中&#xff0c;如果收到中断信号&#xff0c;都可以进行响应并中断&#xff0c;且都可以抛出 In…

npm常用命令 + 前端常用的包管理工具 以及 npm淘宝镜像配置等

npm常用命令 前端常用的包管理工具 以及 npm淘宝镜像配置等 1. 前言1.1 NodeJs的下载安装1.2 windows上1.3 常用包管理工具 2. npm2.1 npm 的安装2.2 npm初始化包2.3 npm 安装、卸载包2.3.1 非全局安装2.3.1.1 单个包的安装2.3.1.1.1 默认版本安装2.3.1.1.2 指定版本安装 2.3.…

2022年03月 C/C++(四级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题&#xff1a;拦截导弹 某国为了防御敌国的导弹袭击&#xff0c; 发展出一种导弹拦截系统。 但是这种导弹拦截系统有一个缺陷&#xff1a; 虽然它的第一发炮弹能够到达任意的高度&#xff0c;但是以后每一发炮弹都不能高于前一发的高度。 某天&#xff0c; 雷达捕捉到敌国的…

yolov8热力图可视化

安装pytorch_grad_cam pip install grad-cam自动化生成不同层的bash脚本 # 循环10次&#xff0c;将i的值从0到9 for i in $(seq 0 13) doecho "Running iteration $i";python yolov8_heatmap.py $i; done热力图生成python代码 import warnings warnings.filterwarn…

同源策略以及SpringBoot的常见跨域配置

先说明一个坑。在跨域的情况下&#xff0c;浏览器针对复杂请求&#xff0c;会发起预检OPTIONS请求。如果服务端对OPTIONS进行拦截&#xff0c;并返回非200的http状态码。浏览器一律提示为cors error。 一、了解跨域 1.1 同源策略 浏览器的同源策略&#xff08;Same-Origin Po…

Django学习笔记-AcApp端授权AcWing一键登录

笔记内容转载自 AcWing 的 Django 框架课讲义&#xff0c;课程链接&#xff1a;AcWing Django 框架课。 AcApp 端使用 AcWing 一键授权登录的流程与之前网页端的流程一样&#xff0c;只有申请授权码这一步有一点细微的差别&#xff1a; 我们在打开 AcApp 应用之后会自动向 AcW…