基于CMMI的软件项目风险管理研究
2020-07-08蔡泉
摘 要:做好风险管理工作,能够加强软件产品的质量、降低对软件研发的投入,确保软件产品能够在规定的时间内研发出来。那么下面我们就来具体的介绍一下基于CMMI的软件项目的风险准备、评估和控制工作,以此保证所研发出的软件能够满足市场需求。
关键词:CMMI;风险管理;风险评估;风险控制
所谓的CMMI,就是软件能力成熟度模型集成,其作用在于能够加强软件研发效果,节省对软件产品的投入,确保软件能够在规定的时间内完成研发。而CMMI过程域中对软件项目风险管理的描述和最佳实践,具有持续性、前瞻性的特点。其中持续性特点指的是在软件研发期间,对全部环节进行风险管控。而前瞻性则是指做好计划,提前掌握潜在风险隐患,从而进行及时的管控。这也就是说,风险管理主要是提早发现并解决潜在的风险,尽最大可能避免风险所导致的破坏。风险管理会决定软件项目能否满足QCD指标,是软件研发能否成功的重要环节,因此软件项目一定要重视风险管理工作。下面笔者就根据CMMI风险管理的持续性和前瞻性特点来分析一下风险管理工作的要点。
1风险准备
1.1确定风险源
在软件的内外部都会产生风险源。伴随项目的不断深入,有可能会出现越来越多的风险源。在软件内外部中,常见的风险有:(1)不确定的需求;(2)预估不准确的工作量;(3)不可行的设计;(4)实现不了的技术;(5)工作者的能力以及技术水平达不到规定要求;(6)成本、经费不足;(7)分包能力有限;(8)和买方在交流方面存在问题。
尽快的发现内外部风险源,能够对风险进行尽早的标识,这样就能够在研发软件前制定出风险预防方案,从而就可避免出现风险的可能性。
1.2确定风险类型
掌握风险类别类型,创建防控风险的机制,同时加大对软件研发重要环节的风险监管力度。而风险类型主要包括:(1)产品规模风险;(2)技术风险;(3)环境风险;(3)研发期间的风险;(5)资源风险;(6)用户特性风险。
2风险评估
2.1风险识别
CMMI最佳实现中,风险检查表和头脑风暴是风险识别的主要方法。
2.2风险检查表
在高成熟度CMMI模型中,通过组织级经验积累,把之前所出现过的风险制作成风险核对表。按照当前软件项目的特点,来检验风险核对表,以此获悉在软件研发项目里是不是具有风险检查表当中所具有的风险。
2.3头脑风暴
这也是CMMI思想中非常提倡的一种群策群力的风险识别方式。将相关专家召集到一起进行共同的商讨,来提出所潜在的风险。所有人均不对其他人的观点进行评价,专家间并不进行探讨。
2.4风险分析
定量项目管理是CMMI的重要过程域之一。对潜在风险有可能出现的概率以及出现后会导致的后果进行全面的研究,然后算出风险量值,可以为风险评估提供重要依据。
风险所造成的后果,也就是在出现风险的情况下,给软件研究项目所造成的影响做出定量分析,其中主要针对的是成本增多、进度延迟和技术影响。做好对这三方面的关联性的“评估”,若其中一个发生风险,那么就代表会产生软件研发风险。
在出现风险后,所造成的后果量化为:高风险:取值范围为[7,10],成本会增加至少20%,进度延迟至少能够达到20%,导致无法完成任务;中风险取值范围为[3,7],成本会增加至少10%,进度延迟至少能够达到10%,会对性能造成严重影响;低风险:取值范围为[0,3],成本会增加至多10%,进度延迟至多能够达到10%,会对性能造成一定的影响。
风险出现时段的可以量化为:远:取值范围为[0,3],发生时段:比下阶段更远的阶段;中:取值范围是[3,7],发生时段:下阶段;近:取值范围是[7,10],发生时段:本阶段。
2.5风险排序
对存在的风险进行研究,能够大致掌握影响项目进程的风险因素,重点要区分好风险,以能够将注意力全部集中到高风险当中。
可使用综合指标-风险系数来明确项目风险优先级:风险系数高,那么就意味着优先级高。要根据风險系统的性能来做风险排序。计算公式为:RE(R)=Prob(R)×Loss(R)×Time(R)。
其中,RE(R)为风险发生的代价,可作为风险系数,Prob(R)表示的是风险出现的可能性,而Loss(R)表示的是风险出现的后果,而Time(R)代表的是风险出现时段。
3 风险控制
3.1风险管理策划
在完成风险排序后,就要创建风险管理策略。通常,风险规避、转移、控制是风险管理的主要策略。(1)风险规避:指的是更改要求,不过前提依然是要符合使用者的需求。风险规避主要是避免项目中出现风险,属于主动的方式,而在进行风险规避的时候,要创建风险缓解方案。(2)风险转移:对分配要求进行新的划分,以降低风险所造成的影响,比如把高风险功能转移到适合它的项目里。(3)风险控制:指的是采用合理方式减少风险出现的可能性。主要是通过创建风险缓解方案来避免出现风险,此外也可以通过创建应急预案来降低风险给软件研发项目所造成的影响。
3.2风险缓解
如果风险高出了风险阈值,那么就要利用风险缓解方案。而且还要进行风险监管,以获取到风险系数,若在执行了风险缓解方案后,使风险系数降低,那么就意味着缓解方案非常合理,然后要根据实际状况来判断是不是有必要接着执行缓解方案;若风险系统未降低,并且还升高的话,那么就意味着风险并未缓解,此时要重新创建缓解方案。
3.3风险监控
定期监控、节点监控是风险控制的重要构成部分。其中前者主要是以7天的频度做风险监管;而节点监控是在还没有进行阶段/里程碑评审的时候对风险进行监控。风险监控具体流程为:(1)发现新的风险、研究风险,同时放进风险管控序列当中;(2)对所发现的风险进行新一次的研究,而对已出现的风险,则要清理出监管序列;(3)将风险监管序列里的全部风险做好排序;(4)按照所设立的风险管理阈值,来启用风险缓解方案。
结束语:本文主要是对基于CMMI的软件项目的风险准备、评估和控制三个层面的问题进行了分析,旨在通过详细的分析,能够使软件研发公司完善研发方案,并做好风险管控工作,以此保证能够研发出质量过关的软件。
参考文献:
[1]俞蔚.软件项目管理中的风险识别与管理分析[J].中国新通信,2019,21(14):172.
[2]孟凡桐.软件项目风险管理的研究[J].电脑与电信,2019(07):71-73.
[3]詹红艳.软件项目管理中风险控制策略研究[J].软件,2019,40(06):230-232.
[4]蔡泉.软件项目管理中的风险分析与管理[J].现代营销(下旬刊),2018(12):108-109.
(沈阳东软智睿放疗技术有限公司,辽宁 沈阳110000)