管理论文
当前位置:首页 > 论文范文 > 管理论文 > 列表页

软件项目各开发阶段风险管理论文

小草范文网  发布于:2016-12-19  分类: 管理论文 手机版

篇一:软件项目管理论文—项目风险管理

软件项目管理论文

项目风险管理

姓 名:学 号:系 别:

专 业:

指导老师:

摘要

软件项目风险管理在软件项目管理中扮演着十分重要的角色,如何有效地规避风险在软件开发中起着至关重要的作用。本文主要阐述如何对项目风险进行识别、分析、监控和应对。

关键词:软件项目风险管理

引言

我第一次听到信仰的论理学这个词,更是第一次知道项目风险管理的理论基础是信仰的伦理学。 在《与熊共舞》一书中,克里福德举了这样一个例子:一位船主即将送他的船出海,船上满载旅客。他知道这船很旧,而且当初造得就不怎么样,因此他非常担心这船是否能够安全地完成此次航行。但是,一番挣扎之后,船主还是战胜了自己的疑虑,说服自己相信:再多一次航行也不会有什么大不了的祸事。毕竟,这艘船也是久经风雨了,不管遇上多么恶劣的天气,它也总能安全回家。那么,这一次又怎么会不行呢? 于是,这艘船出海了,然后带着所有乘客沉入了海底。在出发之前,船主确实真诚地相信这艘船的牢靠,但是他这个信念的真诚性丝毫帮不了他,他关于船的牢靠并不是通过认真的风险分析得出来的,而是通过扼杀自己对于这艘船所有的疑虑。因此,他必须对这场事故负责。

然而,假如这艘船最终安然无恙地完成了旅行,这是不是就能减轻甚至排除船主的罪责呢?决不。一旦行为完成了,是对是错也就永远铁定了,不可能因为行为的善果或恶果偶然没有达成这一事实所改变。无论船沉或是不沉,船主都不会是无罪的,他只可能是作恶而没被发现罢了。对错问题,只和信念的根源有关,而与信念内容本身无关。

项目风险管理的核心就是克里福德的“信仰的伦理学”, 它要求每个信念必须接受伦理的拷问,它将帮助人们去除在项目风险管理中自欺欺人的想法,促使人们做出更为明智的选择。在做出选择之前,对项目风险进行识别、分析、监控和应对,是软件项目开发工作顺利完成的保证。

一、背景

随着信息技术的飞速发展,软件产品的规模也越来越庞大,个人单打独斗的作坊式开发方式已经越来越不适应发展的需要。各软件企业都在积极将软件项目管理引入开发活动中,对开发实行有效的管理。

从概念上讲,软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。实际上,软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定发展(即减小开发风险)。 软件开发不同于其他产品的制造,软件的整个过程都是设计过程(没有制造过程);另外,软件开发不需要使用大量的物质资源,而主要是人力资源;并且,软件开发的产品只是程序代码和技术文件,并没有其他的物质结果。基于上述特点,软件项目管理与其他项目管理相比,有很大的独特性。

但是近几年来软件开发技术、工具都有了很大的进步,但是软件开发超时、超支、甚至不能满足用户需求而根本没有得到实际使用的情况仍然比比皆是。软件项目开发和管理中一直存在着种种不确定性,严重影响着项目的顺利完成和提交。同时,软件开发人员对风险管理的技术和实践缺乏了解。因此,我们认为很有必要对风险管理进行研究

二、风险管理概念 软件开发中的风险是指软件开发过程中及软件产品本身可能造成的伤害或损失。风险关注未来的事情,这意味着,风险涉及选择及选择本身包含的不确定性,软件开发过程及软件产品都要面临各种决策的选择。风险是介于确定性和不确定性之间的状态,是处于无知和完整知识之间的状态。另一方面,风险将涉及思想、观念、行为、地点等因素的改变。

当在软件工程领域考虑风险时,我们要关注以下的问题:什么样的风险会导致软件项目的彻底失败;用户需求、开发技术、目标计算机以及所有其他与项目有关的因素的改变将会对按时交付和总体成功产生什么影响;对于采用何种方法和工具,需要多少人员参与工作的问题,我们如何选择和决策;软件质量要达到什么程度才是“足够的”。当没有办法消除风险,甚至连试图降低该风险也存在疑问时,这些风险就是真正的风险了。在我们能够标识出软件项目中的真正风险之前,识别出所有对管理者和开发者而言均为明显的风险是很重要的。

风险管理在项目管理中占有非常重要的地位。首先,有效的风险管理可以提

高项目的成功率。其次,风险管理可以增加团队的健壮性。与团队成员一起进行风险分析可以让大家对困难有充分估计,对各种意外有心理准备,大大提高组员的信心,从而稳定队伍。第三,有效的风险管理可以帮助项目经理抓住工作重点,将主要精力集中于重大风险,将工作方式从被动救火转变为主动防范。

被动风险策略是针对可能发生的风险来监督项目,直到它们变成真正的问题时,才会拨出资源来处理它们。更普遍的是,软件项目组对风险不闻不问,直到发生了错误才赶紧采取行动,试图迅速地纠正错误。这种管理模式常常被称为“救火模式”。当补救的努力失败后,项目就处在真正的危机之中了。

对于风险管理的一个更聪明的策略是主动式的。主动策略早在技术工作开始之前就已经启动了。标识出潜在的风险,评估它们出现的概率及产生的影响,对风险按重要性进行排序,然后,软件项目组建立一个计划来管理风险。主动策略中的风险管理,其主要目标是预防风险。但是,因为不是所有的风险都能够预防,所以,项目组必须建立一个应付意外事件的计划,使其在必要时能够以可控的及有效的方式做出反应,任何一个系统开发项目都应将风险管理作为软件项目管理的重要内容。

在进行软件项目风险管理时,要标识出潜在的风险,评估它们出现的概率及产生的影响,并按重要性加以排序,然后建立一个规划来管理风险。风险管理的主要目标是预防风险,但不是所有的风险都能够预防。所以必须建立一个意外事件计划,使其在必要时能以可控的和有效的方式做出反应。风险管理目标的实现包含三个要素。首先,必须在项目计划书中写下如何进行风险管理;第二,项目预算必须包含解决风险所需的经费,如果没有经费,就无法达到风险管理的目标;第三,评估风险时,风险的影响也必须纳入项目规划中。

风险管理涉及的主要过程包括:风险识别,风险量化,风险应对计划制定和风险监控。风险识别在项目的开始时就要进行,并在项目执行中不断进行。就是说,在项目的整个生命周期内,风险识别是一个连续的过程。

风险识别:风险识别包括确定风险的来源,风险产生的条件,描述其风险特征和确定哪些风险事件有可能影响本项目。风险识别不是一次就可以完成的事,应当在项目的自始至终定期进行。

风险量化:涉及对风险及风险的相互作用的评估,是衡量风险概率和风险对项目目标影响程度的过程。风险量化的基本内容是确定那些事件需要制定应对措施。

风险应对计划制定:针对风险量化的结果,为降低项目风险的负面效应制定风险应对策略和技术手段的过程。风险应对计划依据风险管理计划、风险排序、风险认知等依据,得出风险应对计划、剩余风险、次要风险以及为其它过程提供得依据。

风险监控:涉及整个项目管理过程中的风险进行应对。该过程的输出包括应对风险的纠正措施以及风险管理计划的更新。

三、风险管理过程

1、 首先是风险识别。

这里主要介绍头脑风暴、Delphi和SWOT分析法。 1)头脑风暴法。这种方法能够激发员工的创新思维,在集体讨论问题的过

程中,每提出一个新的观念,都能引发他人的联想。相继产生一连串的新观念,产生连锁效应,为创造性地解决问题提供了更多的可能性。具体流程如下:

图1

2)Delphi分析法。这种方法可以避免群体决策的一些可能缺点,声音最大或地位最高的人没有机会控制群体意志,因为每个人的观点都会被收集,另外,管理者可以保证在征集意见、作出决策时,没有忽视重要观点。具体流程如下:

篇二:软件开发项目的风险分析与控制

软件开发项目的风险分析与控制

一、软件开发项目的风险背景

信息产业的发展是目前发展最快的行业之一,也是对社会影响最大的一个行业,它不但为我们创造了巨大的财富,而且从各个方面改变着我们的生活,达到一个行业,小到一项服务。我们不得不承认软件是二十一世纪最不可思议的产品。伴随着软件开发技术的不断更新、软件数量的增多、软件复杂程度不断加大、客户对产品的要求也在不断的提高,随之而来的是软件开发项目给软件开发企业和需求企业带来的巨大风险。软件开发项目的成功与否会直接影响到公司的生存。这对软件开发企业来讲应该是更大的难题。一方面是业务需求更加复杂。人们对软件质量和用途的期望大幅度提高,对业务系统的要求也越来越挑剔。另一方面是开发成本不断缩减。在此形势下,风险管理与控制已成为软件开发项目成败的关键。

软件开发项目由于其具有连续性、复杂性、少参照性,无标准规范等特点,其风险程度较高。目前国内的大多数软件开发企业还缺乏对软件开发项目的风险认识,缺少进行系统、有效的度量和评价的手段。据有调查数据显示,有15—35%的软件项目中途被取消,剩下的项目不是超期就是超出预算或是无法达到预期目标。另外,软件项目因风险控制和管理原因失败的约占90% ,可见,软件风险控制与管理在目前的软件开发项目中的重要性。

二、软件开发项目的风险来源及对项目成败的影响

软件开发项目风险是指在软件生命周期中所遇到的所有的预算、进度和控制等各方面的问题,以及由这些问题而产生的对软件项目的影响。软件项目风险经常会涉及许多方面,如:缺乏用户的参与,缺少高级管理层的支持,含糊的要求,没有计划和管理等,总体概括下来应该由五大方面。

1、产品规模风险

项目的风险是与产品的规模成正比的。与软件规模相关的常见风险因素有:

(1)估算产品规模的方法(包括:代码行,文件数,功能点等),(2)产品规模估算的信任度,(3)产品规模与以前产品规模平均值的偏差,(4)产品的用户数,(5)复用的软件有多少,(6)产品的需求变更多少等。一般规律,产品规模越大,以上的问题就越突出,尤其是估算产品规模的方法,复用软件的多少,需求变化。

2、需求风险

很多项目在确定需求时都面临着一些不确定性。当在项目早期容忍了这些不确定性,并且在项目进展过程当中得不到解决,这些问题就会对项目的成功造成很大威胁。如果不控制与需求相关的风险因素,那么就很有可能产生错误的产品或者拙劣地建造预期的产品。每一种情况对产品来讲都可能致命的。

与客户相关的风险因素有:(1)对产品缺少清晰的认识,(2)对产品需求缺少认同,(3)在做需求中客户参与不够,(4)没有优先需求,(5)由于不确定的需要导致新的市场,(6)不断变化需求,(7)缺少有效的需求变化管理过程,(8)对需求的变化缺少相关分析等。

3、相关性风险

许多风险都是因为项目的外部环境或因素的相关性产生的。经常我们在控制外部的相关性上做的不够,因此缓解策略应该包括可能性计划,以便从第二资源或协同工作资源中取得必要的组成部分,并且觉察潜在的问题。与外部环境相关的因素有:(1)客户供应条目或信息,(2)交互成员或交互团体依赖性,(3)内部或外部转包商的关系,(4)经验丰富人员的可得性,(5)项目的复用性。项目经理圈子

4、技术风险

软件技术的飞速发展和经验丰富员工的缺乏,意味着项目团队可能会因为技巧的原因影响项目的成功。在早期,识别风险从而采取合适的预防措施是解决风险领域问题的关键,比如:培训、聘请顾问以及为项目团队招聘合适的人才等。主要有下面这些风险因素:(1)缺乏培训,(2)对方法、工具和技术理解的不够,

(3)应用领域的经验不足,(4)新的技术和开发方法应用等。

5、管理风险

尽管管理问题制约了很多项目的成功,但是不要因为风险管理计划中没有包括所有管理活动而感到惊奇。在大部分项目里,项目经理经常是写项目风险管理计划的人,他们有先天性的不足——自己检查自己的错误,这是最难的。然而,像这些问题可能会使项目的成功变得更加困难。如果不正视这些棘手的问题,它们就很有可能在项目进行的某个阶段影响项目本身。当我们定义了项目追踪过程并且明晰项目角色和责任,就能处理这些风险因素:(1)计划和任务定义不够充分,(2)实际项目状态,(3)项目所有者和决策者分不清,(4)不切实际的承诺,(5)员工之间的沟通等。项目管理培训

6、安全风险项目管理者联盟

软件产品本身是属于创造性的产品,产品本身的核心技术保密非常重要。但一直以来,我们在软件这方面的安全意识比较淡薄,对软件产品的开发主要注重技术本身,而忽略了专利的保护。软件行业的技术人员流动是很普遍的现象,随着技术人员的流失、变更,很能会导致产品和新技术的泄密,致使我们的软件产品被它公司窃取,导致项目失败。而且在软件方面关于知识产权的认定目前还没有明确的一个行业规范,这也是我们软件项目潜在的风险。

三、风险的分析、管理与控制

1、风险分析

1.1 “流程”因素分析

软件的开发流程般定义为:

需求分析一可行性分析一概要设计一结构化设计一详细设计一编码一软件测试一软件维护。

“流程”中软件项目的风险,主要体现存4个阶段:软件需求阶段、软件设计阶段、软件实现阶段和软件维护阶段

·软件需求阶段

软件的开发是以用户的需求开始,在大多数情况下,用户需求要靠软件开发方诱导,才能保证需求的完整,再以的形式形成《用户需求》这一重要的文档。需求分析更多的是开发方确认需求的可行性和一致性的过程,在此阶段需要和用户进行广泛的交流和确认。需求和需求分析的任何疏漏造成的损失,会在软件系统的后续阶段被一级级地放大,因此本阶段的风险最大。

(转自:wWw.XiAocAoFanWeN.cOm 小 草 范文网:软件项目各开发阶段风险管理论文)

·软件设计阶段

设计的主要目的在于软件功能正确地反映了需求,需求的不完整和对需求分析的不完整或者错误,在设计阶段将被成倍地放大。设计阶段的主要任务是完成系统体系结构的定义,使之能够完成需求阶段的即定目标;另一方面也是检验需求的致性和需求分析的完整性和正确性。

设计阶段的风险主要来自于系统分析人员。分析人员存设计系统结构时过于定制,系统的可扩展性较弱,会给后期维护带来巨大的负担和维护成本的激增。对用户来说系统的使用比例会有明显的折扣,甚至会造成软件寿命过短。反之,软件结构的过于灵活和通用,必然引起软件实现的难度增加,系统的复杂度上升,可靠性降低,给实现和测试阶段带来风险,系统的稳定性也会受到影响。从另一个角度上看,用户需求和将来软件运行环境的变化都是必然的,目前软件设计的所渭的“通用性”是否就能很好的适应将来需求和运行环境的变化,都是需要认真折衷的,而这种折中也蕴涵着很大的风险。

设计阶段蕴涵的另一种风险来自于设计文档。文档的不健全不仅会造成实现阶段的困难,更会在后期的测试和维护造成灾难性的后果,例如根本无法对软件系统进行版本级,甚至是发现的简单错误都无从更正。

·软件实现阶段

软件的实现从某种意义上讲是软件代码的生产。源代码木身也是文档的一部分,同时它又是将来运行于计算机系统之上的实体。源代码书的规范性,可读性是该阶段的主要风险来源。规范的代码生产会把属于程序员自身个性风格的成分引入代码的比例降到最低限度,从而减小了系统整合的风险。

·软件维护阶段

软件维护包含两个主要的维护阶段,一个是软件生产完毕到软件试运行阶段的维护,这个阶段是一种实环境的测试性维护,其主要目的是发现在测试环境中不能或末发现的问题;另一个阶段是当软件的运行不再能适应用户业务需求或是用户的运行环境(包括硬件平台、软件环境等)时进行的软件维护,具体可能是软件的版本升级或软件移植等。

1.2 “技术”因素分析

存软件项目开发和建设的过程中,技术因素是一个非常重要的因素。项目组一定要本着项目的实际要求,选用合适、成熟的技术,千万不要无视项目的实际情况选用一些虽然先进但并非项目所必须且自己又不熟悉的技术。如果项目所要求的技术项目成员不具备或掌握不够,则需要重点关注该风险因素。

以上所说的各类风险都是项目成败的巨大隐患,它们对软件开发项目的成败有多大影响,我们可以利用风险分析工具,对以上各类风险进行分析,并加以控制和管理,将风险将到最低。常用方法有风险条目检查表,它是利用一组提问来帮助项目风险管理者了解在项目和技术方面有哪些风险。在风险条目检查表中,列出了所有可能的与每一个风险因素有关的提问,使得风险管理者集中来识别常见的、已知的和可预测的风险,如产品规模风险、依赖性风险、需求风险、管理风险及技术风险等。风险条目检查表可以不同的方式组织,通过假设分析、成本效益分析、风险剖面分析、判定树等,给出这些提问确定的回答,就可以帮助项目管理人员估算风险的影响。

另外,我们可以依据风险条目检查表,制作风险控制概图(见图1),让项目管理和实施人员能很直观的看到在项目开发个阶段的风险存在状况和各风险的大小,并采取相应措施。从风险发生的概率来看,需求风险和管理风险对项目成败影响最大,当一个软件项目开发团队接手项目后,都是按照习惯性的方式来开发软件。需求风险意识比较淡薄,软件需求分析阶段的完成的不够细致,忽略和很多软件开发必要的内容。在整个软件开发过程中需求分析阶段的风险控制尤为重要,如果控制不好,对软件开发项目影响巨大,甚至是失败。管理风险实际上是项目开发管理层,对项目开发的风险的意识反映。国内的软件企业大多规模较小,企业年轻,开发经验不足,软件工程师较年轻,缺少开大型软件项目的经验,在管理方面缺少经验,特别是风险管理,更是缺乏。

2、风险管理

风险管理应是贯穿软件项目开发始末的一项重要任务,其中包括风险识别、风险评估、风险计划、风险解决和风险监控。它能让风险管理者主动“规避”风险,进行有效的风险管理。风险管理模型有:SEI风险管理模型、Riskit风险管理模型、SoftRisk风险管理模型、IEEE风险管理过程模型、CMMI风险管理模型、MSF风险管理模型等。在项目管理中,建立风险管理策略,在项目的生命周期中不断控制风险是非常重要的,风险管理主要包括五个阶段:

(1)风险识别:识别风险的方法常用的有现场观察法、座谈法、流程图法、财务报表法、相关部门配合法和环境分析法等。

(2) 风险评估:对已识别的风险要进行估计和评价,风险估计的主要任务是确定风险发生的概率与后果,风险评价则是确定该风险的经济意义及处理的费/效分析,常用的方法有:概率分布、外推法、多目标分析法等。

(3) 计划进度:按照评估后的风险结果,制定相应的风险管理进度表,为后续的风险管理提供参考。

(4) 风险处理:一般而言,风险处理有三种方法,① 风险控制法,即主动采取措施避免风险,消灭风险,中和风险或采用紧急方案降低风险。② 风险自留,当风险量不大时可以余留风险。③ 风险转移。

training.mypm.net

篇三:浅析软件项目风险管理

浅析软件项目风险管理

摘要 软件项目风险是指在软件开发过程中遇到的预算和进度等方面的问题以及这些问题对软件项目的影响。现阶段,在众多软件公司开发软件过程中必不可少的会涉及到软件项目的风险管理,风险管理的好坏在很大程度上决定了软件开发过程中的顺利、成功与否,因此,在软件开发过程中项目风险管理十分重要。

关键词 风险管理;风险评估;风险识别;风险管理模型

1 软件项目风险管理概述

软件项目风险是指在软件开发过程中遇到的预算和进度等方面的问题以及这些问题对软件项目的影响。现阶段在众多软件公司开发软件过程中必不可少的会涉及到软件项目的风险管理,当公司对软件项目风险管理不当时,风险就会成为现实,就有可能影响到项目的进度,增加项目的成本,甚至使软件项目不能实现。恰当的对软件项目进行风险管理,可以最大限度的减少风险的发生。

2 软件项目风险管理涉及以下几个方面:

1)识别软件项目风险

识别软件项目风险是系统化地确定对软件项目项目计划(估算、进度、资源分配)顺利实施产生威胁的因素。通过识别已知和可预测的风险,项目管理者就有可能避免这些风险,且当必要时控制这些风险。在项目的整个生命周期内,风险识别是一个连续的过程。一般情况下软件项目风险划分为以下几个种类:(1)资源风险;(2)产品规模风险;(3)需求风险;(4)相关性风险;(5)管理风险;(6)技术风险。

2)对软件项目风险进行评估

软件项目风险评估主要采取以下方法:(1)建立软件项目风险清单。风险清单是关键的风险预测管理工具,风险清单中应列出在任何时候碰到的风险名称、类别、概率及该风险所产生的影响;(2)对软件项目风险进行评估。风险评估的具体做法是:根据风险的不确定性和损失两个基本特征,为每个风险计算风险值。风险值=可能性×影响值,两者的乘积越大表明该风险越高,越值得重视;(3)软件项目风险划分。在进行了风险的量化分析后,需要对已经确定需要进行管理的风险进行优先级的划分。在风险划分中必须强调的是由于每个项目的资源都是有限的,所以风险管理必须把精力集中在最重要的风险子集上,并且在项目进行中条件和优先级发生改变的情况下,组成此子集的风险种类也要随之改变。

3)软件项目风险的应对措施

本文已影响