·过程风险
①大量的纸面工作导致进程比预期的慢;②前期的质量保证行为不真实,导致后期的重复工作;③太不正规(缺乏对软件开发策略和标准的遵循),导致沟通不足,质量欠佳,甚至需重新开发;④过于正规(教条地坚持软件开发策略和标准),导致过多耗时于无用的工作;⑤向管理层撰写进程报告占用开发人员的时间比预期的多;⑥风险管理粗心,导致未能发现重大的项目风险。
四、风险辨识
识别风险是系统化地识别已知的和可预测的风险,在可能时避免这些风险,且当必要时控制这些风险。根据风险内容,我们可以将风险分为:
(1)产品规模风险:与软件的总体规模相关的风险。
(2)商业影响风险:商业风险影响到软件开发的生存能力。商业风险包含的五个主要的风险是:
市场风险:开发了一个没有人真正需要的产品或系统;
策略风险:开发的产品不符合公司的整体商业策略;
销售风险:开发了一个销售部门不知道如何去卖的产品;
管理风险:由于重点的转移或人员的变动而失去了高级管理层的支持的风险;
预算风险:没有得到预算或人力上的保证。
(3)客户特性风险:与客户的素质以及开发者和客户沟通能力相关的风险。
(4)过程定义风险:与软件过程定义相关的风险。
(5)开发环境风险:与开发工具的可用性及质量相关的风险。
(6)技术风险:技术风险是指在设计、实现、接口、验证、维护、规约的二义性、技术的不确定性、陈旧的技术等方面存在的风险。技术风险威胁到软件开发的质量及交付的时间,如果技术风险变成现实,则开发工作可能变得很困难或根本不可能。
(7)人员数目及经验带来的风险:与参与工作的软件工程师的总体技术水平及项目经验相关的风险。
在进行具体的软件项目风险识别时,可以根据实际情况对风险分类。但简单的分类并不是总行的通的,某些风险根本无法预测。在这里,我们介绍一下美国空军软件项目风险管理手册中指出的如何识别软件风险。这种识别方法要求项目管理者根据项目实际情况标识影响软件风险因素的风险驱动因子,这些因素包括以下几个方面。
(1)性能风险:产品能够满足需求和符合使用目的的不确定程度。
(2)成本风险:项目预算能够被维持的不确定的程度。
(3)支持风险:软件易于纠错、适应及增强的不确定的程度。
(4)进度风险:项目进度能够被维持且产品能按时交付的不确定的程度。
每一个风险驱动因子对风险因素的影响均可分为四个影响类别——可忽略的、轻微的、严重的及灾难性的。
五、风险分析
在进行了风险辨识后,我们要进行风险估算,风险估算从以下几个方面评估风险清单中的每一个风险:
(1)建立一个尺度,以反映风险发生的可能性;
(2)描述风险的后果;
(3)估算风险对项目及产品的影响;
(4)标注风险预测的整体精确度,以免产生误解。