软件开发项目管理过程中的风险管理研究
软件项目风险是指在软件开发过程中遇到的预算和进度等方面的问题以及这些问题对软件项目的影响。软件项目风险会影响项目计划的实现,如果项目风险变成现实,就有可能影响项目的进度,增加项目的成本,甚至使软件项目不能实现。如果对项目进行风险管理,就可以限度的减少风险的发生。但是,目前国内的软件企业不太关心软件项目的风险管理,结果造成软件项目经常性的延期、超过预算,甚至失败。成功的项目管理一般都对项目风险进行了良好的管理。因此任何一个系统开发项目都应将风险管理作为软件项目管理的重要内容。
在项目风险管理中,存在多种风险管理方法与工具,软件项目管理只有找出最适合自己的方法与工具并应用到风险管理中,才能尽量减少软件项目风险,促进项目的成功。
项目风险管理
项目风险管理是指为了的达到项目的目标,识别、分配、应对项目生命周期内风险的科学与艺术。项目风险管理的目标是使潜在机会或回报化,使潜在风险最小化。风险管理涉及的主要过程包括:风险识别,风险量化,风险应对计划制定和风险监控,如图1所示。风险识别在项目的开始时就要进行,并在项目执行中不断进行。就是说,在项目的整个生命周期内,风险识别是一个连续的过程。
(1)风险识别:风险识别包括确定风险的来源,风险产生的条件,描述其风险特征和确定哪些风险事件有可能影响本项目。风险识别不是一次就可以完成的事,应当在项目的自始至终定期进行。
(2)风险量化:涉及对风险及风险的相互作用的评估,是衡量风险概率和风险对项目目标影响程度的过程。风险量化的基本内容是确定那些事件需要制定应对措施。。
(3)风险应对计划制定:针对风险量化的结果,为降低项目风险的负面效应制定风险应对策略和技术手段的过程。风险应对计划依据风险管理计划、风险排序、风险认知等依据,得出风险应对计划、剩余风险、次要风险以及为其它过程提供得依据。
(4)风险监控:涉及整个项目管理过程中的风险进行应对。该过程的输出包括应对风险的纠正措施以及风险管理计划的更新。
每个步骤所使用的工具和方法详见表1:
表1 风险管理过程中所使用的工具、方法
软件项目中的风险管理
1、软件项目中的风险
软件项目的风险无非体现在以下四个方面:需求、技术、成本和进度。IT项目开发中常见的风险有如下几类:
(1)需求风险
①需求已经成为项目基准,但需求还在继续变化;
②需求定义欠佳,而进一步的定义会扩展项目范畴;
③添加额外的需求;
④产品定义含混的部分比预期需要更多的时间;
⑤在做需求中客户参与不够;
⑥缺少有效的需求变化管理过程。
(2)计划编制风险
①计划、资源和产品定义全凭客户或上层领导口头指令,并且不完全一致;
②计划是优化的,是"状态",但计划不现实,只能算是"期望状态";
③计划基于使用特定的小组成员,而那个特定的小组成员其实指望不上;
④产品规模(代码行数、功能点、与前一产品规模的百分比)比估计的要大;
⑤完成目标日期提前,但没有相应地调整产品范围或可用资源;
⑥涉足不熟悉的产品领域,花费在设计和实现上的时间比预期的要多。
(3)组织和管理风险
①仅由管理层或市场人员进行技术决策,导致计划进度缓慢,计划时间延长;
②低效的项目组结构降低生产率;
③管理层审查 决策的周期比预期的时间长;
④预算削减,打乱项目计划;
⑤管理层作出了打击项目组织积极性的决定;
⑥缺乏必要的规范,导致工作失误与重复工作;
⑦非技术的第三方的工作(预算批准、设备采购批准、法律方面的审查、安全保证等)时间比预期的延长。
(4)人员风险
①作为先决条件的任务(如培训及其他项目)不能按时完成;
②开发人员和管理层之间关系不佳,导致决策缓慢,影响全局;
③缺乏激励措施,士气低下,降低了生产能力;
④某些人员需要更多的时间适应还不熟悉的软件工具和环境;
⑤项目后期加入新的开发人员,需进行培训并逐渐与现有成员沟通,从而使现有成员的工作效率降低;
⑥由于项目组成员之间发生冲突,导致沟通不畅、设计欠佳、接口出现错误和额外的重复工作;
⑦不适应工作的成员没有调离项目组,影响了项目组其他成员的积极性;
⑧没有找到项目急需的具有特定技能的人。
(5)开发环境风险
①设施未及时到位;
②设施虽到位,但不配套,如没有电话、网线、办公用品等;
③设施拥挤、杂乱或者破损;
④开发工具未及时到位;
⑤开发工具不如期望的那样有效,开发人员需要时间创建工作环境或者切换新的工具;
⑥新的开发工具的学习期比预期的长,内容繁多。
(6)客户风险
①客户对于最后交付的产品不满意,要求重新设计和重做;
②客户的意见未被采纳,造成产品最终无法满足用户要求,因而必须重做;
③客户对规划、原型和规格的审核 决策周期比预期的要长;
④客户没有或不能参与规划、原型和规格阶段的审核,导致需求不稳定和产品生产周期的变更;
⑤客户答复的时间(如回答或澄清与需求相关问题的时间)比预期长;
⑥客户提供的组件质量欠佳,导致额外的测试、设计和集成工作,以及额外的客户关系管理工作。
(7)产品风险
①矫正质量低下的不可接受的产品,需要比预期更多的测试、设计和实现工作;
②开发额外的不需要的功能(镀金),延长了计划进度;
③严格要求与现有系统兼容,需要进行比预期更多的测试、设计和实现工作;
④要求与其他系统或不受本项目组控制的系统相连,导致无法预料的设计、实现和测试工作;
⑤在不熟悉或未经检验的软件和硬件环境中运行所产生的未预料到的问题;
⑥开发一种全新的模块将比预期花费更长的时间;
⑦依赖正在开发中的技术将延长计划进度。
(8)设计和实现风险
①设计质量低下,导致重复设计;
②一些必要的功能无法使用现有的代码和库实现,开发人员必须使用新的库或者自行开发新的功能;
③代码和库质量低下,导致需要进行额外的测试,修正错误,或重新制作;
④过高估计了增强型工具对计划进度的节省量;
⑤分别开发的模块无法有效集成,需要重新设计或制作。
(9)过程风险
①大量的纸面工作导致进程比预期的慢;
②前期的质量保证行为不真实,导致后期的重复工作;
③太不正规(缺乏对软件开发策略和标准的遵循),导致沟通不足,质量欠佳,甚至需重新开发;
④过于正规(教条地坚持软件开发策略和标准),导致过多耗时于无用的工作;
⑤向管理层撰写进程报告占用开发人员的时间比预期的多;
⑥风险管理粗心,导致未能发现重大的项目风险。
2、软件项目风险管理模型
针对软件项目中的风险管理问题,不少专家、组织提出了自己的风险管理模型。主要的风险管理模型有:Boehm模型,CRM模型和SERIM模型。
2.1 Barry Boehm模型
模型:RE=P (UO)*L (UO)
其中RE表示风险或者风险所造成的影响,P(UO)表示令人不满意的结果所发生的概率,L(UO)表示糟糕的结果会产生的破坏性的程度。Boehm思想的核心是10大风险因素列表。针对每个风险因素,都给出了一系列的风险管理策略。在实际操作时,Boehm以10大风险列表为依据,总结当前项目具体的风险因素,评估后进行计划和实施,在下一次定期召开的会议上再对这10大风险因素的解决情况进行总结,产生新的10大风险因素表,依此类推。考试大收集
2.2 SEI的CRM(Continuous Risk Management)模型
SEI CRM模型的风险管理原则是:不断地评估可能造成恶劣后果的因素;决定最迫切需要处理的风险;实现控制风险的策略;评测并确保风险策略实施的有效性。CRM模型要求在项目生命期的所有阶段都关注风险识别和管理,它将风险管理划分为五个步骤:风险识别、分析、计划、跟踪、控制。
2.3 SERIM(Software Engineering Risk Model)模型
SERIM从技术和商业两个角度对软件风险管理进行剖析,考虑的问题涉及开销、进度、技术性能等。它还提供了一些指标和模型来估量和预测风险,由于这些数据来源于大量的实际经验,因此具有很强的说服力。
结束语
软件项目管理从某种意义上讲,就是风险管理。我们尽量去定义明确不变的需求,以便进行计划并高效管理,但商业环境总是快速变化的,甚至是无序的变化。所以,软件企业在进行项目管理的过程中,必须采用适合自己的风险管理方法进行风险管理,以确保软件项目在规定的预算和期限内完成项目。
研发项目管理软件哪家好
软件工程: 怎么进行软件开发过程管理的学问。 主要是过程相关学问。 项目管理: 一般意义上执行软件工程的过程就叫项目管理。 软件开发:如果实现软件功能的学问。 主要是开发语言、业务逻辑的学问。 软件技术:那就很广了,上述三个广义上说都是软件技术。 狭义上的软件技术指软件开发技术。
上述解释其实有一定的狭隘性,特别是项目管理。项目管理其实是一个非常范的学科,它不仅仅只适合于软件(或互联网或IT)行业,其实也适合其他行业,例如建筑。如果你有时间去发现的话,你会惊奇的发现建筑行业也有项目经理这个角色!而且你仔细去研读项目管理方面的书籍,你会发现这门学科从始至终都没告诉你如何开发,具体怎么设计、如何开发!但是软件工程就不一样了,我个人认为它对广义上的项目管理去繁从简了,它关注的核心点是分析、设计、开发!如 RUP
适用于软件开发项目的项目管理软件有8Manage项目管理软件,针对软件开发项目管理的特点,8ManagePPM以先进的系统架构设计和丰富的智力型机构管理经验,帮助企业全面解决项目实施可能出现的种种问题,提升项目管理成功率。
1、实时监控进度,提升项目实施效率。8ManagePPM提供项目状态概要、进度报告、问题、风险、WBS页面、概览、绩效统计报表等工具,帮助企业实时监控项目进度,并通过设置逾期提醒等措施,确保项目完成进度。
2、支持项目组合管理,一个页面同时监控多个项目。支持用户设定项目组合的管理目标、策略以及规则来监控多个项目的执行,包括使项目与策略更一致,尽早发现有问题的项目,更有效地分配和管理资源等。
3、计划并追踪资源分配,提升资源利用率。支持跨部门、跨站点、跨项目的资源分配,并能够有效跟踪资源实际使用率,帮助用户恰当地分配资源时间。
4、全程跟踪项目变更,规避变更潜在风险。对于IT项目频繁的变更,提供动态的框架来处理需求与变更的复杂性,对变更从提出-审批-执行-交付-发布的整个过程,进行全面的记录、跟踪与监控管理。另外,还能够自动侦查需求的变化,把需求变化与项目的各个阶段关联,并自动追踪需求依赖及间接变化,以此提醒用户,让用户更好地了解需求变化所带来的影响,尽早做好应对的策略,有效地规避项目变更带来的潜在风险。
5、支持结构化协作,信息沟通实时精准。为个人和部门提供进行协调的平台,并提供强大的沟通工具,如自动捕获电子邮件沟通并附于对应的项目与活动计划中,跟踪讨论的论坛及用于小型的部门沟通与协商的在线即时讨论功能等。
6、提供项目模板和文档管理,实现项目知识积累。在项目知识管理方面,8ManagePPM提供文档管理功能,支持将项目相关的文档整理好并结构化地存放,同时提供项目模板功能,帮助其建立标准化的项目管理制度,以及可重用的项目流程,方便项目经理继承最佳实践。企业能够将散落在项目团队成员个人电脑中的文档归档管理,建立新项目时也快速从项目模板复制,沿用成功项目的工作计划及资源计划,实现了项目知识的沉淀。
本文由用户上传,如有侵权请联系删除!转转请注明出处:https://nongye.s666.cn/bk/6_6572229187.html