
1.1软件开发过程中风险管理的目的
文档对软件开发过程中遇到的预算、进度、开发不成功等发面的问题引起的损失的可能性进行管理,为降低软件产生的风险提供相关的依据。
●识别软件开发过程中的风险;
●分析软件开发过程中的风险;
●缓解软件开发过程中的风险;
●建立和维护用于风险管理的策略。
1.2软件开发过程中管理的风险
●规模风险;
●商业影响风险;
●客户相关风险;
●过程风险;
●技术风险;
●开发环境风险;
●人员风险;
●项目特定风险。
1.3风险管理人员
风险管理人员表如下所示:
| 序号 | 姓名 | 单位 | 职称 | 主要经历和专长 |
风险与对策汇总表如下表:
| 主要风险 | 风险起因 | 风险程度 | 后果与影响 | 主要对策 |
风险管理的方法通常有:
●对项目风险和条件进行定性分析;
●风险类别库;
●风险识别与分析;
●风险跟踪;
●风险管理总结。
2.对项目风险和条件进行定性分析
2.1对项目风险和条件进行定性分析,将他们对项目目标 的影响按优先顺序排列
(1)如果是时间问题,开发时间是真实的,是实际执行任务的需要,或者因为正常的开发活动导致的时间问题,就需要进行沟通已得到更多的开发时间。
(2)如果是我们的效率问题,则需要提高效率,增加工作指导。
(3)如果是客户的时间问题,就是客户吧时间估计的很少,有没有办法增加开发时间,则最好增加一些开发人员。
(4)如果是设备不够,则及时针对设备短缺的问题进行沟通,跟其他组做好协调,合理利用好设备。
(5)如果是岗位职责的问题,则要确定风险管理活动中每一类别行动的具体领导者、支持者及行动小组成员,明确各自的岗位职责。
(6)如果是预算问题,则控制和修正用于项目的预算。
2.2风险的可接受性
对风险的可接受性提出不同的问题:
(1)风险是否低到不需要对他进行考虑?
(2)是否不再有任何理由去考虑风险,或者风险已降到喝了可行的低水平,并且风险已被收益超过?
(3)是否所有的风险对所有收益的全面平衡是可接受的?
2.3风险的严重水平的分类
| 序号 | 风险严重度定量的描述 | 风险严重度定量的描述 | 备注 | ||||||||
| 极高 | 高 | 中 | 较低 | 低 | 极高 | 高 | 中 | 较低 | 低 | ||
3.1规模风险
| 编号 | 规模风险 | 常见的风险 | 现状 | 识别结果 | ||
| 1 | 产品估算的结果缺乏可观依据 | 1.估算没有依据历史数据,而是依据个人经验 2.没有采用LOC或FP等正规估算方法 3.估算所使用的单位不是组织级所需求的,如人/日 4.估算时没有依据程序、文件或事务处理的数目来估算产品规模,而是凭感觉 | 是 | 否 | 不考虑 | |
| 2 | 产品规模估计可信度低 | 1.估算产品规模与以前产品的规模的平均值存在较大的偏差 2.估算的规模跟以往的类似项目的实际规模存在较大的偏差 | ||||
| 3 | 对产品的性能估计不足 | 1.系统所承受的用户访问数估计不足 2.系统所应承受的点击数超过预期 3.对数据库的空间或性能呢个要求超过预期 | ||||
| 4 | 需求变更过多,导致规模估算不能稳定 | 1.需求评审签字后,客户经常要求修改已有的需求 2.客户经常增加新需求 3.需求已经成为项目基准,单需求还在继续变化 4.需求定义欠佳,而进一步的定义回扩展项目范畴 5.添加额外的需求 6.产品定义含混的部分比预期的需要更多的时间 7.在做需求中客户参与不够 8.缺少有效的需求变化管理过程 | ||||
| 5 | 估算是没有考虑服用已有的成果 | 1.没有考虑代码的重用 2.没有考虑利用过去项目的需求、设计等成果 | ||||
| 编号 | 商业影响风险 | 常见的风险 | 现状 | 识别结果 | ||
| 1 | 产品不符合公司的商业恶略 | 公司的开发策略重点发生转移 | 是 | 否 | 不考虑 | |
| 2 | 产品延期交付或存在严重缺陷 | 1.可能影响后续合同的签订 2.可能要付出很大的违约或维护成本 3.有的设备可能会在国内设备可以替代 | ||||
| 3 | 由于重点转移或人员的变动而失去了高级管理层的支持(管理风险) | 支持项目的高层经理离职 | ||||
| 4 | 没有得到预算或人力上的保证 | 1.项目所需要的人力资源没有保证 2.预算没有保证 | ||||
| 5 | 交付期限不合理,导致不合理的开发计划;不显示的交付期限 | 迫于客户或高层的压力所指定的交付时间超出项目组的能力或资源范畴,可能造成延期 | ||||
| 6 | 没有获得公司内部的足够支持 | 1.项目相关的其他部门参与和关注不足 2.项目没获得公司高层的支持 | ||||
| 7 | 没有得到公司外部的足够支持 | 1.合作方的供货期、技术支持力度等方面存在不足 2.机器或软件等不能及时到位,导致项目人员无法按时工作 | ||||
| 编号 | 客户相关风险 | 常见的风险 | 现状 | 识别结果 | ||
| 1 | 跟客户的沟通不畅 | 1.与客户的沟通渠道不通畅,没有建立有效、快捷的沟通方式,导致问题无法得到及时有效的解决 2.客户不积极参与项目相关的沟通会议,导致项目问题理解不一致 | 是 | 否 | 不考虑 | |
| 2 | 客户对项目过程支持不足 | 1.客户方不能及时提供项目过程中所需要的软硬件、文档等必须资源或提供的资料指导性不强 2.客户方人力资源不容易协调 3.客户方的软硬件资源不容易协调 4.客户方不愿意参加复审,可能导致问题理解不一致 | ||||
| 3 | 客户不能就需求开发提供有力支持 | 1.客户不同意花时间召开正式的需求范围确定会议,确定项目的范围,导致项目范围不符合客户实际的想法 2.客户不愿意让项目的人真实的体验客户的实际工作,使得对客户的需求理解不深入 3.客户缺乏产品领域的技术素养,导致提供的需求不准确或表达不清楚 4.客户方选出的参与需求开发的人员缺乏相应的技术素养 | ||||
| 4 | 客户对项目组成或产品的要求或期望不切实际 | 1.客户提出的需求超出合理范围 2.客户不了解软件过程,导致对项目提出不显示的期望 3.客户对项目的进度估计过于乐观 4.客户对产品的性能要求不切实际 5.客户对产品部分功能要求不可行 | ||||
| 5 | 对项目跟原有系统的融合支持不足 | 1.对一下需求没雨详细说明 1)是否需要继承或整合遗留系统 2)是否需要与其他系统有硬件或软件的接口 2.客户方不能提供原有系统跟此项目相关部分的详细明确的文档说明 | ||||
| 6 | 客户方相关人员变动 | 1.原计划跟项目组合作的人员进行了调整 2.项目组的客户反重要接口人离职或工作调整 | ||||
| 7 | 客户方频繁变更需求 | 频繁变更需求可能导致项目延期 | ||||
| 8 | 客户方不同人之间的意见不一致 | 对界面风格的意见不一致,导致项目组无所适从 | ||||
| 9 | 客户方人员不能按时提供支持 | 跟项目组相关的重要人物休假,导致需求评审时缺人 | ||||
| 编号 | 管理过程风险 | 常见的风险 | 现状 | 识别结果 | ||
| 1 | 项目组缺乏软件开发标准过程或软件工程的知识 | 1.没有对项目进行CMMT的培训,或者培训不够 2.项目成员缺乏软件工程知识,导致项目过程不能得到有效理解和执行 | 是 | 否 | 不考虑 | |
| 2 | 没有对工作产品进行有效配置管理 | 1.配置管理计划对工作产品的定义不够全面 2.没有使用配置管理来维护系统/软件需求 3.没哟砽配置管理工具对产品的版本进行控制 | ||||
| 3 | 没有对项目过程和产品进行质量保证工作 | 1.没有对工作产品进行评审和复审,导致问题不能及时发现 2.项目过程没有按照标准过程进行 3.没有有效的产品评审标准,可能导致产品的问题不能及时发现 | ||||
| 编号 | 技术过程风险 | 常见的风险 | 现状 | 识别结果 | ||
| 1 | 缺乏有效的项目工具支持 | 1.没有有效的软件测试工具,可能造成问题无法发现 2.没有有效地项目管理和跟踪工具,可能导致项目管理的工作量增加 | 是 | 否 | 不考虑 | |
| 2 | 项目过程不能按照计划进行 | 人员技能不足,导致工作不能按计划完成 | ||||
| 编号 | 技术风险 | 常见的风险 | 现状 | 识别结果 | ||
| 1 | 项目采用了新技术 | 1.项目引入了新的需求分析、设计或测试方法,这些方法对项目而言是新的 2.项目引入了“过于先进”的技术,技术的不确定性可能威胁到软件的质量和交付的时间 | 是 | 否 | 不考虑 | |
| 2 | 项目涉及新的接口硬件或软件 | 1.待开发的软件需要使用从未使用过的或未经证实的硬件接口 2.待开发的软件需要使用从未使用过的或未经证实的软件接口 | ||||
| 3 | 需求人员你缺乏相应的领域知识或需求分析技能 | 需求人员缺乏相应的领域知识或需求分析技能 | ||||
| 4 | 项目引入了新的辅助工具 | 1.项目引入了新的需求管理工具、测试工具 2.项目引入了新的软件设计工具 3.对新工具培训不足 | ||||
| 5 | 技术风险 | 陈旧的技术可能导致将来的维护比较困难 | ||||
| 编号 | 开发环境风险 | 常见的风险 | 现状 | 识别结果 | ||
| 1 | 项目成员不熟悉项目所使用的集成开发环境或语言 | 1.项目成员对WebLogic或WebShere不熟悉 2.项目成员对.NET不熟悉 3.项目成员对Java语言不熟悉 | 是 | 否 | 不考虑 | |
| 2 | 项目成员不熟悉项目所使用的操作系统 | 项目成员对Linux或Unix语言不熟悉 | ||||
| 3 | 项目成员不熟悉项目所使用的数据库系统 | 项目成员不熟悉项目所使用的数据库系统 | ||||
| 编号 | 人员数目及经验相关风险 | 常见的风险 | 现状 | 识别结果 | ||
| 1 | 项目所需人员不能保证 | 1.所需要的开发人员不足 2.测试人员不足 3.架构师不能及时到位 | 是 | 否 | 不考虑 | |
| 2 | 项目成员缺乏必要的技能或经验 | 1.对项目成员的技术培训不到位 2.项目组缺乏经验的新员工多 | ||||
| 3 | 人员流动或重要成员流失 | 1.有人身兼数职,不能保证工作时间 2.开发人员的流失严重 3.设计师关键时候离职 | ||||
| 4 | 项目成员工作不敬业或沟通合作不顺畅 | 部分成员有情绪,不能安心工作 | ||||
| 5 | 兼职员工不能按时交付成果 | 美工不能按时提供界面设计 | ||||
| 编号 | 项目特定风险 | 常见的风险 | 现状 | 识别结果 | ||
| 1 | 测试环境不匹配 | 客户方提供的工验收测试的环境跟实际运行环境有较大的差别 | 是 | 否 | 不考虑 | |
| 2 | 历史数据向新环境迁移 | 数据库结构变化比较大,导致歉意规则难以制定 | ||||
| 3 | 质量度量值不达标 | 1.需求产生的缺陷超过预定标准 2.验收测试产生的缺陷超过预定标准 | ||||
| 概率P | 影响I | 风险等级 | 优先级 | 响应方式 | 相应活动启动阶段 | 风险状态 | 风险相应活动 | 提醒 |
| 跟踪日期 | 周次 | 项目阶段 | |||||
| 风险编号 | 识别人 | 识别日期 | 风险类型 | 风险描述 | 预期发生时期 | 影响分析描述 | 风险责任人 |
| 日期 | 项目阶段 | |||||||
| 风险编号 | 风险描述 | 上榜次数 | 是否发生 | 发生的时期 | 采取的措施 | 措施是否有效 | 风险当前状态 | 说明 |
| 总结说明 | ||||||||
