大型软件项目失败的原因

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

大型软件项目失败的原因

——12个与管理有关的问题

黄锡滋 陈光宇

美国软件工程研究所(SET)W.S. Humphrey 此前发表文章,分析了与大型软件项目失败有关的12个涉及管理的问题。W.S. Humphrey 是资深软件工程专家,是IBM原技术开发副总裁,曾经在IBM公司领导软件开发27年,负责IBM全部商业软件开发工作。到SEI工作后,领导了CMM 和CMMI模型研发。凭借其丰富的软件开发、管理经验,该文的分析结果,对从事软件开发和管理的人士,具有重要参考价值。

本文下面的内容,是W.S. Humphrey 文章的重点摘要。

一、背景

* 软件项目失败经常发生,大型软件项目最容易失败 。

* 在CMM 和CMMI 模型未发明前,主要问题是缺乏计划。

* 1994年到2000年间,由于软件开发管理改进,开发项目成功率有所提高。

* 图 1 展示了项目成功率变化过程。其中成功项目是指完全实现预期功能,项目费用和进度,在预期值的10%的范围;挑战项目是指严重延误,大量超支或功能降低的项目;失败项目是指完全无法交付使用的项目。

图1 大型软件项目成功率变化图

* 图2显示的是不同规模软件项目成功率数据,软件规模用投资费用表示。从图2可见,近60%的小型项目获得成功,而特大型项目极少成功。

图2 不同规模软件项目成功率

二问题分析

问题1 是否所有的大型软件项目都无法管理?

* 只有个别极具挑战性和风险的大型项目,获得成功,其中一例

是美国空军‘指挥中心处理和显示系统置换项目(CCPDSR-R)’,该项目在开发峰值期有100人参加。第二例是IBM OS/360 操作系统,其开发队伍超过3000人,历时30个月,先后发布了19个版本。

* 除个别案例外,大型软件项目成功率非常低,成为项目管理的巨大挑战。

问题2 为什么大型软件项目难于管理?

* 历史上最早的大型管理系统是军队管理,以独裁式管理为特征。现代的工厂管理方式,仍然是独裁式。

* 独裁式、等级式管理方法,不适应大型软件项目管理的需要。

问题3 为什么独裁式管理对软件项目无效?

* 管理传统的硬件生产和管理软件开发的主要差别,在于管理的可视性。

问题4 为什么可视性成为软件管理的问题?

* 软件项目管理者不能准确掌握项目现状。

* 对于软件开发中不断出现和需要处理的各种细微问题,管理人员无法及时掌握,导致问题积累发展为巨大而明显的问题。

问题5 管理者为什么不能向开发者询问?

* 开发者只知道他们正在做的工作,他们没有个人计划,无法度量和跟踪工作进展。

* 除非开发者计划和跟踪个人的工作,则其工作进展不可预计。如果开发者个人的工作不可预计,则开发团队的工作进度和费用也不可预计。

* 总之,如果开发者不能计划和跟踪他们的工作,则整个软件项目不能控制和管理。

问题6 为什么计划的项目会失败?

* 现在大多数采用CMM和CMMI 模型的软件项目,已经有计划安排,并采用项目评估和评审技术(PERT),为什么仍然会失败?

* 问题在于大多数软件项目计划是不准确的、不严密的和错误的。

问题7 为什么不坚持制定详细计划?

* 传统管理劳动者的方法,对于管理高技术工作,特别是管理软件开发是无效的。

问题8 为什么不告诉和要求开发者计划他们的工作?

* 多数开发者只愿写程序,不愿订计划,他们认为订计划是管理者的工作。

* 开发者不知道怎样订计划。

* 要求开发者制定完备的、详细的计划,意味着开发者有权定义自己的过程、方法和日程,但是很少有管理者愿意放弃这种传统意义上属于自己的权利。

问题9 怎样才能使开发者制定一个好的计划?

* 必须处理好两个问题,第一是怎样才能使开发者和开发团队制定和忠实执行计划;第二是怎样使管理者信任开发者能够计划和管理好他们的工作。

* 为了使开发者制定好和执行好计划,必须使开发者具有相应的

技能,必须进行培训。

问题10 怎样使管理者信任开发者制定和管理他们的计划?

* 这是全部问题中最具风险之处:管理者能否相信开发者能够制定和管理他们的计划并实现管理者的预期目标?

* 根本问题在于独裁式管理和信任式管理的区别。

问题11 改变管理方式会带来什么风险?

* 权衡管理方式改变的风险和不改变的风险,是对管理者的严重挑战。

* 方式改变的风险来自两方面:第一是必须花费时间和费用培训开发者制定计划,跟踪工作进展,必须培训管理者使用新的管理系统和方法;第二是使用这种管理方法于实际项目中的风险。

* 鉴于几乎所有的大型软件项目,按照传统的管理方法,都是失败的,所以最大的风险是不求改变。

问题12 在改变管理方式方面,迄今有哪些经验?

* 按照SEI 的团队软件过程(TSP),如果能够为开发人员提供正确、必要的培训和支持,如果能够遵循TSP中规定的策略,开发团队将积极的、正确的完成他们的工作;开发团队的个人实践得到规定、测量和管理;开发团队的职能得到规定、测量和管理;项目现状和进度,每周有准确报告提供。尽管这些并不一定能确保项目成功,这种方法已经在数十个大型软件项目中实施。

* 这种方法已经在具有100个左右成员的开发团队的应用中,并证明有效。

* 这种方法具有推广到更大规模软件项目的可能,但是现在还没有在超过100名专业人员的项目中实施的经验。

参考文献:

[1] Watts S. Humphrey, Why Big Software Projects Fail: The 12 Key Questions, CrossTalk March 2005

相关文档
最新文档