论文部分内容阅读
【摘 要】风险管理与控制是软件项目的重要内容。使风险受控是软件项目风险管理的任务,理解风险、采取主动措施避免或管理风险,是一个软件项目管理者应具备的基本条件,也是中小型企业在激烈的市场竞争中寻求发展的需要。本文从我国中小软件企业的软件项目管理现状出发,在分析CMM/CMMI和其他当前流行的风险管理模型的基础上,提出一种新的项目风险控制管理优化模型,并在此基础上提出风险控制方法,为我国中小型软件企业项目风险管理过程提供建议和参考。
【关键词】中小型软件企业;软件项目;风险管理
结合我国中小型软件企业的特点,寻求一种面向中小型软件企业的、适合实际运作、和模型结合的风险管理方法和技术,构建面向中小型软件企业的项目风险管理方法和控制体系和过程。提高软件项目开发的成功率和软件项目等都具有一定的意义。
1.中小型软件企业的特点
现在许多小软件公司研发人员较少、技术力量不强、行业经验积累少、产品多样化、管理不规范、风险意识淡薄、生存能力弱等。都只是靠做一些简单的管理软件,或是承接其他公司的外包模块业务维持生计。只有极少数企业在致力于产品的嵌入式开发,做企业的核心产品。从软件项目的风险控制方面来看,这些特点将给未来企业的发展留下巨大隐患。
2.项目和项目管理,软件项目的特点
(1)项目有一个独特的目的、而且是一次性的,具有明确的开始和结尾;(2)项目需要使用资源,包括人、硬件设施、软件配置和其他设备;(3)项目有一个主要发起人或客户,(4)项目含有不确定性
3.面向中小型软件企业的项目风险管理体系的构建
对于中小型软件企业来说,理想的项目风险管理方法应具有实施成本较低、对操作人员的经验和技术要求不高以及操作流程較简单等特点。以此为目标,本节提出一种针对我国中小型软件企业特点的项目风险管理体系,该体系主要将软件项目风险管理活动划分为三大部分:风险识别、风险评估与风险控制。
4.常用软件项目风险评估方法比较
常用的软件项目风险评估方法有很多,可以分为两大类:定性评估和定量评估。
4.1定性评估方法
(1)定性分析的目的是界定风险源,并初步判明风险的严重程度,已给出系统风险的综合印象。初步风险分析是用于识别系统中可能存在的风险源。
(2)定性风险评价主要包括风险评估指数法、总风险暴露指数法、直接风险评估法等。其主要特点是对风险的可能性和严重程度不做精细的数值分析,而是大致将其划分一些等级,然后把这两者用不同的方式综合起来衡量风险的大小及重要程度,并按大小和重要程度进行分类排序,最后分别对不同种类的风险采取不同的措施,确定是否接受风险还是改进设计、改变工作流程、加强人员培训等方法和措施以减少风险。
(3)在软件风险定性分析方法中,人们常用因果分析法。因果关系分析法用于揭示影响及其原因之间的联系,以便追根溯源,找出风险的根本原因。其目的是通过确定问题的根本原因来阻止问题的发生。
(4)定性分析方法主要是通过分析需求分析阶段、设计阶段、编码阶段、集成和测试阶段常见的风险因素,按照其发生的概率、对本阶段目标的影响力、对其他阶段目标的影响力,可以归纳出该风险相对软件开发的综合影响力。主要评定标准是从出现的概率的角度分为:很高、高、一般、低、很低;从对软件项目的影响角度来讲分为:很大、一般、小、很小。
4.2定量评估方法
定量分析过程的目标是量化分析每一分析的概率及其对项目目标造成的后果,也分析项目总体的风险程度。这一过程涉及的工作包括测定取得某一特定项目目标的概率;量化项目的风险暴露,决定可能需要的成本大小和进度计划应急准备金;通过量化各风险对项目风险的相应贡献,分析出最需要关注的风险;找出理想的和可实现的成本、进度计划及工作范围目标。常用方法有:Monte Carlo模拟法、计划评审技术PERT(Program Evaluation and Review Techniques)、主观概率法(Subjective Probabity Method)、效用理论(Utiliti Theory)、灰色系统理论(Grey System Theory)故障树分析法、FAT(Fault Tree Analysis)外推法(Extrapolation)、模糊分析方法(Fizzy Analysis)、影像图分析法(Influence Diagram)、概率风险评价PRA(Probabilistic Risk Assessment)、GO-FLOW法、火灾爆炸指数法FEI(Fire Explosion Index)等。
5.软件项目风险应对策略
一般软件项目风险管理中常采用的策略有“避免”、“转移”、“接受”、“遏制”。所谓“避免”策略是指通过改变产品设计或开发过程,完全或部分消除风险发生的可能性,采取该策略应特别注意机会成本的损失。“转移”策略常用于保险分担或合同分担,风险出现的概率并没有因此而降低,但是降低了风险出现后某一方遭受损失的程度。“接受”策略指听任风险的自然发展,一方面不需付出风险控制成本,一方面也没有消除风险可能的危害。“遏制”策略通常有两条途径,一条是加强高风险因素的薄弱环节,降低风险发生的概率:一条是调整设计方案或管理方法,减轻风险出现后的冲击力。
一般来说软件项目风险控制,首先从控制队列中选出待控制风险,然后进行对策分析。在对策分析过程中,除了要按前述方法选择对策外,在同等条件下或相近条件下,一般按下列顺序选择:优先考虑能否避免风险,而后考虑能否转移风险,其次才是遏制风险出现的概率或发生时的后果,如果不存在遏制对策,或者遏制对策在经济上不划算的,则接受风险,或者说暂时接受风险,不采取任何措施,但仍然处于风险监督之下。 6.面向中小型軟件项目风险控制策略选择
对于中小型软件企业来说,选择风险控制策略时不仅要考虑风险可能性的降低和风险损失的减少,更要综合考虑该措施的成本及收益。一个理想的风险控制措施不仅要以控制风险为目标,还要以获取风险控制最大收益为目标。
7.软件项目风险优化控制
风险管理不是以消除风险为目的,风险总是客观存在的,是否有必要消除风险还要用经济标准来衡量。
软件项目风险控制最重要的问题是风险控制的决策,而以往的软件风险控制决策主要基于项目经理的经验和主观判断,缺少程序化的决策支持,这种情况在中小型软件企业的风险控制过程中尤为突出,这在一定程度上限制了风险管理成功的可能性。
基于以上两点原因,本文提出“收益最大化的软件项目风险优化控制”方法。该方法在风险控制过程中,通过建立一个风险优化控制模型,运用动态规划方法,实现风险控制方案的自动选择,把风险控制在可接受范围内,同时取得风险管理最大收益。基本思想,在软件项目中,存在一些关键任务,它们各自的风险将直接影响整个项目的风险。针对项目中的关键任务分别采取恰当的风险控制策略,以控制整个项目的风险,并且取得最大的风险管理收益。这就是“收益最大化的软件项目风险优化控制”方法的主要思想。主要步骤如下:
(1)确定项目中的关键任务。
(2)确定每一个关键任务的控制方案列表。
(3)建立优化模型,实现风险控制。
8.结论
通过本文的研究,可以对今后中小型软件企业的项目风险管理提供一种模式和方法的探讨,对降低软件项目开发风险,提高软件项目的成功率和软件项目的投资回报率具有一定的意义。
本文对中小型软件项目风险管理与控制进行了初步研究并取得了阶段性成果,但还有大量的相关问题需要解决,特别是在构建风险知识库、提高风险评估方法精确性等方面还要在今后进行进一步研究。
【参考文献】
[1]郭宁,周晓华.软件项目管理[M].北京:清华大学出版社,2007.
[2]林锐,彭国明.CMMI和集成化软件研发管理[M].电子工业出版社,2008.
[3]丛微.中国软件何去何从.大众科技报,2006.
[4]丁义明,方福康.风险概念分析[J].系统工程学报,2001.
[5]Elaine M Hall. Managing risk:Methods for software systems development [M]. Addisorr Wesley Publishing Company,1998.
【关键词】中小型软件企业;软件项目;风险管理
结合我国中小型软件企业的特点,寻求一种面向中小型软件企业的、适合实际运作、和模型结合的风险管理方法和技术,构建面向中小型软件企业的项目风险管理方法和控制体系和过程。提高软件项目开发的成功率和软件项目等都具有一定的意义。
1.中小型软件企业的特点
现在许多小软件公司研发人员较少、技术力量不强、行业经验积累少、产品多样化、管理不规范、风险意识淡薄、生存能力弱等。都只是靠做一些简单的管理软件,或是承接其他公司的外包模块业务维持生计。只有极少数企业在致力于产品的嵌入式开发,做企业的核心产品。从软件项目的风险控制方面来看,这些特点将给未来企业的发展留下巨大隐患。
2.项目和项目管理,软件项目的特点
(1)项目有一个独特的目的、而且是一次性的,具有明确的开始和结尾;(2)项目需要使用资源,包括人、硬件设施、软件配置和其他设备;(3)项目有一个主要发起人或客户,(4)项目含有不确定性
3.面向中小型软件企业的项目风险管理体系的构建
对于中小型软件企业来说,理想的项目风险管理方法应具有实施成本较低、对操作人员的经验和技术要求不高以及操作流程較简单等特点。以此为目标,本节提出一种针对我国中小型软件企业特点的项目风险管理体系,该体系主要将软件项目风险管理活动划分为三大部分:风险识别、风险评估与风险控制。
4.常用软件项目风险评估方法比较
常用的软件项目风险评估方法有很多,可以分为两大类:定性评估和定量评估。
4.1定性评估方法
(1)定性分析的目的是界定风险源,并初步判明风险的严重程度,已给出系统风险的综合印象。初步风险分析是用于识别系统中可能存在的风险源。
(2)定性风险评价主要包括风险评估指数法、总风险暴露指数法、直接风险评估法等。其主要特点是对风险的可能性和严重程度不做精细的数值分析,而是大致将其划分一些等级,然后把这两者用不同的方式综合起来衡量风险的大小及重要程度,并按大小和重要程度进行分类排序,最后分别对不同种类的风险采取不同的措施,确定是否接受风险还是改进设计、改变工作流程、加强人员培训等方法和措施以减少风险。
(3)在软件风险定性分析方法中,人们常用因果分析法。因果关系分析法用于揭示影响及其原因之间的联系,以便追根溯源,找出风险的根本原因。其目的是通过确定问题的根本原因来阻止问题的发生。
(4)定性分析方法主要是通过分析需求分析阶段、设计阶段、编码阶段、集成和测试阶段常见的风险因素,按照其发生的概率、对本阶段目标的影响力、对其他阶段目标的影响力,可以归纳出该风险相对软件开发的综合影响力。主要评定标准是从出现的概率的角度分为:很高、高、一般、低、很低;从对软件项目的影响角度来讲分为:很大、一般、小、很小。
4.2定量评估方法
定量分析过程的目标是量化分析每一分析的概率及其对项目目标造成的后果,也分析项目总体的风险程度。这一过程涉及的工作包括测定取得某一特定项目目标的概率;量化项目的风险暴露,决定可能需要的成本大小和进度计划应急准备金;通过量化各风险对项目风险的相应贡献,分析出最需要关注的风险;找出理想的和可实现的成本、进度计划及工作范围目标。常用方法有:Monte Carlo模拟法、计划评审技术PERT(Program Evaluation and Review Techniques)、主观概率法(Subjective Probabity Method)、效用理论(Utiliti Theory)、灰色系统理论(Grey System Theory)故障树分析法、FAT(Fault Tree Analysis)外推法(Extrapolation)、模糊分析方法(Fizzy Analysis)、影像图分析法(Influence Diagram)、概率风险评价PRA(Probabilistic Risk Assessment)、GO-FLOW法、火灾爆炸指数法FEI(Fire Explosion Index)等。
5.软件项目风险应对策略
一般软件项目风险管理中常采用的策略有“避免”、“转移”、“接受”、“遏制”。所谓“避免”策略是指通过改变产品设计或开发过程,完全或部分消除风险发生的可能性,采取该策略应特别注意机会成本的损失。“转移”策略常用于保险分担或合同分担,风险出现的概率并没有因此而降低,但是降低了风险出现后某一方遭受损失的程度。“接受”策略指听任风险的自然发展,一方面不需付出风险控制成本,一方面也没有消除风险可能的危害。“遏制”策略通常有两条途径,一条是加强高风险因素的薄弱环节,降低风险发生的概率:一条是调整设计方案或管理方法,减轻风险出现后的冲击力。
一般来说软件项目风险控制,首先从控制队列中选出待控制风险,然后进行对策分析。在对策分析过程中,除了要按前述方法选择对策外,在同等条件下或相近条件下,一般按下列顺序选择:优先考虑能否避免风险,而后考虑能否转移风险,其次才是遏制风险出现的概率或发生时的后果,如果不存在遏制对策,或者遏制对策在经济上不划算的,则接受风险,或者说暂时接受风险,不采取任何措施,但仍然处于风险监督之下。 6.面向中小型軟件项目风险控制策略选择
对于中小型软件企业来说,选择风险控制策略时不仅要考虑风险可能性的降低和风险损失的减少,更要综合考虑该措施的成本及收益。一个理想的风险控制措施不仅要以控制风险为目标,还要以获取风险控制最大收益为目标。
7.软件项目风险优化控制
风险管理不是以消除风险为目的,风险总是客观存在的,是否有必要消除风险还要用经济标准来衡量。
软件项目风险控制最重要的问题是风险控制的决策,而以往的软件风险控制决策主要基于项目经理的经验和主观判断,缺少程序化的决策支持,这种情况在中小型软件企业的风险控制过程中尤为突出,这在一定程度上限制了风险管理成功的可能性。
基于以上两点原因,本文提出“收益最大化的软件项目风险优化控制”方法。该方法在风险控制过程中,通过建立一个风险优化控制模型,运用动态规划方法,实现风险控制方案的自动选择,把风险控制在可接受范围内,同时取得风险管理最大收益。基本思想,在软件项目中,存在一些关键任务,它们各自的风险将直接影响整个项目的风险。针对项目中的关键任务分别采取恰当的风险控制策略,以控制整个项目的风险,并且取得最大的风险管理收益。这就是“收益最大化的软件项目风险优化控制”方法的主要思想。主要步骤如下:
(1)确定项目中的关键任务。
(2)确定每一个关键任务的控制方案列表。
(3)建立优化模型,实现风险控制。
8.结论
通过本文的研究,可以对今后中小型软件企业的项目风险管理提供一种模式和方法的探讨,对降低软件项目开发风险,提高软件项目的成功率和软件项目的投资回报率具有一定的意义。
本文对中小型软件项目风险管理与控制进行了初步研究并取得了阶段性成果,但还有大量的相关问题需要解决,特别是在构建风险知识库、提高风险评估方法精确性等方面还要在今后进行进一步研究。
【参考文献】
[1]郭宁,周晓华.软件项目管理[M].北京:清华大学出版社,2007.
[2]林锐,彭国明.CMMI和集成化软件研发管理[M].电子工业出版社,2008.
[3]丛微.中国软件何去何从.大众科技报,2006.
[4]丁义明,方福康.风险概念分析[J].系统工程学报,2001.
[5]Elaine M Hall. Managing risk:Methods for software systems development [M]. Addisorr Wesley Publishing Company,1998.