2 MIS项目风险管理采用的策略
以上介绍的3种经典方法都从不同角度或者细化层次对风险管理进行了研究。由于研究组织的背景和思维差异,不同的模型都有各自的针对性、侧重点和优缺点,很难说孰优孰劣。在进行MIS项目风险管理中,我们选择了操作性比较强的Riskit方法和SERIM方法作为基础模型,吸纳两者的核心思想和方法。
(1)Riskit方法
Riskit方法是由Maryland大学提出的,旨在对风险的起因、触发事件及其影响等进行完整的体现和管理,并使用合理的步骤评估风险。该方法使用图形形式化的方法支持在定量分析前进行风险情景的定性分析,其评估方法可以基于历史数据或者对当前项目的预测。
Riskit方法的核心部分是用来描述风险的图形形式化工具分析图(RiskitRiskitanalysisgraph),该分析图可以显式地定义风险的不同特性,比常规的口头论述要更为形式化。它是风险管理过程中主要的沟通工具。分析图所描述的元素及其关系如图2所示。其中,风险因素(riskfactor)是指影响风险事件发生的可能性的特征,它用来描述主要的项目环境特征。风险事件(riskevent)指的是对项目有负面影响的事情,它可能被多个风险因素触发,也可能影响其他的事件或者因素。项目关键性成员的退出、一个主要需求的大幅度修改等都属于风险事件。而风险反应(riskreaction)描述了对风险事件及其后果所采取的相应措施,它也可能影响风险事件发生的可能性。风险后果(riskeffect)表示了风险事件对整个项目的最后影响,例如项目延迟2个月提交、被迫放弃实现一些功能。风险后果主要是反应了风险对项目目标的冲击,而效益损失(utilityloss)则捕获了这些后果所产生的全局冲击力的严重性,例如项目开发人员所感知的挫折感、CEO等决策层所感到的失败感等。
在Riskit分析图中,使用不同的颜色或者形状表示不同的元素,可以一目了然而又全面地表现与项目相关的风险信息及其制约关系。在此基础上可以进行Riskit风险管理过程。Riskit风险管理过程如图3所示,图中不仅体现了风险管理的基本活动,也描述了这些活动之间的信息流。在项目生命期内,这些活动可以重复多次,也可以并发地开展。其中,风险管理定义指的是定义风险管理的作用域、重点、责任和频率等,并辨识所有相关的风险承担人员。目标查阅指的是查阅已经确立的项目目标,重新定义它们或者显式地补充定义一些原来隐含而未明确表达的目标,并且整理风险承担人员和这些目标的关系。风险识别则是使用不同的方法识别对项目成功构成潜在威胁的元素,产生一系列的原始风险列表。风险分析是对风险元素进行划分和确认,构造完整的Riskit分析图,以对每个风险元素有清晰的认识。风险控制计划对最严重的风险元素提出风险控制方案,并选择最合适的计划。风险控制则是对风险控制计划的实现。风险监控保证在项目开发的全过程中对风险情况进行监督和控制。
对每个活动,Riskit都提供了更加详细的定义模板,包括活动的描述、启动规则、采用的方法和工具、活动负责人、退出规则及其具体活动所特有的属性等。而每个活动又可能由更加具体的子活动组成,例如风险分析又可以细分为:将原始风险项筛选、处理、组织以成为可管理的风险项集合;根据Riskit分析图将风险项的详细信息文档化;对风险项进行优先级排序等。总而言之,Riskit提供了多方面多层次的风险管理过程体系。
(2)JIT模型
DaleKarolak提出的SERIM(SoftwareEngineeringRiskModel,软件工程风险模型)方法是IEEE推荐的方法。这种方法的特点在于从多个角度对软件开发中的风险因素进行了评估,并可在开发周期的任何时候根据评估结果监控风险。
SERIM从技术和商业两个角度对软件风险管理进行剖析,考虑的问题涉及开销、进度、技术性能等。它还提供了一些指标和模型来估量和预测风险,由于这些数据来源于大量的实际经验,因此具有很强的说服力。根据SERIM理论开发的SERIM软件于1999年被提名为“Codie非常好的应用软件开发程序”。
Karolak声称基于“及时(SERIMJITJustinTime)”策略,JIT软件的概念是:应该将软件开发过程中的风险及其影响最小化,而在开发过程早期的管理将会缩短开发周期;在开发过程中使用了风险管理的产品将更倾向于节省开销和满足进度要求。JIT3软件的个标关键思想是:进行计划、在早期识别风险以及并行开发。
SERIM的理论体系主要基于如下概念:风险元素(element)、因素(factor)、指标(metrics)和活动(activity),SERIM的分析模型反应了这几个目标的修正,概念之间的相辅相成关系。Karolak认为软件风险新的目标体现在3个方面,即技术、成本和进度。其中技术方面与性能、可用性等相关,应该尽早识别这个方面的风险;成本则包括预算、盈利等;进度包括进度表的灵活度、现实性等,贯穿于整个开发周期。
对于风险管理,Karolak提出6个活动:识别、策略和计划、评估、缓解或避免、报告及预报,他从操作性、策略性、技术性、商业性、工业性和实践者6个角度对这些活动进行了描述。SERIM的数据来源是81个问题,这些问题覆盖了软件风险的10大因素:组织、预测、监控、开发方法学、工具,风险文化、可用性、正确性、可靠性和人员。风险因素对风险在技术、成本和进度3方面的影响用高、中、低评估,不同的影响程度可以给予一个确定的权值,以便于定量的计算。
SERIM的使用可以概括为:在软件开发的不同阶段(Karolak将软件开发分为需求分析前的准备活动、需求分析、涉及、编码、测试和提交),对81个问题中与开发阶段相匹配的问题进行回答,根据公式计算出一系列的值,从中可以看出项目在技术、开销和进度3个不同方面的总的风险系数,还可以分析数据得到对项目造成最大威胁的风险因素。根据这些数据,可以判断出当前项目的稳定状态,获知需要改善的方向,并可以根据将要采取的措施修改问卷的答案,从而对未来的风险进行预测。