在软件开发时,为什么要进行风险分析?

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-06-20
软件项目风险

在项目的建设过程中,风险几乎无处不在(约定:本文谈到的风险,专指给项目带来不利影响的风险)。如何有效地识别、控制和管理风险,对项目的成功起着至关重要的影响。

一个项目有可以预料的(包括已知的)风险和不可预料的风险,以下作者总结自己多年的软件项目工程经验,整理出软件项目经常遇到的15种可预料的(包括已知的)风险及其预防措施,期望能为项目经理制定项目风险计划和进行风险预防、控制等提供富有价值的参考。

(1)合同风险

签订的合同不科学、不严谨,项目边界和各方面责任界定不清等是影响项目成败的重大因素之一。

预防这种风险的办法是项目建设之初项目经理就需要全面准确地了解合同各条款的内容、尽早和合同各方就模糊或不明确的条款签订补充协议。

(2)需求变更风险

需求变更是软件项目经常发生的事情。一个看似很有“钱途”的软件项目,往往由于无限度的需求变更而让项目承建方苦不堪言,甚至最终亏损(实际上项目建设方也面临巨大的风险)。

预防这种风险的办法是项目建设之初就和用户书面约定好需求变更控制流程、记录并归档用户的需求变更申请。

(3)沟通不良风险

项目组与项目各干系方沟通不良是影响项目顺利进展的一个非常重要的因素。

预防这种风险的办法是项目建设之初就和项目各干系方约定好沟通的渠道和方式、项目建设过程中多和项目各干系方交流和沟通、注意培养和锻炼自身的沟通技巧。

(4)缺乏领导支持风险

上层领导的支持是项目获得资源(包括人力资源、财力资源和物料资源等)的有效保障,也是项目遇到困难时项目组最强有力的“后台支撑”。

预防这种风险的办法是主动争取领导对项目的重视、确保和领导的沟通渠道畅通、经常向领导汇报工作进展。

(5)进度风险

有些项目对进度要求非常苛刻(进度要求不高的项目,我们同样要考虑该风险),项目进度的延迟意味着违约或市场机会的错失。

预防这种风险的办法一般是分阶段交付产品、增加项目监控的频度和力度、多运用可行的办法保证工作质量避免返工。

(6)质量风险

有些项目,用户对软件质量有很高的要求,如果项目组成员同类型项目的开发经验不足,则需要密切关注项目的质量风险。

预防这种风险的办法一般是经常和用户交流工作成果、品牌管理采用符合要求的开发流程、认真组织对产出物的检查和评审、计划和组织严格的独立测试等。

(7)系统性能风险

有些软件项目属于多用户并发的应用系统,系统对性能要求很高,这时项目组就需要关注项目的性能风险。

预防这种风险的办法一般是在进行项目开发之前先设计和搭建出系统的基础架构并进行性能测试,确保架构符合性能指标后再进行后续工作。

(8)工具风险

软件项目开发和实施过程,所必须用到的管理工具、开发工具、测试工具等是否能及时到位、到位的工具版本是否符合项目要求等,是项目组需要考虑的风险因素。

预防这种风险的办法一般是在项目的启动阶段就落实好各项工具的来源或可能的替代工具,在这些工具需要使用之前(一般需要提前一个月左右)跟踪并落实工具的到位事宜。

(9)技术风险

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

预防这种风险的办法是选用项目所必须的技术、在技术应用之前,针对相关人员开展好技术培训工作。

(10)团队成员能力和素质风险

团队成员的能力(包括业务能力和技术能力)和素质,对项目的进展、项目的质量具有很大的影响,项目经理在项目的建设过程需要实时关注该因素。

预防这种风险的办法是在用人之前先选对人、开展有针对性的培训、将合适的人安排到合适的岗位上。

(11)团队成员协作风险

团队成员是否能齐心协力为项目的共同目标服务,生产管理是影响进度和质量的关键因素。

预防这种风险的办法是项目在建设之初项目经理就需要将项目目标、工作任务等和项目成员沟通清楚,采用公平、公正、公开的绩效考评制度,倡导团结互助的工作风尚等。

(12)人员流动风险

项目成员特别是核心成员的流动给项目造成的影响是非常可怕的人力资源。人员的流动轻则影响项目进度,重则导致项目无法继续甚至被迫夭折。

预防这种风险的办法是尽可能将项目的核心工作分派给多人(而不要集中在个别人身上)、加强同类型人才的培养和储备。


(13)工作环境风险

工作环境(包括办公环境和人文环境)的好坏直接影响项目成员的工作情绪和工作效率。

预防这种风险的办法是在项目建设之前就选择和建设好适合项目特点财务管理和满足项目成员期望的办公环境、在项目的建设过程中不断培育和调整出和谐的人文环境。

(14)系统运行环境风险

目前,大部分项目系统集成和软件开发是分开进行的(甚至由不同公司承接)。因此,软件系统赖以运行的硬件环境和网络环境的建设进度对软件系统是否能顺利实施具有相当大的影响。

预防这种风险的办法是和用户签定相关的协议、跟进系统集成部分的实施进度、及时提醒用户等。

(15)分包商风险

有些项目管理可能会涉及到将系统的部分功能分包出去,这时项目组就需要关注项目的分包商风险。

预防这种风险的办法一般是指定分包经理全程监控分包商活动、让分包商采用经认可的开发流程、督促分包商及时提交和汇报工作成果、及时审计分包商工作成果等。

世间万物总是发展变化的,风险亦可能随时出现和变化。项目经理应该将“防患于未然”牢记于心并作为自己日常项目工作的“座右铭”。项目经理不断培养和强化项目整个团队成员的风险意识,是确保项目顺利进展的最有效方法之一。

以上列举的这些风险,应该是软件项目建设中经常出现的主要风险,但由于项目本身的个性化特征,针对具体的项目,肯定会出现一些我们上面没有列举甚至是事先根本无法预期的风险,这就需要我们项目经理有敏锐的“嗅觉”去识别它们,从而更好地预防和控制它们。

因为软件的开发成本很高,而收益最重要是就是市场,而风险分析可以提前预知市场行情,计算风险收益比,在接受范围内才会继续开发。

软件开发是一项复杂的工程,软件开发过程涉及范围,进度,成本,质量,资源,采购等十大领域,如果不进行缜密的风险评估,那么任意一个或多个因素都会导致软件开发失败,业内最常见的风险问题包括需求扩散严重、开发成本超支、开发出的系统没法用起来等等,所以兵马未动风险评估先行是非常必要的。

  • 为什么需要在软件工程项目中做风险管理?
    答:软件工程项目需要做风险管理,其原因有以下几个:1. 风险是项目失败的主要原因之一。软件开发项目本身就有很多不确定性,例如技术上的挑战、需求变更、人员流动等,这些都需要在项目过程中不断被纠正和解决,否则就会影响项目进展。2. 风险管理可以帮助识别风险。通过早期识别风险,可以减轻或避免风险对项目...
  • 风险分析是指在特定系统中进行危险辨识
    答:②技术相关。未曾使用过的新技术都存在风险。包括未使用过的新型硬件、支持软件,缺乏标准与规范的非传统的开发方法等。技术过时也是风险。技术风险一般难于改正。③开发环境。适用的开发工具不足、不可靠、使用不方便等因素,都会降低开发效率。④组织规模和人员经验。⑤客户因素。表现在客户需求经常矛盾,...
  • 软件开发为什么把风险分析看的很重
    答:因为软件的开发成本很高,而收益最重要是就是市场,而风险分析可以提前预知市场行情,计算风险收益比,在接受范围内才会继续开发。
  • 软件开发项目过程中的风险管理是什么?
    答:软件开发项目涉及复杂的技术、人员和管理方面的因素,因此在整个项目生命周期中,风险管理是至关重要的。风险管理旨在识别、评估和应对可能影响项目目标实现的各种不确定性因素。以下是软件开发项目过程中风险管理的关键方面:1.风险识别:在项目启动阶段,团队需要对可能影响项目目标的各种潜在风险进行识别。这...
  • 为一个公司开发软件,可以不进行什么分析
    答:风险分析。为一个公司开发软件,由于考虑到开发软件的实用性和安全性,对于风险这一方面会进行严格的把关,坚决杜绝开发软件发生安全性漏洞,因此风险分析可以不进行。软件是电子计算机操作利用硬件资源进行信息处理的程序系统。
  • 软件项目管理及风险分析
    答:软件的开发流程般定义为:需求分析一可行性分析一概要设计一结构化设计一详细设计一编码一软件测试一软件维护。“流程”中软件项目的风险,主要体现存4个阶段:软件需求阶段、软件设计阶段、软件实现阶段和软件维护阶段 软件需求阶段 软件的开发是以用户的需求开始,在大多数情况下,用户需求要靠...
  • 软件研发安全管理应重点关注哪些内容
    答:1、需求分析与风险评估 在软件开发的初期,需求分析阶段是安全管理的重要起点。需求分析不仅需要明确功能需求,还要关注安全需求,确保在设计阶段就考虑到潜在的安全风险。此外,风险评估也是必不可少的环节,通过评估系统可能面临的安全威胁,制定相应的安全策略和防护措施。2、安全设计与架构 在软件设计阶段,...
  • 软件项目风险管理控制措施
    答:摘要 :软件项目开发需要投入大量的人力、物力和财力,但在开发的过程中存在着诸多不确定性和可变性,因而有必要对软件项目风险进行管理与控制。本文通过对软件项目全程的风险识别、分析、应对及监测,在项目开发各阶段积极做好风险防控工作,以达到降低项目风险、减少风险损失的目的。 关键词 :软件项目开发;风险管理;风险...
  • 哪种软件开发模型强调风险分析,客户参与度高?
    答:螺旋模型强调了风险分析,这意味着对可选方案和限制条件都进行了评估,更有助于将软件质量作为特殊目标融入产品开发之中。螺旋模型由巴利·玻姆(Barry Boehm)于1988年提_,该模型融合了瀑布模型、快速原型模型,它最大的特点是引入了其他模型所忽略的风险分析,如果项目不能排除重大风险,就停止项目从而减小...
  • 模型考虑了软件开发过程中的风险
    答:2.**SpiralModel:螺旋模型是一种迭代的软件开发模型,注重在每个迭代中识别和解决风险。每个迭代被称为一个“螺旋”,并包括风险分析、工程和评审等活动,以确保项目能够适应变化和风险。3.**Agile开发方法:敏捷开发方法强调快速响应变化和持续交付价值。在敏捷框架中,团队通常通过迭代和持续的反馈机制来...