软件项目都存在着这样那样的风险,尤其是数据分析项目这就需要我们在进行软件开发项目时更加注重风险管理,注重风险分析,做好风险管理计划,积极寻求风险应对方法,从而提高项目成功的机会。
一、风险识别
软件项目由于其本身的创造性,注定了其风险的复杂性,在具体的风险识别过程中,我们应重点注意以下风险:
1. 需求风险。主要是指需求不确定性的风险,比如:由于系统使用者对系统将要实现的目标是模糊的、笼统的,而对于具体的需求不能准确描述;而且系统受使用者的个人习惯、知识背景影响较大,在系统范围和系统性能方面也存在着很多不确定性因素;另外,由于企业在发展过程中不断进行的业务流程调整等,都会给系统带来较大的需求不确定性风险,甚至是陷于需求膨胀的状态,便系统难以满足使用者的需求,难以适应企业发展的需要。
2. 管理风险。软件项目的管理本身就是一项具有风险性的工作,而数据分析项目由于是通过对其他系统的整合,来获取分析所必需的数据,其数据来源可能是多个相关系统,对项目的协调管理工作要求更高。因此,其管理风险主要表现在:工作缺乏计划性或是有计划而不能严格执行;管理工作的随意性、盲目性比较大;没有充分意识到风险管理的重要性,因而没有充分分析可能存在的风险和应该采取的风险应对策略;项目团队内部沟通不够,导致开发人员对系统设计的理解存在偏差等等。
3. 技术风险。软件技术飞速发展,各种新技术、新应用层出不穷。而数据分析项目不仅涉及到数据交换、数据仓库等技术,还需要依靠大量的数学分析模型,这就要求系统分析、设计人员要具有较好的软件技术、数学背景知识,同时还要对所分析的行业业务非常了解。因此,系统分析、设计人员的个人素质以及项目团队的整体素质将会影响到项目实施的成败。
二、风险分析
前述数据分析项目的三大风险对项目的影响都是非常大的,如果按定性的风险分析方法,其影响都是“高”级。
1、需求风险。需求风险的形成,可以从三方面进行分析:首先是由于应用部门的介入与参与程度不深,考虑需求往往从部门或局部的角度出发;其次是项目组对需求的调研目标不明晰,分析不透彻,缺乏有效的需求变化管理所造成的。这大都是因为从事软件开发的都是“高科技人员”,都具有“从专业或学术角度出发”的特点,而往往忽视了对业务知识的深入了解,不能很好地理解甚至是误解客户的需求。第三,是由于缺乏与决策层进行深层次的交流,难以掌握企业的发展趋势,对需求的延伸性不明确。这些需求不确定性的风险,都可能会造成大量工作“跑题”浪费,甚至是到项目都快要完成时,依然出现应用部门对系统提出一些基本的业务需求,或是软件功能实现了,却发现实际业务已发生了变化,导致软件失去了应有的价值等等,使时间和成本的投入成倍增长,甚至是系统无法正常投入使用。
2、管理风险。管理风险大都是由于项目经理或管理人员缺乏项目管理知识,对项目的工作范围不明确,对总体计划、阶段计划的作用认识不足,对项目的风险估计不足,而造成计划与控制脱节,无法进行有效的项目进度管理;而且,由于项目管理人员的协调管理能力不足,执行力度不够,使得项目协调成本、时间成本大大增加,造成工作延误等。
3、技术风险。技术风险可以直接导致项目失败。选择没有成功案例、不熟悉行业业务的开发商;项目的目标、范围超过了项目组的实现能力;采用不熟悉或是欠成熟先进的开发工具、不符合行业特点的数据分析模型等等,都无疑会使项目处于毁灭性的风险之中。
三、风险应对
风险分析活动分析的目的在于建立处理风险的策略。而风险规避的最好方式是把风