论文部分内容阅读
在软件开发项目中,由于对于需求管理、进度控制等诸多方面存在极大不确定性,往往导致软件开发项目在进度、质量、成本方面也存在很大风险,采用项目风险管理可以大大降低项目的风险程度,将有助于提升企业对软件项目风险管理的水平,达到进一步降低项目风险、提高项目成功率的目的。 经典的风险管理体系,如Boehm、Leavitt、Toolkit和SEI等,从风险识别、管理过程或风险因素等不同的侧重点,对软件风险管理进行了完整的论述,是软件项目风险管理的主要理论指导。其中SEI体系,对风险识别、分析、计划、跟踪和控制的闭环操作进行全面的介绍,具有模型复杂度适中、可操作性较高的特点,并且与CMMI有较好的匹配性,是实践中应用较多的一个方法体系。 SEI风险模型从时间、方法和人员这三个维度,对软件项目风险的识别、分析、计划、跟踪和控制以及沟通等活动进行详细介绍。在软件风险评估、持续风险管理和团队风险管理这三个实践方法的基础上,提出了目前业内比较认可的软件能力成熟度模型和软件采购能力成熟度模型。 笔者在工作期间,曾担任某软件项目(D-Cube项目)的技术经理,一部分职责便是负责该项目的风险的分析、排序、跟踪等工作。项目过程中,采用SEI软件项目风险管理模型对风险管理的识别、分析、计划、跟踪、控制及沟通活动过程进行指导。 根据项目管理的历史经验,针对SEI本身并不包含制订风险管理计划的相关阶段的问题,我们导入了PMI的风险管理计划制订阶段,即制定D-Cube项目的风险管理流程、方法、责任和工具,以确保该项目的风险能够被正确地识别、分析、记录、降低和控制。在项目过程中: 首先在风险识别阶段,根据SEI的软件风险分类,结合项目本身的特点编制了面向项目组成员、公司内相关人员以及外部的客户等利益相关方的风险调查问卷,从而梳理出本项目可能存在的各类风险。与此同时,项目组还根据Estves和Pastor(2000)为ERP系统定义的战略因素,对风险的分类方式进行了扩展,即定义了一个组织性风险因素,从而使识别出的风险更加全面; 其次根据风险识别阶段输出的风险清单中的详细风险说明,我们评估和分析每个软件技术性风险的量级,即风险后果的严重程度和风险概率的乘积,将每个风险指定为高、中、低三个级别,为后续进行风险排序和指定风险应对策略提供输入; 第三,以经过优先级排序的风险列表作为输入信息,风险计划活动对每个风险做出相应决策和制定风险应对策略:规避风险、接受风险、降低风险和分担风险。在这个阶段,我们根据已分配的资源,只对高重要性和中度重要性的风险采取降低风险的行动; 第四,在项目执行过程中,项目组定期从风险负责人那里获取、整合风险相关数据以进行风险跟踪和控制。对风险清单中的风险的指标进行跟踪并审视对应的风险降低计划,根据实际情况调整风险的优先级,并识别出新的风险。在这个过程中,贯彻SEI对于风险管理的持续性要求,将风险管理活动作为项目管理的有机组成部分,将风险管理融入于日常工作中。 第五,在进行风险的识别、分析、计划、跟踪、控制的过程中,持续的、开放的沟通起到了重要的作用。沟通使项目组及各利益相关方能够从全局视角、前瞻性视角来看待项目中存在的风险,让项目组朝着共同的产品愿景而努力。 通过该项目中应用SEI风险管理模型的实践,项目组发现软件项目与传统项目二者相互联系又相互区别。传统项目中的风险因素如人力资源风险同样也适用于软件项目,会对软件项目的进度、资源或成本产生影响。同时,由于软件项目是一种智力型活动,人的因素在软件项目中起着重要的作用;客户及其需求,对项目的管理等与人直接相关的因素是导致项目风险出现的主要问题,将直接影响所开发的软件产品的质量、性能。 在本项目中我们发现几个问题。 一、SEI所推行的软件项目管理成熟度模型在很多项目中都难以做到。导致该问题原因是对风险管理方法的应用方面存在误解,即“把风险管理视作是挑战”并由此潜意识的否定风险管理的需求,这种态度会影响风险评估人员在整个项目过程中的态度,而管理者则会在早期的风险识别阶段默认这种情况。 二、管理本身也会导致风险,特别是项目经理对风险的重要性的认知会严重影响风险的处理,即风险管理人员的主观因素是影响项目风险的重要方面。例如,如果风险评估人员将一个风险的级别定义为低级别,那么该风险就有可能在后续的跟踪和处理中被忽视。 三、通过对D-Cube项目中风险数据的分析可以发现,SEI的风险调查问卷不能覆盖该项目中出现的所有风险因素。亦即需要根据企业和项目的实际情况,对风险调查问卷进行调整。对于企业来说,有必要建立一套项目风险管理系统,对企业内历史项目所发现、发生的风险问题和因素进行归档管理,从而为来的项目产生输出可能的风险列表,为后来的项目识别出最可能的风险。 因此此次SEI软件风险管理模型实证的结论是:SEI风险管理模型具有很高的实用价值和指导意义,但是需要根据企业和项目的实际情况进行调整,才能更好的指导企业的软件项目的风险管理工作。