软件风险基础知识

在软件开发和实际应用过程中,都会存在一定的风险,而对于该种风险的规避则已经成为软件测试工作开展过程中的核心所在。

 

软件风险管理的概念:

在软件开发过程中所遭遇到的预算和进度问题以及部分对软件项目会产生影响的因素,都被称之为软件项目风险。对于软件风险的管理遵循以下基本原则,即试图通过一种完全可行的原则和实践,对可能影响项目成功的因素进行规范化控制和管理,继而减少项目失败的概率和风险,提升团队自身的稳固性。借助风险管理能够有效帮助项目经理及时找寻到项目的核心,继而将有限精力放置于重大风险的管理和控制方面,最终使得测试管理工作由被动转为主动。

 

软件项目中的风险来源:

软件项目的风险主要来源于需求、技术、成本和进度。

需求风险

已经纳入基线的需求在继续变更;需求定义不准确,进一步的定义会扩展项目。

在软件开发过程中,由于产品自身的定义并不明确,因此常常会需要比预期更多的时间对其进行更正,此外,在需求制定过程中,因为没有客户的积极参与,使得需求变化管理难以准确制定,更无法形成计划编制风险。计划、资源以及产品定义完全依赖客户或者上层领导的口头指令,在此过程中常常会出现指令不一致的现象。计划的制定其实是对项目进行优化,但是不现实的计划只能算作期待状态。

 

组织和管理风险

仅仅由管理层或者市场人员完成技术决策,将会使得计划整体进度缓慢,计划时间也会不断延长,低效的项目组织结构会使得生产效率大大降低。管理层审查决策的周期比预期的时间长;预算削减,打乱项目计划;管理层作出了打击项目组织积极性的决定;缺乏必要的规范,导至工作失误与重复工作;非技术的第三方的工作(预算批准、设备采购批准、法律方面的审查、安全保证等)时间比预期的延长。

 

人员具有的风险

在项目实施过程中如果对于人员的培训不够及时,开发人员和管理阶层之间存在矛盾,那么将会使得决策速度大大放缓,继而影响项目的整体进度。而项目团队如果缺乏激情,那么将会极大的影响自身的生产能力。项目后期加入新的开发人员,需进行培训并逐渐与现有成员沟通,从而使现有成员的工作效率降低;由于项目组成员之间发生冲突,导致沟通不畅、设计欠佳、接口出现错误和额外的重复工作;不适应工作的成员没有调离项目组,影响了项目组其他成员的积极性;没有找到项目急需的具有特定技能的人。

 

开发环境存在的风险

在开发环境中存在的风险主要包括设施没有及时到位,或者虽然能够到位但是缺乏配套设施。设施的放置过于拥挤和杂乱或者出现破损。开发工具没有及时到位,对于开发工具的使用不如所期待的那样产生既定效果。对于全新开发工具的学习时间远远超过预期,并且内容极为繁多。

 

客户风险:

客户对于最后交付的产品不满意,要求重新设计和重做;客户的意见未被采纳,造成产品最终无法满足用户要求,因而必须重做;客户对规划、原型和规格的审核决策周期比预期的要长;客户没有或不能参与规划、原型和规格阶段的审核,导致需求不稳定和产品生产周期的变更;客户答复的时间(如回答或澄清与需求相关问题的时间)比预期长;客户提供的组件质量欠佳,导致额外的测试、设计和集成工作,以及额外的客户关系管理工作。

 

产品风险:

矫正质量低下的不可接受的产品,需要比预期更多的测试、设计和实现工作;开发额外的不需要的功能(镀金),延长了计划进度;严格要求与现有系统兼容,需要进行比预期更多的测试、设计和实现工作;要求与其他系统或不受本项目组控制的系统相连,导致无法预料的设计、实现和测试工作;在不熟悉或未经检验的软件和硬件环境中运行所产生的未预料到的问题;开发一种全新的模块将比预期花费更长的时间;依赖正在开发中的技术将延长计划进度。

 

设计和实现风险:
设计质量低下,导致重复设计;一些必要的功能无法使用现有的代码和库实现,开发人员必须使用新的库或者自行开发新的功能;代码和库质量低下,导致需要进行额外的测试,修正错误,或重新制作;过高估计了增强型工具对计划进度的节省;分别开发的模块无法有效集成,需要重新设计或制作。

 

开发中过程风险:

大量的纸面工作导致进程比预期的慢;前期的质量保证行为不真实,导致后期的重复工作;太不正规(缺乏对软件开发策略和标准的遵循),导致沟通不足,质量欠佳,甚至需重新开发;过于正规(教条地坚持软件开发策略和标准),导致过多耗时于无用的工作;向管理层撰写进程报告占用开发人员的时间比预期的多;风险管理粗心,导致未能发现重大的项目风险。

 

 

 


 

软件风险一般包括不确定性和损失两个特性。

其中不确定性是指风险可能发生,也可能不发生;

损失是当风险确实发生时,会引起的不希望的后果和损失。


救火和危机管理是对不适合但经常采用的软件风险管理策略。

已知风险和未知风险是对软件风险进行分类的一种方式。

员工和预算是在识别项目风险时需要识别的因素。

风险预测从风险发生的可能性大小以及风险发生所产生的后果是否严重两个方面评估风险。


风险类型

客户特性是指与客户的素质以及开发者和客户定期通信的能力相关的风险;

过程定义是指与软件过程被定义的程度以及它们被开发组织所遵守的程序相关的风险;

开发环境是指与用以构建产品的工具的可用性及质量相关的风险;

构建技术是指与待开发软件的复杂性及系统所包含技术的“新奇性”相关的风险。


风险分析

风险分析在软件项目开发中具有重要作用,包括风险识别风险预测风险评估风险控制等。

在风险识别过程中,要识别潜在的预算、进度、个体、资源、用户和需求等方面的问题以及对整个项目的影响,并建立风险条目检查表,列出所有可能的风险事项。

在风险预测过程中,需要建立一个表示风险可能性的参考标准,描述风险条目的结果,估计风险对项目的影响等。

风险评估就是量化测评某一事件或事物带来的影响或损失的可能程度。

风险控制是指风险管理者采取各种措施和方法,消灭或减少风险事件发生的各种可能性,或风险控制者减少风险事件发生时造成的损失。风险控制的四种基本方法是:风险回避、损失控制、风险转移和风险保留。

 

转载自:http://www.360doc.com/content/17/0721/07/22573478_672976467.shtml

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值