基于关键链的软件项目进度风险管理.doc
基于关键链的软件项目进度风险管理 摘要:文中讨论基于关键链技术的软件项目进度风险管理方法。基于软件过程工作分解结构,预测各项工作在理想工作条件下的工期,考虑人力资源的约束与冲突,建立项目的关键链。通过对各项工作的风险分析,为关键链、非关键链分别设置项目缓冲、输入缓冲,通过对缓冲区的监控来进行风险的控制和管理。 关键词:软件项目;进度风险管理;关键链 引言 风险管理被认为是减少软件项目失败的一种重要手段。所谓风险,是指未来可能发生的损失,主要有两个方面的属性:发生概率和发生后果。软件项目的风险主要是涉及阻碍软件项目的计划费用、在计划时 间内达到计划系统功能等项目内外各方面的因素。JanneRopponen 将软件开发风险划分为时间进度风险、功能风险、合同风险、需求管理风险、资源风险和人员管理风险等六大部分。本文讨论软件项目时间进度风险的管理。 传统的时间进度计划是基于工作分解结构之上,通过各工作的时间估计,构建计划网络,寻找时间关键路径,进行蒙特卡罗模拟等手段,获得工期的概率分布,以此来估计进度风险。而 Goldratt 提出的关键链管理方法,用关键链代替 PERT/CPM 中的关键路径,不仅考虑了工作的执行时间和工作间的紧前关系约束,而且还考 虑工作间的资源冲突,关键链是制约整个项目周期的一个工作序列。因此,本文将关键链技术用于软件项目风险管理。 1 关键链技术介绍 1997 年, Goldratt 出版了《关键链》一书,将约束集理论( TheoryofConstraints,TOC)应用于项目管理领域,提出了项目管理的全新方法。 Goldratt 定义关键链是既考虑工作间的依赖关系又考虑资源间依赖关系的最长的工作序列。 Goldratt 认为在 PERT 中的工期估计中包含了大部分的安全时间,而安全时间并不能保证项目的按时完成。因此他将工作 50%可能 完成的时间作为工作工期的估计,并以此建立工作网络图。根据工作间的资源制约关系,修改网络图,确定关键链。然后通过为关键链和非关键链分别设置项目缓冲( ProjectBuffer)和输入缓冲( FeedingBuffer),来消除项目中不确定因素对项目执行计划的影响,保证整个项目按时完成。项目缓冲设置在关键链的末尾,以关键链上所有工作比 PERT 中少估计的工期和的 50%为缓冲区的大小。输入缓冲设置在非关键链与关键链