这篇软件工程师论文发表了软件项目风险管理研究的意义和原则,现代社会是个信息化高度发展的社会,各个企业发展都离不开信息化建設的支持,所以对于企业来说信息化建设的好坏是对企业正常业务经营有着直接影响的。
【关键词】软件工程师论文,软件项目,风险识别,风险评估
1 项目介绍
1.1 研究背景和意义
传统软件开发项目一般以客户方作为甲方,软件公司作为乙方,软件公司根据合同内容进行需求调研、分析、设计、编码、测试、上线、实施维护等,作为客户方多数是需求提供者,实际参与软件开发过程是由软件公司方独立完成的。
这种开发模式的优点在于软件公司在产品成熟、功能满足情况下可以进行快速复制推广,增加销售收入。但是缺点也比较明显:其一,由于各个企业的业务特殊性,往往一套软件产品无法满足多样性需求;其二,由于软件开发过程各个重要的事件阶段都是由软件供应商完成,客户方不能深刻理解其原理和关键点,使软件项目正常运行增加风险因素;其三,软件项目上线的维护工作很难,一旦发现系统存在缺陷,由于缺乏相应文档规范和技术支持,多数情况下软件公司在上线后会减少资源投入比,用户方会十分被动。
基于以上现实情况,本文提出基于合作开发模式下的软件项目风险管理研究,合作开发是一种区别于以往单纯以合同要求分工的甲方乙方模式,而是用户方信息化部门人员直接参与软件开发过程的各个关键事件节点。从业务层面来说,此类人员和业务部门人员进行业务对接;从技术层面来说,和软件开发公司人员进行技术对接。目前这种方式为国内越来越多公司所使用,从风险管理角度来看,由于软件项目增加了不同类型人员投入,对应的也增加了风险因素。陈凯律等人[1]通过开发了一种项目风险管理辅助工具来进行分析风险影响。顾坚韧[2]提出要运用风险管理策略来进行风险防范。本文主要研究如何能够识别风险,并通过建立有效的风险评估分析模型来进行分析论证。
1.2 公司/项目介绍
以JX航空公司为例,该公司目前在上海以浦东虹桥为主要基地,南京设有分公司。机队规模为67架,航线分布国内以及东北亚东南亚地区,日航班量320次左右,计划在2018年7月引进A380宽体机,开拓国际洲际航线,同时该公司还是星空联盟全球首家优连伙伴。其信息系统按运营和运行进行划分,主要包含机票网站、订座、FOC、HCC、FMS、机组排班、SMS等几十个在线系统和业务系统。国内航空公司除CQ航空公司信息系统为独立开发之外,其他航空公司均采用合作开发模式进行信息系统项目建设。以JX航空公司航线经营分析系统为例,该项目人员组成为:软件公司人员、客户公司信息部人员、客户公司业务部门人员。本文将以上三类人员按照其具体参与内容进行风险评估以及相应应对策略研究分析。
2 风险识别
2.1 风险识别原则
风险识别是风险管理的基础,只有充分意识到风险识别的重要性,及时识别风险,才能有效地控制风险。风险识别的主要原则有全面详细、综合考察、量力而行、科学计算。
2.2 风险识别方法
目前比较常用的风险识别方法有德尔菲法、头脑风暴法、SWOT 技术法、检查表和图解技术等。
①德尔菲法
也称专家调查法,1946 年由美国兰德公司创始实行。该方法是由企业组成一个专门的预测机构,其中包括若干专家和企业预测组织者,按照规定的程序,背靠背地征询专家对未来市场的意见或者判断,然后进行预测的方法。
②头脑风暴法
头脑风暴法的目的是取得一份综合的风险清单。头脑风暴法通常由项目团队主持,虽然也可邀请多学科专家来实施此项技术。在一位主持人的推动下,与会人员就项目的风险集思广益。可以以风险类别作为基础框架,然后再对风险进行分门别类,并进一步对其定义加以明确
③ SWOT 技术法
SWOT 分析法是一种环境分析方法。所谓的SWOT,是英文Strength (优势)、Weakness (劣势)、Opportunity(机遇)和Threat(挑战)的简写。
④检查表
检查表是管理中用来记录和整理数据的常用工具。用它进行风险识别时,将项目可能发生的许多潜在风险列于一个表上,供识别人员进行检查核对,用来判别某项目是否存在表中所列或类似的风险。
⑤图解技术
图解技术主要包括因果图、流程图和影像图三大类。其中每一类图又有各自的图解工具。图解技术以图形化为较为形象的描述风险成因。
3 风险评估
3.1 风险评估方法
风险评估作为风险管理过程中最重要的环节,将直接影响风险管理的质量和效果。一般常用的风险评估方法有:德尔菲法(Delphi)、层次分析法(AHP)、蒙特卡罗法(Monte Carlo method)、熵值法(entropy)、决策树分析法(Decision Tree)等方法。
通过图表对以上风险评估方法进行比较,如表1所示:
3.2 风险评估方法选用
软件项目开发过程会涉及各种决策问题,尤其是在合作开发模式下,存在客户方信息部门人员、客户方业务部门人员以及软件公司人员,多数软件公司还会根据实际产品开发需要将人员划分为开发人员和实施人员,而每个人员组成要素都有其风险因素,这些风险因素会直接体现在项目的需求调研、设计、开发、测试、部署等各个环节,因为需要将这些风险要素进行权重分析,根据专家评定的比例系数进行科学的数据分析计算,因而本文会采用层次分析法(APH)来作为风险评估方法,通过建立判断矩阵和科学权重计算进行风险评估。
层次分析法的计算通过以下四个步骤实现:
①建立层次结构模型
层次结构模型一般情况下分为三类:目标层、准则层和方案层,其中目标层处于最高层,准则层是中间层,方案层为最底层,准则层还会根据需要划分出子准则层,层次数与需要解决问题复杂度相关,一般情况每层元素个数不超过9个。
② 判断矩阵标度和构建
客户公司和软件公司相关项目干系人对项目层次结构模型进行分析和讨论,然后根据表2对对应风险进行打分并构建两两比较判断矩阵A。
λmax是判断矩阵A的最大特征值,我们通过λmax=n可以检验矩阵A是否为一致矩阵,当λmax比n大的很多,矩阵A的非一致性程度也就越高,所以我們可以通过这种方法来检验一致性。当CR<0.1时,矩阵A一致性是可以接受的;否则需要把判断矩阵表进行重新调整。
④ 层次总排序和一致性检验
层次分析法权重和矩阵最大特征值的计算方法包括算术平均法、特征向量法、幂法等,本文采用特征向量法,公式:AW=λmaxW (7)
W为权重向量,λmax是矩阵最大特征值,最大特征值要求存在唯一性。权重向量进行归一化处理。
JX航空公司航线经营决策系统是该公司信息部主导,软件公司负责开发,业务部门负责参与的三方共同参与的典型合作开发模式。其一级层次模型见图1。
根据以上指标,召集了客户公司和软件公司相关领导和业务专家进行风险评估打分,两两比较,建立一级指标判断矩阵,见下表
①权重向量计算
通过一级指标权重表5可以看出,对航线经营风险系统项目的影响程度由强到弱依次为U1,U3,U2,U4,U5,U6,对应百分比(保留两位小数)为29%,28%,17%,14%,7%,5%。
从上述风险指标的权重分析可以看出,软件公司技术开发成熟度是风险比重最高的,这点正好说明了软件的抽象性和复杂性,软件项目的成败对开发技术依赖程度较高,同时可以看到客户公司业务部门业务成熟度位于风险比重第二位,这点也符合了业务系统的业务需求主导的重要性,而国内大部分软件项目的失败是由于需求分析阶段业务理解和导向出现偏差而导致项目延期,甚至返工。软件公司的团队建设水平风险比重较低,也反映目前国内软件公司逐步注重公司团队建设和人员分工,通过资源合理配置保证项目的稳步推进的现状。
4 风险应对
4.1 风险应对策略
风险应对策略就是对已经识别的风险进行定性分析、定量分析和进行风险排序,制订相应的应对措施和整体策略。
4.2 风险应对措施
通过上一节的JX航空公司航线经营分析系统项目的风险评估分析结果可以看到,该项目中软件公司技术开发成熟度风险比重最大,占到29%。同时,客户公司业务部门业务成熟度风险比重占28%,也是一个相当高的比例。因此这两个风险要素应对的措施是否合适、是否具有科学性和可操作实践性,将直接影响该软件项目的成败。因而在合作开发模式的软件过程中,以产品设计需求规格、概要设计、详细设计、开发计划、开发过程等阶段,客户公司信息部人员和业务部门人员会在相应的阶段参与评审和文档整理,在关键的开发过程中,信息部人员还会参与到具体代码的评审和整理。项目经理同时会在时间、进度、成本三要素进行管理,保障项目进度按期完成,从而有效降低软件公司技术开发成熟度风险要素。
5 结论和展望
5.1 结论
在合作开发模式下,加强需要管理、技术管理和文档标准化工作,按照软件工程开发过程的关键阶段进行把关,在代码开发阶段信息部人员参与,进一步控制开发技术风险,降低风险对项目造成的负面影响到一个可以接受的范围内[3]。
5.2 展望
信息化建设是为了更好服务于企业正常生产运行,信息化建设过程的持续优化,对建设结果的好坏有直接影响。合作开发的软件项目模式被越来越多的传统公司所采纳。本文以民航交通行业公司信息化项目建设为研究背景,结合实际过程管理与控制,力争将最大风险要素进行合理控制。但也要清楚地看到,风险是动态变化的,需要时刻关注那些潜在风险,采用科学方法进行风险识别、评估与控制,需要对分析模型进一步的完善,只要这样才能保证分析结果的科学性和正确性。
【参考文献】
【1】陈凯律, 沈备军, 张艳红. 基于软件过程的项目风险管理及其工具[J]. 计算机工程, 2010, 36(4): 69-70.
【2】 顾坚韧.软件项目风险管理方法探讨[J].软件产业与工程,2013,32(4):1111-1113.
【3】蒋宗礼, 李仲麟, 何炎祥. 软件工程导论[M]. 北京:清华大学出版社,200
推荐阅读:计算机软件的应用与前景分析