软件工程-风险管理

上传人:re****.1 文档编号:470067663 上传时间:2022-07-26 格式:DOCX 页数:20 大小:29.66KB
返回 下载 相关 举报
软件工程-风险管理_第1页
第1页 / 共20页
软件工程-风险管理_第2页
第2页 / 共20页
软件工程-风险管理_第3页
第3页 / 共20页
软件工程-风险管理_第4页
第4页 / 共20页
软件工程-风险管理_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《软件工程-风险管理》由会员分享,可在线阅读,更多相关《软件工程-风险管理(20页珍藏版)》请在金锄头文库上搜索。

1、风险管理引言风险是关注未来将要发生的事情。今天和昨天已不再被关心,如同我们已经在收获由我们过去的行为所播下的种子。问题是:我们是否能够通过改变我们今天的行为,而为一个不同的、充满希望的、更美好的明天创造机会。其次,这意味着,风险涉及改变,如思想、 观念、行为、或地点的改变第三,风险涉及选择及选择本身所包含的不确定性。因此,就象死亡和税收一样,风险是生活中最不确定的元素之一。当在软件工程领域考虑风险时,Charette的三个概念定义是显而易见的。未来是我们所关心的一一什么样的风险会导致软件项目彻底失败呢?改变也是我们所关心的一一用户需求、开发技术、目标计算机、以及所有其他与项目相关的因素的改变将

2、会对按时交付和总体成功产生什么影响呢?最后,我们必须抓住选择机会一一我们应该采用什么方法及工具?需要多少人员参与工作?对质量的要求要达到什么程度才是“足够的”?Peter Drucker DRU75曾经说过:“当没有办法消除风险,甚至连试图降低该风险 也存在疑问时,这些风险就是真正的风险了。在我们能够标识出软件项目中的“真正风 险”之前,识别出所有对管理者及开发者而言均为明显的风险是很重要的。1.1 被动和主动的风险策略被动风险策略被戏称为“印地安那琼斯学派的风险管理” THO92。印地安那琼斯在以其名字为影片名的电影中, 每当面临无法克服的困难时, 总是一成不变地说: “不要 担心,我会想出

3、办法来的! ”。印地安那琼斯从不担心任何问题,直到它们发生,再做出英雄式的反应。遗憾的是,一般的软件项目管理者并不是印地安那琼斯,且软件项目组的成员也不是他的可信赖的伙伴。大多数软件项目组还是仅仅依赖于被动风险策略。被动策略最多不过是针对可能发生的风险来监督项目, 直到它们变成真正的问题时, 才会拨出资源来处理它们。更普遍的情况是,软件项目组对于风险不闻不问,直到发生了错误,这时, 项目组才赶紧采取行动,试图迅速地纠正错误。这常常被称为“救火模式”。当这样的努力失败后,“危机管理” CHA92接管一切,这时项目已经处于真正的危机中了。对于风险管理的一个更聪明的策略是主动式的。主动策略早在技术工

4、作开始之前就已 经启动了。标识出潜在的风险,评估它们出现的概率及产生的影响,且按重要性加以排序, 然后,软件项目组建立一个计划来管理风险。主要的目标是预防风险, 但因为不是所有的风险都能够预防,所以,项目组必须建立一个意外事件的计划,使其在必要时能够以可控的及有效的方式作出反应。在本章其余部分,我们将讨论风险管理的主动策略。1.2 软件风险虽然对于软件风险的严格定义还存在很多争议,但在风险中包含了两个特性这一点上 是已达成了共识的HIG95:不确定性一一刻划风险的事件可能发生也可能不发生;即,没有100%发生的风险(100 %发生的风险是加在项目上的约束)。损失一一如果风险变成了现实,就会产生

5、恶性后果或损失。进行风险分析时,重要的是量化不确定性的程度及与每个风险相关的损失的程度。为 了实现这点,必须考虑不同类型的风险。项目风险威胁到项目计划。也就是说,如果项目风险变成现实,有可能会拖延项目的 进度,且增加项目的成本。项目风险是指潜在的预算、进度、人力(工作人员及组织)、资 源、客户、及需求等方面的问题以及它们对软件项目的影响。在第5章中,项目复杂性、规模、及结构不确定性也被定义为项目(估算)风险因素。技术风险威胁到要开发软件的质量及交付时间。如果技术风险变成现实,则开发工作 可能变得很困难或根本不可能。技术风险是指潜在的设计、实现、接口、验证、和维护等方 面的问题。此外,规约的二义

6、性、技术的不确定性、陈旧的技术、及“先进的”技术也是风 险因素。技术风险的发生是因为问题比我们所设想的更加难以解决。商业风险威胁到要开发软件的生存能力。商业风险常常会危害项目或产品。五个主要的商业风险是:(1)开发了一个没有人真正需要的优秀产品或系统(市场风险);(2)开发的产品不再符合公司的整体商业策略(策略风险);(3)建造了一个销售部门不知道如何去卖的产品;(4)由于重点的转移或人员的变动而失去了高级管理层的支持(管理风险)以及(5)没有得到预算或人力上的保证(预算风险)。应该注意到的很重要的一点是:简 单的分类并不总是行得通。某些风险根本无法事先预测。另一种常用的分类方式是由Chare

7、tte CHA89提出的。已知风险是通过仔细评估项目计划、开发项目的商业及技术环境、以及其他可靠的信息来源(如,不现实的交付时间,没 有需求或软件范围的文档、恶劣的开发环境)之后可以发现的那些风险。可预测风险能够从 过去项目的经验中推断出来(如,人员调整、与客户之间无法沟通、由于需要进行维护而使开发人员精力分散)。不可预测风险就象纸牌中的大王,它们可能、也会真的出现,但很难 事先识别出它们来。1.3 识别风险识别风险是试图系统化地确定对项目计划(估算、进度、资源分配)的威胁。通过识 别已知的和可预测的风险,项目管理者已经迈出了第一步一一在可能时避免这些风险,且当必要时控制这些风险。在1.2节中

8、提出的每一类风险又分为两个不同的类型:一般性风险和特定产品的风险。一般性风险对每一个软件项目而言都是一个潜在的威胁。特定产品的风险只有那些对当前项目的技术、人员、及环境非常了解的人才能识别出来。为了识别特定产品的风险,必须检查项目计划及软件范围说明,并给出以下问题的答案:“本项目中有什么特殊的特性可能会威胁到我们的项目计划?”一般性风险和特定产品的风险都应该被系统化地标识出来。Tom Gilb GIL88很贴切地表达了这点:“如果你不主动攻击风险,风险就会主动攻击你”。识别风险的一个方法是建立风险条目检查表。该检查表可以用于识别风险,并使得人 们集中来识别下列常见子类型中的已知的及可预测的风险

9、:项产品规模一一与要建造或要修改的软件的总体规模相关的风险。项商业影响一一与管理或市场所加诸的约束相关的风险。项客户特性一一与客户的素质以及开发者和客户定期通信的能力相关的风险。 过程定义一一与软件过程被定义的程度以及它们被开发组织所遵守的程度相关的风险。 开发环境一一与用以建造产品的工具的可用性及质量相关的风险。 建造的技术一一与待开发软件的复杂性及系统所包含技术的“新奇性”相关的风 险。 人员数目及经验一一与参与工作的软件工程师的总体技术水平及项目经验相关的风险。风险条目检查表能够以不同的方式来组织。与上述每个话题相关的问题可以由每一个软件项目来回答。这些问题的答案使得计划者能够估算风险产

10、生的影响。我们也可以采用另一个不同的风险条目检查表,它仅仅列出与每一个常见子类型有关的特性。最后,列出一组“风险元素和驱动因子” AFC86以及它们发生的概率。关于性能、支持、成本、及进度的驱动因子将在以后讨论。1.3.1 产品规模风险有经验的管理者几乎都对下面的陈述没有异议:项目风险是直接与产品规模成正比的。下面的风险检查表中的条目标识了与产品(软件)规模相关的常见风险: 是否以LOC FP估算产品的规模? 对于估算出的产品规模的信任程度如何? 是否以程序、文件或事务处理的数目来估算产品规模? 产品规模与以前产品的规模平均值的偏差百分比是多少? 产品创建或使用的数据库大小如何? 产品的用户数

11、有多少? 产品的需求改变多少?交付之前有多少?交付之后有多少? 复用的软件有多少?在每一种情况下,待开发产品的信息必须与过去的经验加以比较。如果出现了较大的百分比偏差,或者如果数字相近但过去的结果很不令人满意,则风险较高。1.3.2 商业影响风险有一个大型软件公司的工程经理在他的墙上挂了一个镜框,上面写着:“上帝给了我头脑使我成为一个优秀的项目管理者,同时每当销售部门设定项目的最后期限时,也让我经历了地狱般的煎熬”。销售部门是受商业驱动的,而商业考虑有时会直接与技术现实发生冲 突。下面的风险检查表中的条目标识了与商业影响相关的常见风险: 本产品对公司的收入有何影响? 本产品是否得到公司高级管理

12、层的重视? 交付期限的合理性如何? 将会使用本产品的用户数及本产品是否与用户的需要相符合? 本产品必须能与之互操作的其他产品/系统的数目? 最终用户的水平如何? 必须产生并交付给用户的产品文档的量与质如何? 政府对本产品开发的约束? 延迟交付所造成的成本消耗是多少? 产品缺陷所造成的成本消耗是多少?对于待开发产品的每一个回答都必须与过去的经验加以比较。如果出现了较大的百分比偏差,或者如果数字相近但过去的结果很不令人满意,则风险较高。1.3.3 客户相关的风险并非所有客户都是一样的。Pressman和Herron PRE91在讨论这个话题时曾经说过:客户有不同的需要。一些人知道他们需要什么;而另

13、一些人知道他们不需要什么。一 些客户希望进行详细讨论,而另一些客户则满足于模糊的承诺。客户有不同的个性。一些人喜欢享受客户的身份一一紧张、谈判、一个好产品带来的 心理满足;而另一些人则根本不喜欢作为客户。一些人会高兴地接受几乎任何交付的产品, 并能充分利用一个不好的产品;而另一些人则会对质量差的产品猛烈抨击。一些人会对质量好的产品表示他们的赞赏;而另一些人则不管怎样都会抱怨不休。客户和他们的供应商之间也有各种不同的通信方式。一些人非常熟悉产品及生产厂商;而另一些人则可能素未谋面,仅仅通过信件往来和几个匆忙的电话与生产厂商沟通。客户常常是矛盾的。他们希望昨天的一切工作都是免费的。生产厂商经常陷入

14、客户自 己的矛盾之中。一个“不好的”客户可能会对一个软件项目组能否在预算内按时完成项目产生很大的 影响。对于项目管理者而言, 不好的客户是对项目计划的巨大威胁和实际的风险。下面的风险检查表中的条目标识了与客户特征相关的常见风险: 你以前是否曾与这个客户合作过? 该客户是否很清楚需要什么?他能否花时间把需求写出来? 该客户是否同意花时间召开正式的需求收集会议(第11章),以确定项目范围? 该客户是否愿意建立与开发者之间的快速通信渠道? 该客户是否愿意参加复审工作? 该客户是否具有该产品领域的技术素养? 该客户是否愿意让你的人来做他们的工作,即,当你的人在做具体的技术工作时, 该客户是否会坚持在旁

15、边监视?该客户是否了解软件过程?如果对于这些问题中的任何一个的答案是否定的,则需要进行进一步的调研,以评估 潜在的风险。1.3.4 过程风险如果软件过程(第2章)定义得不清楚;如果分析、设计、及测试以无序的方式进行; 如果质量是每个人都认为很重要的概念,但没有人切实地采取行动来保证它,那么,这个项目就处于风险之中。以下问题摘自一次由R.S.Pressman & Associates , Inc. PRE95建立的对软件工程实践活动进行评估的研讨会。这些问题已经在软件工程研究所(SEI)的过程评估调查表中进行了改编。过程问题 你的高级管理层是否支持一份已经写好的政策综述,该综述中强调了软件开发标准 过程的重要性吗? 你的组织是否已经建立了一份已经成文的、用于本项目的软件过程的说明? 开发人员是否“签约”同意按照文档所写的软件过程进行开发工作,并自愿使用 它? 该软件过程是否可以用于其他项目? 你的组织是否已经为管理者及技术人员开设了一系列的软件工程培训课程? 是

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 演讲稿/致辞

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号