软件开发过程中风险管理的基本原则.doc_第1页
软件开发过程中风险管理的基本原则.doc_第2页
软件开发过程中风险管理的基本原则.doc_第3页
软件开发过程中风险管理的基本原则.doc_第4页
软件开发过程中风险管理的基本原则.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件开发过程中风险管理的基本原则进行软件项目开发是一项非常有意义的工作,但这其中也包含着许多的风险和挑战。有效地管理这些风险是至关重要的,并且它要求所有各方包括研究人员,工程师,开发人员,程序员和项目经理必须要首先考虑健壮的应用开发所需的遵循的基本原则。即使是对于最具有挑战性、最复杂的软件开发项目,持续地专注于这些基本原则都是努力减少项目风险、确保项目成功一个必不可少的组成部分。定期审查这些基本的原则和做法对于任何人(包括最有经验的开发人员)都很有价值。面临的挑战软件开发绝对不是一件容易的事情。每个软件项目都具有自己独特的需求,也都面临着不同的挑战和问题。预测和防范风险的失败会造成巨大的损失,它可能会导致代价极为高昂的进度延误,造成巨大的收入损失,增加的团队成员压力,减少项目的产出,甚至会导致整个项目的最终失败。解决方案虽然每个项目都有自己独特的要求,但是有效的风险管理也都具有一些共同的特性。通过在项目开发进程之前或开发过程中确定潜在的风险并且制定解决方案,可以最大限度地提高团队的效率和成品的质量。第一道防线:强烈的基本原则仔细评估潜在的风险并且提出解决方案来解决这些问题,仅仅是风险管理万里长征的第一步。你同时也应该认识到:一个健全的项目开发的原则,是有效的进行风险管理的核心所在;只有不间断地对项目的风险进行管理,才能够最大限度地发挥团队的工作效率和整体开发能力,为创造出健全的软件产品打下坚实的基础。灵活的规划首先要保持充分的灵活性。让小组成员自由地作出决定,因为充分获取新的信息能够使他们迅速作出反应,而僵化的项目计划和进度表会阻碍他们应对新的挑战的能力。不灵活的时间表还会对小组成员对于该项目的进展情况的看法产生不良的影响。由于项目计划和进度安排对于衡量项目进展和期限是非常必要的,不能过于死板。在项目的开始阶段促进团队成员的灵活性会鼓励他们更加积极主动地面对正在不断增加的挑战,同时也使他们能做好准备,以一个更加有效的时间表推进项目的进程。在建立一个能够指导团队成员努力进行软件开发计划的路线图时,灵活规划的重要性就显得尤为突出了。良好的发展原则在项目的开发阶段,决定项目成功与否的某些重要的未知因素,将作为项目收益显现出来。这些未知的因素通常就是我们所说的风险。容纳这些未知因素的关键是你要认识到,你不可能预知所有可能发生的事情。因此你必须要养成正确对待无知的态度,特别是在开启了一个新的项目的时候,要防止那些假装无所不知的人。人们往往容易过分强调表面文章以平衡这种不确定性。报告完成了,会议参加了,时间安排也得到满足了,但很少有人知道项目现在取得了多少进展,或什么样的风险正在安全的范围内积聚。必须明白软件开发和风险管理的最终目标是优秀的软件,而不是你所热衷的报告和时间表,不能让这些报告和时间表成为你工作的重心。在这里我们提出的一个极其重要的开发原则是减少代码的复杂性,并且实现相同功能模块化。分离的代码模块,并不能为所有目标平台或操作系统所共享。确保剩余的代码是共同的,这样就可以使你的努力最佳化,并为以后的产品开发中对于原先模块的维护以及软件的有效再利用奠定了基础。集成产品团队(IPTs)构建集成产品团队是控制成本和减少风险的另一重要法宝,特别是对于那些可能影响进度的因素来说,集成管理团队为解决问题提供了便利,使团队能够迅速应对不断变化的要求,并促使大家按照预定的进度开展工作。该团队能够很好地使客户(在大多数情况下是政府机关)了解不断变化的要求如何影响一个项目的生产进度和生产成本,或给团队带来不容忽视的额外风险(尤其是在客户计划增加更多的功能的时候)。特别是当客户提出了疑问的时候它可以帮助你(开发者)评估风险和提供可接受的解决办法。原型设计探索型的原型设计是避免全面的研究和开发过程中一些额外的费用的第一步。在项目需求被错误地解释或在项目的结束之前可能发生变化的情况下,它还是一个极好的应对策略。此外,探索性的原型设计还可以帮助人们很好地阐明系统需求、确定目标系统所设想的特点、以及促进替代性解决方案的讨论。系统的原型设计应该回答软件项目开发和风险管理的两个基本问题:“这个概念健全吗?”和“是否值得继续进行?”如果你给出的答案不是一个明确的“是的”,那么你的项目就有可能会面临失败。更重要的是,没有这种洞察力,你将给予客户一个对于你可以取得非常大的成就的错误印象,这是你必须预先警觉的问题。有时风险管理者所要采取的最重要行动就是去问这些基本问题。如果答案和风险是令人满意的,您可以进入到详细的原型设计,这个过程给我们带来了一些优势。它使你的团队快速有效地构建软件项目中已经成熟的部分。此外,它使最终用户能够更好地确定其余的要求。其结果是,在该项目的早期软件基础的核心就已经被测试并证明,从而大大降低了接触未知数的可能。工艺改进工艺改进应当持续整个项目。重要的是要不断地问:“是否有更好的方式来完成这项工作?”改进您做事情的方式,特别是那些由于缺乏沟通而导致难以进行的事情。让你的顾客参与到集成管理团队中和系统的管理团队共同参与。此外,一定要与团队的工程师定期会面,进行重点但非正式的讨论。虽然这些会议极其宝贵,但是也必须防范因延长会议时间而减少了的团队的工作时间。为了替代过于冗长的会议,我们可以采取制定和分发每周状态报告的方法。这样就可以让每个成员了解整个项目的进展情况,并对整个项目蓝图有一个清晰的认知。请记住:即使在软件开发过程中您有最好的项目进度表,你同样可能会一败涂地。有动机的、目标导向的和知识型的团队将获得成功,即使规划并不是最完善的。质量管理最好的质量管理方法,是使用行政权利,所有权和团队的共同目标,尽量减少风险和最大限度地提高项目中工作人员的工作效率。增强您的团队成员的自由度,使他们能够得到最好的。所有的开发团队都需要给他们的工程师要取得成功所需的工具,但许多时候不能向他们提供使用工具的自由。如果团队受到广泛的规则和条例的限制,即使是准备最充分的项目也将遭受被搁浅的困境,因为这样将会扼杀团队的积极性和创造性。因此,总是允许团队提出解决方案或行动方案而不用担心受到过分的惩罚和嘲弄。充分授权给你的团队成员会提高效率,鼓励其思想交流,并增加群体的知识能力。最后,客户因为增加了专业知识而受益匪浅。正如所有其他领域的事情一样,所有权是成功的一个关键组成部分。人们更关心他们自己的事情,即使软件开发项目也毫不例外。培养一个全团队的广泛的主人翁意识能够使每个成员都自觉地对项目的成功负起一份责任。此外,觉得自己掌握自己的工作的人更愿意接受对他们的决定所提出的建设性的批评。在项目开始的阶段发展共识也是质量管理的一个重要方面。从一开始,提供足够的时间给大家对最终产品的功能和开发的主旨产生共识。应该说明的是,这个交流的主题是描述产品最终目的,而不是讨论具体的技术细节。缺乏这方面的共识和软件的鲜明主题的团队,往往会在附加功能和技术方面作过多的强调。这些功能(尽管有时是很不错的)通常不会对软件的基本功能产生太大的帮助,但却往往会拖长项目开发的进程。一个好的主旨引导项目开发的有序进行,并能够让团队的所有成员都支持并将精力投入到项目的真正重点所在。第三方:喜忧参半如果产品失败,通常许多开发者会将项目的失败归咎于第三方。在某些情况下,它们是正确的。但更多的情况下你将别无选择,只能争取他们的帮助。而减少这方面风险的关键,是要尽量减少对他们的依赖。当你过多地依赖团队以外的产品或服务的时候,失败或延迟的风险就会大大地增加。你的团队可能会尽一切全力将自己的工作做的完美,但如果一个关键第三方没有这么做,你的所有工作就可能是徒劳的。为了说明这一点,我们假设您承担的风险,取决于贯穿整个项目的三个重要组成部分。假设每个产品有百分之八十的机会按时到达要求并充分发挥作用。成功的可能性为所有三个结合,它不是百分之八十,而是百分之五十一(80% * 80% *80%)。换句话说,这意味着你的项目现在有一半的几率是要注定要失败的。实施有效的风险管理现在我们已经回顾了在软件开发进程中防范风险的第一道防线,让我们更近一步地考察在自己的项目中使用的风险管理技术。一个有效的风险管理计划是动态的,并且贯穿在整个开发过程中,需要其中每个人的参与。首先,要记住这是一个理想化的过程,不要在每个开发项目中都固执坚持同一个计划。修改进程依赖于所执行的工作和你的团队成员。例如,软件移植或软件模块更新可能不需要相同程度的原则作为一个新的进程开发所努力的方向。实施有效的风险管理项目需要仔细地进行风险评估和风险控制。准备:风险评估在任何项目中仔细评估所固有的挑战都是成功实施风险管理计划的第一步。风险评估包括三个主要过程:风险识别,风险分析和风险的优先次序。着眼于每一个过程保证了风险控制策略的成功运用。风险识别确定在项目中最有可能发生的风险,并特别注意那些由于客户的需求或目标系统的变化带来的风险。制定一份风险可能产生的(包括每个团队成员所提出的)的风险清单。风险分析一旦你知道你所面临的风险,一定要注意从两个方面来分析每一个风险:第一个是风险发生的几率,第二个是如果它发生了将会产生多大的后果。查看每个风险并回答这两个问题,可以让你很轻松地决定哪些风险是需要特别关注的。建模技术可以有助于确定每一个风险发生的概率,但在确定风险可能产生的后果时任何成员提出的任何结论都是不可忽视的。风险优先级在这个过程中,制订计划和确定哪些风险需要你首先处理是极为重要的,分级风险是建立在对风险发生概率和潜在后果的分析的基础上的,构成最大威胁的项目风险必须首先处理。采取行动:风险控制实施一个成功的风险管理工作需要不断的进行评估。风险控制包括三个主要过程:风险管理规划,风险决议和风险监测。风险管理规划风险管理规划是根据在评估阶段的风险分析所确定的风险发生概率和后果而制定的。对风险做出反应,需要资源和时间,因此必须要先评估执行风险控制是否得不偿失。这使得团队对其风险管理工作做出计划,而不是忙乱不堪地应付每一个可能发生的危险,。风险决议一旦你确定一个开发项目的风险,下一步就是解决或减少风险。在应对风险的过程中,我们可能需要做出聘用工作人员的决定、进行成本或进度的估计,质量监测监督,对新技术进行评估,进行原型设计,明晰系统需求,确立基准和仿真以及建模。请记住,在大多数项目中,已经确定的风险的百分之二十是造成百分之八十的项目失败的罪魁祸首。侧重于最可能出现问题的那个百分之二十,采用早期原型和频繁的功能系统结构设计,以确认你解决风险所采取的步骤是成功的。风险监测你必须不断地监测你的风险控制结果,并时刻关注新的风险以提早进行处理、防患于未然。风险监控工作的重点在于,坚持项目经理、技术领导、以及每个开发人员能够时刻关注他们所负责的三个最重要的风险,他们从本质上而言是动态可变的。风险追踪工具:风险雷达是跟踪,管理,检测,并抑制风险(尤其是那些处于一个重要地位的风险)的一个有用的工具。它并不试图取代专业判断,但它是一个直观的,易于使用的,可以对项目风险进行跟踪、划分优先级、沟通的工具。它的主要特点在于系统易用性,突出重点,关注基本的风险数据,并且提供了一个图形显示风险的爆发概率和预警特征。摘要软件开发将始终包含

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论