软件项目成果的需求分析方和软件项目的承担者都十分关心这样的一个问题:什么样的因素会导致软件项目的失败与项目有关的因素的改变将对按时、按经费预算交付符合预定质量要求的软件成果产生什么样的影响这些都属于软件项目开发过程中考虑的风险问题。
软件项目风险会影响项目计划的实现,如果项目风险变成现实,就有可能影响项目的进度,增加项目的成本,甚至使软件项目不能实现。因此有必要对软件项目中的风险进行分析并采取相应的措施加以管理,尽可能减少风险造成的损失。风险是在项目开始之后才对项目的执行过程其负面的影响,所以软件项目开始之前风险分析的不足,或者是软件项目实施过程中风险应对措施不得力,都有可能造成软件失败。
如果对项目进行风险管理,就可以最大限度的减少风险的发生。它是为了将不确定因素出现的概率控制到最低,将不确定性所造成的损失减少到最低限度,对软件项目全过程中的风险识别、分析和应对的过程。在整个软件项目的实施过程中,可能形成项目风险的因素有很多,如在项目启动阶段可能存在项目目标不明确,与用户沟通少导致项目范围不明确等分先因素;在系统设计阶段可能因为缺乏有经验的分析人员、设计人员导致和设计的结果不能直接用于程序员的开发;在项目实施阶段可能因为开发环境没有准备好,程序员开发能力差,或者因为用户提出新的功能需求导致原有设计实效、开发费用超支,还有可能因为开发人员的流动导致项目延期,客户不满意等情况。
软件项目运用专家调查法和头脑风暴法分析软件开发项目中,并将其进行整理分类。
由于与客户沟通不畅对客户的需求了解不足造成的风险在软件开发项目整个生命周期的中都存在的风险,主要包括需求变更风险,涉及风险,过程风险,安装及维护风险。
由于管理人员素质不够,经验不足,沟通不畅,任务或其分配不合理,对项目的控制力度不够造成的各种风险,主要包括进度风险,预算风险,管理能力风险,信息安全风险。
由于技术力量不足,开发环境工具不足造成的。主要包括技术风险,质量风险,软件设计工具风险,软件开发工具风险,员工技能风险。
由于公司或项目组内外部环境变化所导致的风险,主要包括人力资源风险,政策风险,市场风险,营销风险。
软件项目中的风险永远不能全部消除,而只能采用避免、减轻、和接受三种因对策略。
避免:通过分析找出发生风险事件的原因,消除这些原因来避免一些特定风险事件的发生。
减轻:通过降低风险事件发生的概率或得失衡量来减轻风险对项目的影响,也可采用风险转移的方法来减轻风险对项目的影响。
接受:对于一些无法避免的风险,应当接收风险造成的后果或者提前设计相应的应对措施,但这需要一定的资金做后盾。
下面我们就以上四大类别中的一些主要风险进行具体分析以及提出应对策略。
预防这种风险的办法一般是经常和用户交流工作成果、品牌管理采用符合要求的开发流程、认真组织对产出物的检查和评审、计划和组织严格的独立测试等。软件质量的保证体系是软件开发成为可控制过程的基础,也是开发商和用户进行交流的基础和依据。所以制定卓有成效的软件质量监督体系,是任何软件开发组织必不可少的。
预防这种风险的办法是在用人之前先选对人、开展有针对性的培训、将合适的人安排到合适的岗位上。要降低项目的人力资源风险,就要保证参加项目的各类人员能够胜任项目中所承担的工作。因此,实施双方应对参与人员进行认真地评估。这种评估是两个方面的,不仅是用户对开发方人员的评估,也包括开发方对参与项目的用户方成员的评估。同时,应保证项目人员对项目的投入程度。另外,项目经理要采取相应的措施维持开发队伍的稳定,将参与项目人员的业绩评估与项目实施的状况相联系,制定适当的奖惩措施。同时,项目经理也需要做好项目组人员变动的应对措施。开发人员的水平应该符合项目开发要求。技术上是应该和算选取的开发工具相配套。是能够自始至终地参加软件开发工作。是能够集中全部精力投入软件开发工作。并且员工对自己的工作有正确的期望。要接受过必要的培训。保证开发人员的流动保证工作的连续性。尽可能将项目的核心工作分派给多人(而不要集中在个别人身上)、加强同类型人才的培养和储备。
软件项目开发过程中面临的风险是多种多样的,风险的大小以及重点各不相同,项目管理人员应当充分考虑,认真分析,在考虑风险损失和合理的风险应对成本之后,选择采用合适的风险应对计划,避免因风险造成各方面的重大损失。