软件开发项目风险是指在软件生命周期中遇到的预算、进度和控制等各方面的问题,以及由这些问题而产生的对软件项目的影响。软件项目风险经常会涉及许多方面,如:缺乏用户的参与,缺少高级管理层的支持,不清晰的要求,缺少计划和管理等,总体概括主要包含五大方面。
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)团队成员之间的沟通等。