第13卷 第3期
2004年6月
运 筹 与 管 理OPERA TIONS RESEARCH AND MANA GEMEN T SCIENCE Vol. 13,No. 3J un. 2004
软件项目风险管理方法的比较与分析
方德英1,2, 李敏强2, 2
(11河南科技大学经管学院, 河南洛阳471003; , )
摘 要:。然后, 从基本理论、前沿研究、实践应用、, , 继而就2002年来笔者, () 和内容(一般理论、基本模型、辨识方法、评估方法、辅助工具) , 最后结合我国当前的社会和技术环境, 提出了应采取树立企业风险文化、建设风险信息数据库和“软”“、硬”结合的四项建议。
关键词:软件; 项目管理; 风险管理; 比较分析
中图分类号:F407167 文章标识码:A 文章编号:100723221(2004) 0220081205
Comp arison and Analysis on Risk Management of Software Project
Fang De 2ying 1,2, Li Min 2qiang 2, KOU Ji 2song 2
(1. Economics and M anagement School , Henan U niversity of Science and Technology , L uoyang , 471003; 2. School of M anagement , Tianji n university , Tianji n 300072, Chi na )
Abstract :Firstly this paper points out the shortcomings of traditional methods of management of software pro 2ject , and the necessity of risk management of software project. Secondly the achievements at home and abroad are summed up respectively , in terms of essential theory , actual research , practice , auxiliary tool and accept 2ing standard. And then the literatures the authors collected until 2002are compared and analyzed in form monograph , technical report , paper 2and in content 2general theory , basic model , identification method , as 2sessment method , auxiliary tool , experience and so on. Finally four suggestions to China , i. e. to popularize risk management culture , to share in achievements with foreigner , to build risk information base and to unite soft and hard measures , are given based on comparison , analysis and Chinese social and technical circum 2stances.
Key words :software; project management ; risk management ; comparison &analysis
0 引言
软件项目开发风险是固有的, 广义地说一切软件设计、软件工具和软件工程中的方法都可归为降低软件项目风险的手段。50多年的软件开发历程中, 先后提出了技术角度入手的程序设计方法学、从组织角度入手的系统开发方法学、从资源角度入手的企业资源计划。三类方法分属于三个层次, 都在所属领域内起到了积极的作用。程序设计方法学试图从逻辑层面消除开发的不确定性, 系统开发方法学试图从需求的稳定性、计划的规范性等方面减少开发的不确定性, 企业资源计划试图通过资源合理配置、系统集成等方面降低开发的不确定性。
但这些方法和手段并没有从根本上改善项目实施的成效, 根本原因是, 软件密集型系统是一种人们可收稿日期:2003211214
基金项目:国家自然科学基金资助项目(70371046)
作者简介:方德英(19642) , 男, 河南南阳人, 博士, 河南科技大学经管学院副教授, 副院长, 主要从事信息系统和系统工程方面的研究。
82运 筹 与 管 理 2004年第13卷以加以选择、人们的主观选择可以起到巨大作用的社会过程, 同时, 该系统又以客观的、具体的、技术的形态体现, 因此, 它是一社会—技术系统, 是一个开放的复杂特殊巨系统。再加之软件项目的开发是一项集智力密集与劳动密集于一体的人类活动[1], 活动中不可避免地带有社会和技术的不确定性, 且随着信息技术的发展、应用领域的泛化和深化, 软件项目的结构愈加复杂、社会对其的性能需求愈来愈高, 因而, 软件项目呈现出的社会性相比技术性更为强烈, 社会性问题本质上的不确定性, 决定了风险是软件项目开发中固有的、不以人们的意志为转移的属性。而上述三类方法都缺乏系统地评估与控制诸如态度、士气、开发环境及人员变动等社会性风险的手段。
[2]、技术水平的提高和建设理念的更新, 如兼有先进技术、、ERP 等的逐渐推出。可见, 单纯某一因素, 都不能使信息系统开发的不确定性随之明显降低, 、。
, 吸收传统项目管理和风险管理的理论精华, 通, (风险) 、决定哪些风险达到[3]。这一学科的核心是系统、主动、持续地辨识、分析、计划、、财、物和技术等各方面的风险因素, 以期达到系统工期、性能和成本的均衡。可见, 这一研究领域集理论和实践于一体, 虽处在不断地变化、发展之中, 但同时已显现出了巨大的社会和经济效益, 因此越来越多地受到了业界的重视。
1 软件项目风险国内外发展状况
由于技术基础、管理方法和社会环境的差异, 我国与西方发达国家在软件项目建设方面面临的主要矛盾远远不同, 也体现在了软件项目风险管理的理论研究和应用实践中。
111 我国的研究状况
我国此领域的研究还远不成系统。
在理论基础方面, 通常认为软件项目风险管理从属于管理信息系统和软件工程两大分支学科, 但在两学科的经典著作中[4~7], 有关风险管理内容的大概只能算可行性分析[4~5]和项目管理[6~7]这两个环节。可行性分析中无显式的风险管理概念, 项目管理中则是按照一般风险管理的过程给出了风险分析的四项活动:风险识别, 风险估计, 风险评价和风险驾驭。2002年下半年, 美国心理学家Hall 女士98年主笔的专著译文刚刚问世[8], 至今国内尚无针对本土情况的书籍出版。
代表研究前沿的定期刊物此方面的报道不多, 文献[9]针对信息系统开发过程的动态风险, 提出了一种综合评价模型, 文献[10]根据模糊数学理论建立了多阶段多层次综合风险估测模型。文献[11]总结了三种典型生命周期模型、五种开发方法与风险管理的关系。文献[12]试图用实体联系模型完善软件开发风险管理的整体性。
在应用研究方面, 文献[13]认为在项目实施的前期决策时, 应该“听听反调”, 反映了风险管理中风险识别的思想; 还站在企业的角度提出软件及开发商选择的问题及实施要点, 反映了风险控制的思想, 作者虽然没有以风险管理的体系阐述防范风险的过程, 但为实施MRPII 中引入风险管理思想提供了大量的素材。文献[14]认为企业采用ERP 管理模式面临着三个层次的风险:外部风险、流程风险和决策信息风险, 并提出了实施过程中的表现形式:软件风险、实施风险和转变风险。此外, 我国台湾中文大学李惠明(音) [15]提出了群决策环境下用模糊集理论评估软件开发中聚合风险率的算法, 之后台湾科技大学的陈世明(音) [16]又改进了这一算法。作为软件工程领域权威标准的国家“质量管理和质量保证标准(G B/T 1900~2000) ”第一部分:选择和使用指南, 只在产品安全性中提到了风险因素。第三部分:软件开发、供应和维护中的使用指南中, 只在合同评审部分提到了风险辨识和风险管理问题。
112 国外的研究状况
国外软件项目风险管理的研究始于1989年, 无论在从事研究的人数上还是获得的成果数量上, 美国都居于首位。在美国最具代表性的又属软件工程研究院(SEI ) , 至今由其主办的该专题国际会议已达五次。此外英国和由芬兰、挪威、荷兰、瑞典等国组成的北欧经济圈以及澳大利亚、日本、韩国也有一定的成
第3期 方德英, 等:软件项目风险管理方法的比较与分析83果问世, 而在其他国家和地区只有零碎的相关报道, 与国内情况类似, 尚未形成规模气势。
[3]理论方面, 普遍认为Boehm 的《软件风险管理》奠定了该领域的理论基础, 同期Charette 从不同角
]度也构造出了类似的风险管理结构[17。由美国军方资助, 设立在卡内基・梅隆大学的SEI 则是1990年来研
[18]究和实践软件风险管理的最大基地。他们认为软件风险评估、持续的风险管理和团队风险管理构成了
软件风险管理的基本框架。微软认为[19]风险管理可分为五个步骤:风险辨识、风险分析、风险活动计划、风险跟踪和风险控制, Tallon 等[20]进一步地把风险管理提前到IT 项目投资阶段,Walsh 等[21]认为软件项目风险管理只有方法是不够的, , 论的成果。而文献[22]作为大学教科书, 。
实践方面,Powell 等[23], 并开发了一个完整的辅助风险分析的决策支持系统]量, , 的关系。David [25]K 2SAV ) 技术探讨了从风险陈述文本识别风险源的规范程序[26](Taxonomy 2Based Risk Identification ) 方法, 项目管理研究院(PM I ) ](Risk Assessment Methodology ) 度量软件开发风险。SEI 在其著明的能力成熟度模型(CMM ) 基础上又提出了的软件获取能力成熟度模型(SA 2CMM ) [28], 主要面向大型团队的复杂项目。Reifer [29]阐解了当今广泛的网络信息系统应用所面临的特殊风险。
IEEE 于2001年制订了IEEE1540标准[30], 结合软件生命周期模型给出了风险管理过程规范。事实上的国际标准“集成软件能力成熟度(CMM I ) ”模型在第三级将风险管理列为了关键过程域。2 比较与分析
表1是笔者不完全统计的研究现状。其中按成果内容所列数据含有主观因素, 一是类别的设计带有主观性, 不仅是因为只选取了主要的类别, 还因为目前尚无统一的软件风险管理体系结构, 不同文献采用的名称有时甚至是相互冲突的。二是由于有些成果兼有理论、方法和实践等内容, 本文一般按其主要内容进行归类或同时归入各类; 还有不少成果未见到原文, 对此类成果本文采用如下两种方式归类:根据所引用文章的介绍归类(这有可能使结果受所引内容的影响) 、根据其篇目字面含义归类(这使得主观臆断性更强) 。尽管有上述不足, 但却也不失相对合理性。
表1 国内外软件项目风险管理成果一览表数量
成果
形式论文技术报告
专著
一般理论
基本模型
辨识方法
评估方法
辅助工具
应用研究
其它1989~19931994~19981999~2002合计国内11国内国外[1**********]395国内国外[**************]13国内11国外11386国外[***********][***********]53186234成果内容
表1中的“基本模型”项多指定性的工作内容和工作步骤描述“, 其它项”中含有风险控制、工作手册和比较研究的成果内容。从表1可以看出, 成果密度随时间逐渐增加, 研究地域也波及到了国内, 但国内尚无体系完整的专著。
从成果结构看“:一般理论”占居所有成果的第一位, 一方面说明研究程度的深入, 另一方面也说明了理论基础还能进一步完善“; 辨识方法”的不足则在一定程度上反映了辨识风险问题的结构性还不高“; 评估方法”的重多研究成果显示出了相关学科对此领域的直接贡献, 如数理统计理论、模糊集理论、贝叶斯置信网络理论、软件工作量度量理论、仿真技术和心理学应用等“; 辅助工具”的出现和丰富说明相关方法具有了相当高的形式化程度, 只是辅助工具多用于辅助“评估方法”; 而“应用研究”的稳步提升和从多数实例
84运 筹 与 管 理 2004年第13卷得来的正面评价, 预示着软件风险管理的可喜发展前景。另外“, 一般理论”成果的增幅低于“应用研究”类的增幅, 说明了学科有走向稳定的趋势。
从研究内容看:普遍认为软件风险管理应该针对全部可能的风险因素, 在整个软件开发过程中动态地、连续不断地识别、跟踪风险的变化, 并在考虑成本/收益的基础上有选择采取相应措施, 还要与项目管理集成为一体成为一项常规性的管理活动。但公认的结构体系还没有形成, 针对不同的项目管理方式和开发方式, 有不同的风险管理体系。对合适的定量程度也有不同的看法, 如对风险值的度量, 有完全量化法、二值逻辑法、三级、五级值法等。
从研究方向看:有针对大型项目的, 、、的, 近期也有个别文献关注软件维护过程的, , 维护中的风险更加频繁, 来源也更为广泛, 。
从研究风格看, 。英美特别强调应用规范的建立, 。以芬兰为代表的北欧小经, 并认为关注特定任务的方法会产生误导, , 、开发环境和系统环境入手。而我国大陆和台湾则重视数理方法的应用。
从涉及到的相关学科看, 有软件工程、项目管理、质量管理、风险管理、组织行为学、数理统计学、系统动力学、模糊数学以及决策理论和一般管理理论等等。
总之, 十余年来的软件风险管理研究证明, 在软件开发中超越人类直觉、引入理性的方针、工具, 是经济的、合理的。
3 思考与建议
软件系统本是为了减少现实系统的不确定性而存在的, 但其自身的产生过程却充满了许多的不确定性。单纯信息技术的发展不但没有减弱, 反而还助长了这一现象, 特别随着应用的广泛和深入、随着项目规模的增大, 这种现象愈加突出。Keil [31]通过大量实例说明了许多信息系统失败于不恰当的项目风险管理。IEEE 的研究认为:软件系统中50%~70%的风险可以被检测到,90%的风险可以被避免[32], 风险管理的杠杆作用, 一般的投资回报率是700%到2000%, 风险评估中耗时、耗力的工作可以借助软件包得到减轻。
十几年前在国外兴起的软件风险管理研究没有在国内引起同步的反响, 原因在于当时我国的软件渗透范围还不够广泛。在当前国家信息化政策的促进下, 相信软件密集系统的应用高潮会很快到来。因此, 借鉴国外的经验, 构筑适合于我国文化的软件风险管理体系成为当务之急。特别由于目前我国软件项目的负责人普遍是信息技术专家, 而非项目管理专家, 更缺少复合型人才, 他们在实践中对项目风险的管理多靠直觉和经验, 缺乏主动的、有目的的、系统的风险管理思想指导, 更显出开展软件风险管理研究, 提供具有较强可操作性的项目风险管理体系的紧迫性。
为此, 考虑到我国的文化、人才、技术等环境因素, 结合国外的研究现状, 提出如下建议:
(1) 培育全员风险管理意识, 营造企业风险文化。因为风险带有社会性、主观性, 风险管理涉及到项目建设的开发方、建设方、投资方、使用方和维护方, 各方的有效沟通是降低项目风险的最重要手段之一, 而共有的风险意识是各方沟通的基础。大学中开设软件工程课程和项目前期培训工作负有这方面的责任。
(2) 借鉴国外成果, 共享人类知识财富。软件项目的风险在中外有许多相通的地方, 如果把风险粗分为社会风险和自然风险, 则对于大多数自然风险, 中外面临着相似的对象, 因而理论结论和方法体系可以共享; 但中外面临着不同的社会风险, 如在中国相对突出的廉政风险、管理转变风险等。我们还可以将风险细分为项目风险(成本提高, 时间延长等) 、技术风险(技术不成熟等) 、商业风险(销售问题等) 、战略风险(公司的经营战略发生了变化) 、管理风险(公司管理人员是否成熟等) 、预算风险(预算是否准确等) 等, 进一步区分哪些是共同面临的对象, 哪些是独有的对象, 从而取长补短, 共同发展。
(3) 积累开发经验, 形成风险管理数据库。当前我国软件开发人员过于分散, 开发团队规模过小, 技术管理和组织管理制度远未健全, 所以有限的经验和教训很难得以继承和借鉴。通过各级软件协会不断收集、整理开发数据, 以期形成风险统计数据库、专家知识库等社会财富, 必将成为降低软件项目风险的重要
第3期 方德英, 等:软件项目风险管理方法的比较与分析85保证。
(4) “软”“、硬”结合, 兼收并举。首先要认真履行项目管理规程, 在硬技术进程中引入软管理思想, 特别是项目风险管理思想。其次要在软管理中重视辅助工具的开发和利用, 构建易于操作的模型, 形成有较强针对性的风险管理体系。并通过这些实践培养和造就一批既懂管理又具有软件知识的复合型人才。
综上所述, 软件项目的风险是固有的, 也是可以被认识、被预测的, 被驾驭的。我国的经济发展方向要求我们必须及时重视软件开发的风险管理, 从而提高人才、。参考文献:
[1]Chittister et al. Risk associated with software development :a management [J].IEEE Transactions on Systems , Man , and Cybernetics , 1993,23() 2[2]乌家培. 企业信息化十大要点>,2001, (11) :23.
[3]Boehm , Barry. Society , 1989.
[4]黄梯云. M ].北京:,1999:1202130.
[5]薛华成. [M ].. 北京:清华大学出版社,1999:528.
[6]郑人杰. 软件工程(高级) [M ].北京:清华大学出版社,1999. 3162318.
[7]张海藩. 软件工程导论[M ].北京:清华大学出版社,1987. 982100.
[8]E M Hall. 风险管理———软件系统开发方法[M ].王海鹏等译. 北京:清华大学出版社,2002.
[9]何芳, 张李义. 信息系统开发过程的风险评价[J].武汉水利电力大学学报,1999,32(5) :1102112.
[10]张李义. 信息系统开发的动态风险模糊估测方法[J].系统工程理论与实践,2001,21(10) :88292.
[11]海龟. 软件生命周期模型与风险管理[EB/OL ].http ://www. chinabyte. com/staticpages/software/software-evaluate , 1999:11/30.
[12]余坚, 郑跃斌. 信息系统开发过程风险管理的实施模型[J].计算机工程与应用,2002,11:1102113.
[13]陈启申. MRP II 制造资源计划基础[M ].北京:企业管理出版社,1997. 189:1902220.
[14]施自能. 实施ERP 系统的风险分析[J].IT 经理世界,1999,3(1) :17219.
[15]Lee Huey 2Ming. G eneralization of the group decision making using fuzzy sets theory for evaluating the rate of aggregative risk in software de 2
velopment [J].Information Sciences , 1999,113:3012311.
[16]Chen Shyi 2Ming. Fuzzy group decision making for evaluating the rate of aggregative risk in software development [J].Fuzzy Sets and Sys 2
tems , 2001,118:75288.
[17]Robert Charette N. Software engineering risk analysis and management [M ].Mc Graw 2Hill Software Engineering Series , New Y ork Intertext
Publications ; Mc Graw 2Hill Book , 1989.
[18]Ronald P et al. Software risk management [R].Technical Report CMU/SEI 2962TR 2012, 1996/6.
[19]Microsoft Corp. MSF risk management process[DB/OL ].http ://www. Microsoft. com , 1999/6.
[20]Tallon P P et al. Using Real Options Analysis for Evaluating Uncertain Investments in Information Technology[A ].Insights From The ICIS
2001Debate , Communications of the Association for Information Systems 2002,9:1362167.
[21]Walsh K enneth R , Schneider Helmut. The role of motivation and risk behavior in software development success[J].Information Research ,
7(3) :27236.
[22]Hughes Bob , Cotterell Mike. Software project management (2nd edit. ) [M ].Mc Graw 2Hill , 1999.
[23]Powell P L , K lein J H. Risk management for information systems development [J].Journal of Information Technology , 1996,11(4) :03072
0317.
[24]Jiang James J et al. . Risks to different aspects of system success[J].Information &Management , 1999, (36) :2632272.
[25]Monarch Ira , G luch David P. An experiment in software development risk information analysis[R].Technical Report CMU/SEI 2952TR 2014
ESC 2TR 2952014, 1995, (10) .
[26]Carr et al. . Taxonomy 2based risk identification[R].Technical Report , CMU/SEI 2932TR 26, 1993/6.
[27]Max Wideman R. Project and program risk management :a guide to managing project risks and opportunities[R].Project Management Insti 2
tute , 1992.
[28]G allagher Brian P. Software acquisition risk management key process area (KPA ) 2a guidebook version 1. 02[R ].CMU/SEI 2992HB 2001,
1999/10.
[29]Reifer Donald. Ten deadly risks in Internet and intranet software development [J].IEEE Software March/April 2002:12214.
[30]IEEE. IEEE standard 154022001[S].IEEE Standard for Software Life Cycle Processes 2Risk Management. Inc. New Y ork , N Y. , 2001.
[31]K eil Mark et al. . An investigation of risk perception and risk propensity on the decision to continue a software development project [J].The
Journal of Systems and Software , 2000, (53) :1452157.
[32]Lister Tim. Interview with Tim Lister[J].IEEE Software , 1997,324.
第13卷 第3期
2004年6月
运 筹 与 管 理OPERA TIONS RESEARCH AND MANA GEMEN T SCIENCE Vol. 13,No. 3J un. 2004
软件项目风险管理方法的比较与分析
方德英1,2, 李敏强2, 2
(11河南科技大学经管学院, 河南洛阳471003; , )
摘 要:。然后, 从基本理论、前沿研究、实践应用、, , 继而就2002年来笔者, () 和内容(一般理论、基本模型、辨识方法、评估方法、辅助工具) , 最后结合我国当前的社会和技术环境, 提出了应采取树立企业风险文化、建设风险信息数据库和“软”“、硬”结合的四项建议。
关键词:软件; 项目管理; 风险管理; 比较分析
中图分类号:F407167 文章标识码:A 文章编号:100723221(2004) 0220081205
Comp arison and Analysis on Risk Management of Software Project
Fang De 2ying 1,2, Li Min 2qiang 2, KOU Ji 2song 2
(1. Economics and M anagement School , Henan U niversity of Science and Technology , L uoyang , 471003; 2. School of M anagement , Tianji n university , Tianji n 300072, Chi na )
Abstract :Firstly this paper points out the shortcomings of traditional methods of management of software pro 2ject , and the necessity of risk management of software project. Secondly the achievements at home and abroad are summed up respectively , in terms of essential theory , actual research , practice , auxiliary tool and accept 2ing standard. And then the literatures the authors collected until 2002are compared and analyzed in form monograph , technical report , paper 2and in content 2general theory , basic model , identification method , as 2sessment method , auxiliary tool , experience and so on. Finally four suggestions to China , i. e. to popularize risk management culture , to share in achievements with foreigner , to build risk information base and to unite soft and hard measures , are given based on comparison , analysis and Chinese social and technical circum 2stances.
Key words :software; project management ; risk management ; comparison &analysis
0 引言
软件项目开发风险是固有的, 广义地说一切软件设计、软件工具和软件工程中的方法都可归为降低软件项目风险的手段。50多年的软件开发历程中, 先后提出了技术角度入手的程序设计方法学、从组织角度入手的系统开发方法学、从资源角度入手的企业资源计划。三类方法分属于三个层次, 都在所属领域内起到了积极的作用。程序设计方法学试图从逻辑层面消除开发的不确定性, 系统开发方法学试图从需求的稳定性、计划的规范性等方面减少开发的不确定性, 企业资源计划试图通过资源合理配置、系统集成等方面降低开发的不确定性。
但这些方法和手段并没有从根本上改善项目实施的成效, 根本原因是, 软件密集型系统是一种人们可收稿日期:2003211214
基金项目:国家自然科学基金资助项目(70371046)
作者简介:方德英(19642) , 男, 河南南阳人, 博士, 河南科技大学经管学院副教授, 副院长, 主要从事信息系统和系统工程方面的研究。
82运 筹 与 管 理 2004年第13卷以加以选择、人们的主观选择可以起到巨大作用的社会过程, 同时, 该系统又以客观的、具体的、技术的形态体现, 因此, 它是一社会—技术系统, 是一个开放的复杂特殊巨系统。再加之软件项目的开发是一项集智力密集与劳动密集于一体的人类活动[1], 活动中不可避免地带有社会和技术的不确定性, 且随着信息技术的发展、应用领域的泛化和深化, 软件项目的结构愈加复杂、社会对其的性能需求愈来愈高, 因而, 软件项目呈现出的社会性相比技术性更为强烈, 社会性问题本质上的不确定性, 决定了风险是软件项目开发中固有的、不以人们的意志为转移的属性。而上述三类方法都缺乏系统地评估与控制诸如态度、士气、开发环境及人员变动等社会性风险的手段。
[2]、技术水平的提高和建设理念的更新, 如兼有先进技术、、ERP 等的逐渐推出。可见, 单纯某一因素, 都不能使信息系统开发的不确定性随之明显降低, 、。
, 吸收传统项目管理和风险管理的理论精华, 通, (风险) 、决定哪些风险达到[3]。这一学科的核心是系统、主动、持续地辨识、分析、计划、、财、物和技术等各方面的风险因素, 以期达到系统工期、性能和成本的均衡。可见, 这一研究领域集理论和实践于一体, 虽处在不断地变化、发展之中, 但同时已显现出了巨大的社会和经济效益, 因此越来越多地受到了业界的重视。
1 软件项目风险国内外发展状况
由于技术基础、管理方法和社会环境的差异, 我国与西方发达国家在软件项目建设方面面临的主要矛盾远远不同, 也体现在了软件项目风险管理的理论研究和应用实践中。
111 我国的研究状况
我国此领域的研究还远不成系统。
在理论基础方面, 通常认为软件项目风险管理从属于管理信息系统和软件工程两大分支学科, 但在两学科的经典著作中[4~7], 有关风险管理内容的大概只能算可行性分析[4~5]和项目管理[6~7]这两个环节。可行性分析中无显式的风险管理概念, 项目管理中则是按照一般风险管理的过程给出了风险分析的四项活动:风险识别, 风险估计, 风险评价和风险驾驭。2002年下半年, 美国心理学家Hall 女士98年主笔的专著译文刚刚问世[8], 至今国内尚无针对本土情况的书籍出版。
代表研究前沿的定期刊物此方面的报道不多, 文献[9]针对信息系统开发过程的动态风险, 提出了一种综合评价模型, 文献[10]根据模糊数学理论建立了多阶段多层次综合风险估测模型。文献[11]总结了三种典型生命周期模型、五种开发方法与风险管理的关系。文献[12]试图用实体联系模型完善软件开发风险管理的整体性。
在应用研究方面, 文献[13]认为在项目实施的前期决策时, 应该“听听反调”, 反映了风险管理中风险识别的思想; 还站在企业的角度提出软件及开发商选择的问题及实施要点, 反映了风险控制的思想, 作者虽然没有以风险管理的体系阐述防范风险的过程, 但为实施MRPII 中引入风险管理思想提供了大量的素材。文献[14]认为企业采用ERP 管理模式面临着三个层次的风险:外部风险、流程风险和决策信息风险, 并提出了实施过程中的表现形式:软件风险、实施风险和转变风险。此外, 我国台湾中文大学李惠明(音) [15]提出了群决策环境下用模糊集理论评估软件开发中聚合风险率的算法, 之后台湾科技大学的陈世明(音) [16]又改进了这一算法。作为软件工程领域权威标准的国家“质量管理和质量保证标准(G B/T 1900~2000) ”第一部分:选择和使用指南, 只在产品安全性中提到了风险因素。第三部分:软件开发、供应和维护中的使用指南中, 只在合同评审部分提到了风险辨识和风险管理问题。
112 国外的研究状况
国外软件项目风险管理的研究始于1989年, 无论在从事研究的人数上还是获得的成果数量上, 美国都居于首位。在美国最具代表性的又属软件工程研究院(SEI ) , 至今由其主办的该专题国际会议已达五次。此外英国和由芬兰、挪威、荷兰、瑞典等国组成的北欧经济圈以及澳大利亚、日本、韩国也有一定的成
第3期 方德英, 等:软件项目风险管理方法的比较与分析83果问世, 而在其他国家和地区只有零碎的相关报道, 与国内情况类似, 尚未形成规模气势。
[3]理论方面, 普遍认为Boehm 的《软件风险管理》奠定了该领域的理论基础, 同期Charette 从不同角
]度也构造出了类似的风险管理结构[17。由美国军方资助, 设立在卡内基・梅隆大学的SEI 则是1990年来研
[18]究和实践软件风险管理的最大基地。他们认为软件风险评估、持续的风险管理和团队风险管理构成了
软件风险管理的基本框架。微软认为[19]风险管理可分为五个步骤:风险辨识、风险分析、风险活动计划、风险跟踪和风险控制, Tallon 等[20]进一步地把风险管理提前到IT 项目投资阶段,Walsh 等[21]认为软件项目风险管理只有方法是不够的, , 论的成果。而文献[22]作为大学教科书, 。
实践方面,Powell 等[23], 并开发了一个完整的辅助风险分析的决策支持系统]量, , 的关系。David [25]K 2SAV ) 技术探讨了从风险陈述文本识别风险源的规范程序[26](Taxonomy 2Based Risk Identification ) 方法, 项目管理研究院(PM I ) ](Risk Assessment Methodology ) 度量软件开发风险。SEI 在其著明的能力成熟度模型(CMM ) 基础上又提出了的软件获取能力成熟度模型(SA 2CMM ) [28], 主要面向大型团队的复杂项目。Reifer [29]阐解了当今广泛的网络信息系统应用所面临的特殊风险。
IEEE 于2001年制订了IEEE1540标准[30], 结合软件生命周期模型给出了风险管理过程规范。事实上的国际标准“集成软件能力成熟度(CMM I ) ”模型在第三级将风险管理列为了关键过程域。2 比较与分析
表1是笔者不完全统计的研究现状。其中按成果内容所列数据含有主观因素, 一是类别的设计带有主观性, 不仅是因为只选取了主要的类别, 还因为目前尚无统一的软件风险管理体系结构, 不同文献采用的名称有时甚至是相互冲突的。二是由于有些成果兼有理论、方法和实践等内容, 本文一般按其主要内容进行归类或同时归入各类; 还有不少成果未见到原文, 对此类成果本文采用如下两种方式归类:根据所引用文章的介绍归类(这有可能使结果受所引内容的影响) 、根据其篇目字面含义归类(这使得主观臆断性更强) 。尽管有上述不足, 但却也不失相对合理性。
表1 国内外软件项目风险管理成果一览表数量
成果
形式论文技术报告
专著
一般理论
基本模型
辨识方法
评估方法
辅助工具
应用研究
其它1989~19931994~19981999~2002合计国内11国内国外[1**********]395国内国外[**************]13国内11国外11386国外[***********][***********]53186234成果内容
表1中的“基本模型”项多指定性的工作内容和工作步骤描述“, 其它项”中含有风险控制、工作手册和比较研究的成果内容。从表1可以看出, 成果密度随时间逐渐增加, 研究地域也波及到了国内, 但国内尚无体系完整的专著。
从成果结构看“:一般理论”占居所有成果的第一位, 一方面说明研究程度的深入, 另一方面也说明了理论基础还能进一步完善“; 辨识方法”的不足则在一定程度上反映了辨识风险问题的结构性还不高“; 评估方法”的重多研究成果显示出了相关学科对此领域的直接贡献, 如数理统计理论、模糊集理论、贝叶斯置信网络理论、软件工作量度量理论、仿真技术和心理学应用等“; 辅助工具”的出现和丰富说明相关方法具有了相当高的形式化程度, 只是辅助工具多用于辅助“评估方法”; 而“应用研究”的稳步提升和从多数实例
84运 筹 与 管 理 2004年第13卷得来的正面评价, 预示着软件风险管理的可喜发展前景。另外“, 一般理论”成果的增幅低于“应用研究”类的增幅, 说明了学科有走向稳定的趋势。
从研究内容看:普遍认为软件风险管理应该针对全部可能的风险因素, 在整个软件开发过程中动态地、连续不断地识别、跟踪风险的变化, 并在考虑成本/收益的基础上有选择采取相应措施, 还要与项目管理集成为一体成为一项常规性的管理活动。但公认的结构体系还没有形成, 针对不同的项目管理方式和开发方式, 有不同的风险管理体系。对合适的定量程度也有不同的看法, 如对风险值的度量, 有完全量化法、二值逻辑法、三级、五级值法等。
从研究方向看:有针对大型项目的, 、、的, 近期也有个别文献关注软件维护过程的, , 维护中的风险更加频繁, 来源也更为广泛, 。
从研究风格看, 。英美特别强调应用规范的建立, 。以芬兰为代表的北欧小经, 并认为关注特定任务的方法会产生误导, , 、开发环境和系统环境入手。而我国大陆和台湾则重视数理方法的应用。
从涉及到的相关学科看, 有软件工程、项目管理、质量管理、风险管理、组织行为学、数理统计学、系统动力学、模糊数学以及决策理论和一般管理理论等等。
总之, 十余年来的软件风险管理研究证明, 在软件开发中超越人类直觉、引入理性的方针、工具, 是经济的、合理的。
3 思考与建议
软件系统本是为了减少现实系统的不确定性而存在的, 但其自身的产生过程却充满了许多的不确定性。单纯信息技术的发展不但没有减弱, 反而还助长了这一现象, 特别随着应用的广泛和深入、随着项目规模的增大, 这种现象愈加突出。Keil [31]通过大量实例说明了许多信息系统失败于不恰当的项目风险管理。IEEE 的研究认为:软件系统中50%~70%的风险可以被检测到,90%的风险可以被避免[32], 风险管理的杠杆作用, 一般的投资回报率是700%到2000%, 风险评估中耗时、耗力的工作可以借助软件包得到减轻。
十几年前在国外兴起的软件风险管理研究没有在国内引起同步的反响, 原因在于当时我国的软件渗透范围还不够广泛。在当前国家信息化政策的促进下, 相信软件密集系统的应用高潮会很快到来。因此, 借鉴国外的经验, 构筑适合于我国文化的软件风险管理体系成为当务之急。特别由于目前我国软件项目的负责人普遍是信息技术专家, 而非项目管理专家, 更缺少复合型人才, 他们在实践中对项目风险的管理多靠直觉和经验, 缺乏主动的、有目的的、系统的风险管理思想指导, 更显出开展软件风险管理研究, 提供具有较强可操作性的项目风险管理体系的紧迫性。
为此, 考虑到我国的文化、人才、技术等环境因素, 结合国外的研究现状, 提出如下建议:
(1) 培育全员风险管理意识, 营造企业风险文化。因为风险带有社会性、主观性, 风险管理涉及到项目建设的开发方、建设方、投资方、使用方和维护方, 各方的有效沟通是降低项目风险的最重要手段之一, 而共有的风险意识是各方沟通的基础。大学中开设软件工程课程和项目前期培训工作负有这方面的责任。
(2) 借鉴国外成果, 共享人类知识财富。软件项目的风险在中外有许多相通的地方, 如果把风险粗分为社会风险和自然风险, 则对于大多数自然风险, 中外面临着相似的对象, 因而理论结论和方法体系可以共享; 但中外面临着不同的社会风险, 如在中国相对突出的廉政风险、管理转变风险等。我们还可以将风险细分为项目风险(成本提高, 时间延长等) 、技术风险(技术不成熟等) 、商业风险(销售问题等) 、战略风险(公司的经营战略发生了变化) 、管理风险(公司管理人员是否成熟等) 、预算风险(预算是否准确等) 等, 进一步区分哪些是共同面临的对象, 哪些是独有的对象, 从而取长补短, 共同发展。
(3) 积累开发经验, 形成风险管理数据库。当前我国软件开发人员过于分散, 开发团队规模过小, 技术管理和组织管理制度远未健全, 所以有限的经验和教训很难得以继承和借鉴。通过各级软件协会不断收集、整理开发数据, 以期形成风险统计数据库、专家知识库等社会财富, 必将成为降低软件项目风险的重要
第3期 方德英, 等:软件项目风险管理方法的比较与分析85保证。
(4) “软”“、硬”结合, 兼收并举。首先要认真履行项目管理规程, 在硬技术进程中引入软管理思想, 特别是项目风险管理思想。其次要在软管理中重视辅助工具的开发和利用, 构建易于操作的模型, 形成有较强针对性的风险管理体系。并通过这些实践培养和造就一批既懂管理又具有软件知识的复合型人才。
综上所述, 软件项目的风险是固有的, 也是可以被认识、被预测的, 被驾驭的。我国的经济发展方向要求我们必须及时重视软件开发的风险管理, 从而提高人才、。参考文献:
[1]Chittister et al. Risk associated with software development :a management [J].IEEE Transactions on Systems , Man , and Cybernetics , 1993,23() 2[2]乌家培. 企业信息化十大要点>,2001, (11) :23.
[3]Boehm , Barry. Society , 1989.
[4]黄梯云. M ].北京:,1999:1202130.
[5]薛华成. [M ].. 北京:清华大学出版社,1999:528.
[6]郑人杰. 软件工程(高级) [M ].北京:清华大学出版社,1999. 3162318.
[7]张海藩. 软件工程导论[M ].北京:清华大学出版社,1987. 982100.
[8]E M Hall. 风险管理———软件系统开发方法[M ].王海鹏等译. 北京:清华大学出版社,2002.
[9]何芳, 张李义. 信息系统开发过程的风险评价[J].武汉水利电力大学学报,1999,32(5) :1102112.
[10]张李义. 信息系统开发的动态风险模糊估测方法[J].系统工程理论与实践,2001,21(10) :88292.
[11]海龟. 软件生命周期模型与风险管理[EB/OL ].http ://www. chinabyte. com/staticpages/software/software-evaluate , 1999:11/30.
[12]余坚, 郑跃斌. 信息系统开发过程风险管理的实施模型[J].计算机工程与应用,2002,11:1102113.
[13]陈启申. MRP II 制造资源计划基础[M ].北京:企业管理出版社,1997. 189:1902220.
[14]施自能. 实施ERP 系统的风险分析[J].IT 经理世界,1999,3(1) :17219.
[15]Lee Huey 2Ming. G eneralization of the group decision making using fuzzy sets theory for evaluating the rate of aggregative risk in software de 2
velopment [J].Information Sciences , 1999,113:3012311.
[16]Chen Shyi 2Ming. Fuzzy group decision making for evaluating the rate of aggregative risk in software development [J].Fuzzy Sets and Sys 2
tems , 2001,118:75288.
[17]Robert Charette N. Software engineering risk analysis and management [M ].Mc Graw 2Hill Software Engineering Series , New Y ork Intertext
Publications ; Mc Graw 2Hill Book , 1989.
[18]Ronald P et al. Software risk management [R].Technical Report CMU/SEI 2962TR 2012, 1996/6.
[19]Microsoft Corp. MSF risk management process[DB/OL ].http ://www. Microsoft. com , 1999/6.
[20]Tallon P P et al. Using Real Options Analysis for Evaluating Uncertain Investments in Information Technology[A ].Insights From The ICIS
2001Debate , Communications of the Association for Information Systems 2002,9:1362167.
[21]Walsh K enneth R , Schneider Helmut. The role of motivation and risk behavior in software development success[J].Information Research ,
7(3) :27236.
[22]Hughes Bob , Cotterell Mike. Software project management (2nd edit. ) [M ].Mc Graw 2Hill , 1999.
[23]Powell P L , K lein J H. Risk management for information systems development [J].Journal of Information Technology , 1996,11(4) :03072
0317.
[24]Jiang James J et al. . Risks to different aspects of system success[J].Information &Management , 1999, (36) :2632272.
[25]Monarch Ira , G luch David P. An experiment in software development risk information analysis[R].Technical Report CMU/SEI 2952TR 2014
ESC 2TR 2952014, 1995, (10) .
[26]Carr et al. . Taxonomy 2based risk identification[R].Technical Report , CMU/SEI 2932TR 26, 1993/6.
[27]Max Wideman R. Project and program risk management :a guide to managing project risks and opportunities[R].Project Management Insti 2
tute , 1992.
[28]G allagher Brian P. Software acquisition risk management key process area (KPA ) 2a guidebook version 1. 02[R ].CMU/SEI 2992HB 2001,
1999/10.
[29]Reifer Donald. Ten deadly risks in Internet and intranet software development [J].IEEE Software March/April 2002:12214.
[30]IEEE. IEEE standard 154022001[S].IEEE Standard for Software Life Cycle Processes 2Risk Management. Inc. New Y ork , N Y. , 2001.
[31]K eil Mark et al. . An investigation of risk perception and risk propensity on the decision to continue a software development project [J].The
Journal of Systems and Software , 2000, (53) :1452157.
[32]Lister Tim. Interview with Tim Lister[J].IEEE Software , 1997,324.