|
摘要 软件项目开发过程中存在着大量不确定事件,这给项目的成功带来了风险。能否在规定的时间内交付软件产品,与项目进度计划是否合理、项目风险管理活动是否有效有很大的关系。这需要综合考虑软件项目进度计划与软件项目风险管理计划,提供工具用以标识、分析和管理软件项目风险,并在此基础上获得合理的软件项目进度计划。 项目管理者联盟 club.mypm.net 本文提出了基于风险因子分析的软件项目管理模型。本文通过对文献著作的研究和某通讯公司软件项目的实际分析,标识出影响软件项目成功的20个风险因子,并根据其出现的比例,选择6个主要风险因子进行进一步地量化分析,分析它们各自对软件项目进度的影响,并使用蒙特卡罗模拟方法,模拟出所选择的风险因子对软件项目进度的总体影响,该影响以风险图的方式给出。同时,利用模型中识别出的主要风险因子,标识软件项目风险;综合考虑风险因子的潜在影响和项目进度的要求,制定出软件项目风险管理计划和合理的软件项目进度计划。 项目管理培训 项目管理者联盟 本文实现了基于风险因子分析的软件项目管理模型,并对模型本身进行了正确性验证,也在软件项目组进行了符合项目经理需要的确认。结果显示,该模型能够帮助项目经理制定风险管理计划和合理的进度计划。 service.mypm.net training.mypm.net 关键词:风险因子;模型;风险管理计划;进度计划。 项目管理者联盟 项目管理者联盟 第一章 绪论 项目管理者联盟 项目管理者联盟 1.1 本文研究的背景及问题 bbs.mypm.net 项目管理者联盟 软件已经成为基于计算机的系统及产品成功的关键因素,其重要作用已经得到了人们的普遍认同。在过去的50年中,软件已经从特殊的问题解决和信息分析工具演化为一门独立的产业,但在提供客户所需要的软件的能力方面取得的进展却非常缓慢。软件项目失控现象依然大量存在 。著名的CHAOS报告(2003)[28]中的一些统计数据如下: 项目管理者联盟 项目管理者联盟 66%的软件项目失败,15%的软件项目在完成前被取消; www.mypm.net pmp.mypm.net 82%的软件项目交付延期,43%的软件项目实际成本超过预算,48%的客户需求没有得到满足。 项目管理者联盟 项目管理者联盟文章 造成以上现象的原因有很多,Jones(1994)[23]针对交付延期和预算超支的现象,归纳出以下四个根本原因: www.mypm.net bbs.mypm.net 1、在项目初始估计时,进度/成本就是不可能达到的目标,但项目还是如期启动了; 项目管理者联盟 项目管理者联盟 2、在项目进度/成本确定后,项目范围发生了变化; pmp.mypm.net 项目管理培训 3、项目估计和计划的方法不合理; 项目管理者联盟 项目管理者联盟 4、企业没有收集有用的历史数据。 项目管理者联盟 项目管理者联盟 在软件业,学术界和企业界都越来越强烈地相信,没有一个独立的方法、技术、工具或过程能够解决软件项目失控问题,驾御项目失控最好的方法是从开始就管理项目的风险。[KPMG 1995][24]报告中列举的项目失控企业,55%的失控项目没有实行过任何风险管理,而在38%实行了风险管理(有些调查者不知道是否实行了风险管理)的项目中,有50%的项目在启动之后没有使用风险发现(Risk Finding),缺少风险管理可能会导致项目失控的事件。管理项目风险的好处是明显的,Boehm(1989)认为,风险管理之所以重要,是因为它使得人们脱离灾难,避免返工,并促使软件项目取得双赢的局面。 项目管理者联盟 项目管理者联盟 Jones认为软件项目计划不合理是软件项目交付延期的主要原因。大多数人在做项目计划时比较乐观,倾向于忽视某些“可能需要做”的工作,而不是把“可能不需要做”的工作也计算在内。“可能需要做”与“可能不需要做”这种不确定性事件正是风险管理的内容。因此,在制定软件项目进度计划时,考虑风险对软件项目的潜在影响,并将这种影响落实到软件项目进度计划中,将避免过度的项目进度压力现象。Kemerer(1991)[8]认为进度压力常常在项目的后期出现,并对项目带来三个主要方面的影响: 项目管理者联盟 blog.mypm.net 1、经济影响。后期发现项目无论如何也不能在接近计划范围内完成,常常导致项目被取消,同时到此为止的所有工作都将前功尽弃。 项目管理论坛 项目管理者联盟 2、产品质量影响。当项目计划的成本或进度目标临近,但还剩余大量附加工作时,为了按照计划或接近计划完成项目,一般会缩减最终任务。当最终期限到来时,在无法确定交付产品质量的情况下,项目常常会停止测试而简单进行交货。 项目管理者联盟 项目管理者联盟 3、组织影响。当不切实际的最终期限临近时,为了尽快完成项目,全体开发人员可能要忍受被施加的附加压力。这种压力除了有可能会对工作质量产生短期不利影响之外,对士气的长期影响也是巨大的。如果在项目开发的后期,给项目组增加人力,又可能产生所谓的布鲁克斯(Brooks 1974)现象:给后期项目增加人力,会导致项目推迟完成。如果这样的问题遍布整个组织,那么,将产生一种“恐慌心理”。 项目经理博客 转自项目管理者联盟 在软件领域,关于项目风险管理和项目进度计划主题的文献著作很多。Boehm(1991)在他的《软件风险管理:原理和实践》[30]一文中提出一种软件项目风险管理的方法,他将风险管理划分为风险评估和风险控制,并对每一种分类提供了许多步骤。对每一个步骤都给出了一个简短的技术列表,并附有TRW一些实际项目的例子。一组有用的图表说明了这些技术,包括项目风险因子的Top Ten列表。Fairley(1994)在他的《软件项目的风险管理》[8]一文中验证了Boehm的方法在电信软件项目中的应用,他充分利用了COCOMO成本估算模型来估计风险因子对预算的影响,并且证明了人们可以利用统计学方法求出可能产生结果的预期范围。软件进度计划方面的研究主要体现在两个方面。一方面关注如何提高进度估算的能力,Boehm(1981)在他的《软件工程经济学》[32]一书中提出了COCOMO成本估计模型;Vicinaca等人(1991)在《软件投入估计中以案例为基础的论证》[8]中使用人工智能领域的技术开发了一个以知识为基础的成本估计系统;Abdel-Hamid(1989)在《从软件开发动力学的模拟中学习的课程》[8]中使用系统动力学开发了一个成本估计模型,该模型可以重复一些共同的现象,如布鲁克斯规则。进度计划研究的另外一个方面关注如何安排项目进度,主要的技术有关键路径法(Critical Path Method,CPM)、关键链进度计划(Critical Chain Schedule)以及计划评审技术(Program Evaluation and Technique,PERT);McConnell (1996)在他的《快速软件开发:有效控制与完成进度计划》[14]一书中对导致乐观的软件项目进度安排的问题进行了深入讨论,并指出了你能为此做些什么;Brooks(1995)则在《人月神话》[6]一书中提出了著名的布鲁克斯规则。 项目管理论坛 项目管理者联盟 不难发现,软件项目风险管理的研究与项目进度计划的研究是有交集的,在考虑项目风险时,进度风险通常是考虑的重点,在制定项目进度计划时,要考虑达到进度目标可能遇到的风险。但是,将软件项目风险管理与项目进度计划有机地结合起来的综合研究还鲜见于文献资料。本文提出一种基于风险因子分析的软件项目管理模型,能方便地帮助软件项目标识出主要的风险因子,并量化分析风险因子对项目进度的影响,最终给出合理的项目交付进度计划。 www.mypm.net service.mypm.net 1.2 软件估计常用方法 项目管理者联盟 项目管理论坛 软件项目管理过程总是从项目计划开始。在项目可以开始前,管理者和软件小组必须估计将要完成的工作、所需要的资源以及从开始到完成所需要的时间。软件估计需要经验、以前项目的有用信息,以及当仅存在定性的数据时进行定量估计的勇气。 www.mypm.net 项目管理者联盟 软件估计是一项预测未来的工作,天生具有某种程度的不确定性,Kemerer描述了由于估计不准而给项目造成的经济、质量和组织影响。为了解决这些估计不准的问题,软件业界对估计做了大量的研究,提出了许多软件估计方法和工具。由于软件进度估计总是依赖于软件工作量估计和可以投入的软件人力资源,在人力资源投入策略确定后,软件开发工作量与软件项目进度的对应关系就确定了。所以本文仅仅介绍常用的软件工作量估计方法。 club.mypm.net 项目管理者联盟 1.2.1 算法模型估计方法 项目管理者联盟 项目管理者联盟
|