软件项目管理最新研究综述_姜茸
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2011年10月第9卷第10期
项目管理技术
PROJECT MANAGEMENT TECHNOLOGY
Vol.9No.10
Oct.2011
软件项目管理最新研究综述
*
姜茸
(云南财经大学信息学院,云南
昆明650221)
摘要:大量实践证明,管理在软件项目中极为重要,软件项目失败往往是管理问题,而非技术问题。软件项目管理已获得业界广泛关注,但是,因为管理理论缺乏或管理不善导致软件项目失败的事件仍频频出现。分析总结软件项目管理的特点,系统地综述软件项目管理国内外最新研究现状,指出目前研究的不足及国内研究与国外研究的差距。关键词:软件;项目管理;综述
*基金项目:云南省应用基础研究面上项目(2010ZC100),云南省教育厅科学研究基金项目(09C0127),云南财经大学科学研究项目(YC10B005)。
0引言
软件作为信息产业的灵魂,使得世界发生了
翻天覆地的变化。然而,遗憾的是,在软件业界,软件项目失败的例子比比皆是。NIST 报告显示,美国大型专用软件开发项目的失败率近70%。Standish Group International 收集全世界IT 项目信息,其CHAOS 报告显示,软件项目成功率2008年为32%,约52.7%的项目花费是原计划的189%。在中国,一些调查表明,大约90%以上的软件项目超出了估算时间,同时软件项目开发费用超出预算;国内企业ERP 用户中,成功实施率不足30%,而CRM 用户的成功实施率更是不足20%。
为什么软件项目成功率如此之低?研究表明
[1-3]
,其主要原因是项目管理方法缺乏和不恰
当,而非开发技术方面的问题,著名学者UML 创始人之一Grady Booch 也持同样观点。据统计,70%以上的软件项目失败是因为项目管理不善造成的。因此,研究软件项目管理具有十分重要的意义。
1软件项目管理的特点
软件项目的特点决定了软件项目管理和其他
工程项目管理有诸多不同之处。软件项目具有以下几个显著特点:
(1)可见性差。软件作为知识密集型的纯脑力劳动成果,是一种无形的逻辑产品,没有物理属性。因此,软件项目过程的可见性比任何其他产品生产过程都差。
(2)高风险。由于软件是一种纯知识产品,其无形、抽象、复杂和受人为因素影响较大,开发过程中不确定性因素较多等特性,使得软件项目属于高风险项目,因此,风险管理是软件项目管理的重要内容。
(3)对人的依赖性很大。软件开发项目完全取决于人的智慧,不需要物理耗材,人员是开发软件的唯一生产资料,因此,人员管理是软件项目管理的核心组成部分。
(4)高复杂性。软件具有很高的复杂性,有人甚至认为,软件是人类有史以来生产复杂度最高的工业产品。因此,软件项目管理的复杂性很高,对复杂性的认识、理解、度量和控制是软件项目管理的重要组成部分。
(5)需求模糊而且不确定性很大。由于软件抽象、无形、不可见,使得软件需求方在软件项目初期无法描述清楚其需求,而且随着项目进展,用户的需求更改非常频繁。软件项目的需求变更问题比任何其他项目都严重,用户需求在软
36项目管理技术2011年第9卷第10期
件项目进程中经常发生变化。
软件项目管理是软件工程和项目管理的交叉学科,由于软件是一种不需耗材的纯人类智慧产物,具有抽象性、高复杂性等特性,使得软件项目管理比一般工程项目管理难度更大,而且软件项目失败率也相对较高。
2软件项目管理国外最新研究现状
Ioannis Stamelos[2]研究软件项目管理中的陋习,即反模式,他调查了目前已经报导的多数反模式,强调软件项目管理反模式形式化表示工具的必要性,并建议用贝叶斯信念网、本体和社会网络等形式化工具,认为反模式对软件项目管理者是一个优秀的教育学习工具。Gorla Narasimhaiah 和Lin Shang-Che[1]通过对112个项目经理的调查,收集了项目管理者所理解的软件质量属性和决定因素等数据,发现对于信息系统项目的软件质量,软件项目组织因素比技术因素更为重要。Charlie C.Chen等[4]通过对151个信息系统项目经理的调查,发现信息系统开发过程和项目管理中用户责任和用户影响对项目管理效果十分重要,并建议软件组织和项目经理通过用户参与和用户影响提升过程性能,从而促进项目的成功。Favaro John[5]介绍了软件项目管理知识体系在整个生命周期中正被逐渐更新,并分概念阶段、构造阶段、结束阶段3个阶段予以介绍。Mohapatra Sanjay[6]总结了大量软件开发项目管理经验,研究通过量化软件项目管理改进软件过程,从而提升软件质量。V hniitty Jarno等[7]研究软件项目组合管理,通过对6家人数在15到40之间的从事软件开发的小型组织机构进行研究,结果表明软件项目组合管理对于小型组织机构是必要的(虽然项目组合管理概念源于大型组织机构),至少在开发人员扮演多个角色和责任,同时从事许多不同类型的活动时是很必要的。Goldstein Zvi 等[8]提出了一个软件开发项目的妥协管理策略,从而使项目在规定时间和预算内获得了一个比采用专门开发方法更好的效果。
Reich Blaize Horner等[9]讨论了跨国软件项目中,国外IT项目经理的角色和应具备的技能。Choi Namjoo等[10]研究新开源软件项目的第一印象管理。可变性管理是软件产品线工程的基本活动,但这是一个复杂的挑战性任务,它需要有效的方法、技术和工具支持,Babar Muhammad Ali 等[11]系统地分析总结了可变性管理方面近20年的研究成果。Orowski Cezary等[12]研究用Agent 系统支持软件项目管理过程,鉴于技术与项目管理之间有效协调存在许多问题,他们构建了一个Agent系统,该系统帮助项目经理为项目管理选择合适的方法和技术,他们还指出客户对软件项目知识的掌握情况对项目取得成功是很重要的。Vahid Garousi等[13]提出了一个软件开发项目问题管理可视评估的可扩展框架,并开发了该框架的实现工具软件IssuePlayer,它可有效地帮助项目经理和开发团队领导人监督、管理和预测软件项目管理的一些问题。Mahaney Robert C.等[14]运用代理理论调查了428个信息系统项目经理,重点研究项目管理监督与卸责问题,其成果为项目管理研究学者带来了一些启示。Lee Seiyoung等[15]研究全球化环境中软件项目管理的敏捷方法,鉴于敏捷方法在分布式团队和软件项目全球化环境中研究报导不多的现状,他们提出了一个用分布式敏捷方法的软件全球化项目管理框架,并报导该方法的成功实践。
Petter Stacie等[16]研究软件项目管理人员的经验重用,基于知识管理文献,提出了一个经验交流模型,并构建了模型关键部分的实例———经验交流库,以此来促进经验重用。Tiemens Sebastiaan等[17]研究管理测试,设计了一个软件测试中服务提供者项目风险的处理工具。Bardhan Indranil R.等[18]研究IT项目投资组合优化,提出了一个软件开发投资组合风险管理方法。Karel de Bakke等[19]对风险管理与IT项目成功做了实证研究分析,得出风险管理过程中关键因素是风险利益相关者对风险和成功的理解及其行为的结论。Vlaanderen Kevin等[20]将敏捷方法SCRUM原理应用于软件产品管理,它使产品经理能够应付敏捷开发环境中的复杂需求,并通过实际案例阐明该方法的实施。