软件项目失控的案例东华大学周力什么是软件失控项目•软件失控项目就是由于在创建系统所需软件时遇到困难,从而导致大大超出可控制范围的项目。•KPMG的定义是:软件失控项目是显著未能实现目标和超出原定预算30%的项目[KPMG1995]。“软件危机”(softwarecrisis)•软件总是超出预算、落后于进度表,而且不可靠。•根据GAO(GovernmentAccountingOffice,美国政府审计局)的研究、最著名的统计数字是有98%以上的项目都失败了(“只有不到2%的合同订购软件在发布时具有可用件”)。“软件危机”的观点对吗?•看看四周,我们看到的是一个计算机软件不可或缺的世界。计算机和软件处理我的机票预订,控制我的银行事务,把人类送到太空——其可靠性毋庸置疑。为什么有那么多的人在叫喊着软件危机呢?•因为这样做有利可图。某些经销商叫喊危机是为了卖出他们声称能够提供对策的产品或者服务;某些研究者叫喊危机是为了获得他们所称同样(最终)将提供对策的研究项目的经费;某些学术界人士叫喊危机是为广促使人们接受并阅读他们提出对策的专业论文。•对危机的叫喊,某种程度上表现了“恶人先告状”的心理;软件项目门未能达到费用和进度表的目标,经常是因为这些目标本身就是错误的;这样软件从业人员辛辛苦苦地工作,其实是去实现不现实的目标,尽管实现目标希望渺茫,还是要反复耗费大量时间去迎合目标,最终由于从项目开始便无法控制的问题而受到谴责;•对软件估算做出的实际调研表明,最为常见的是由营销人员或者客户来制定费用目标和进度表,其次是由管理人员制定,很少有实际完成项目的技术人员涉足其中:由于无法掌握自己的命运,在出现问题时这些实践者们总是受到指责。•计算机领域的研究通常都专注于理论而不注重于实践。也就是说,计算机研究人员对于开发新算法、新数据表达或者新的体系方法很感兴趣,但是他们很少对可以从最佳实践中形成的经验或者从最差实践中获取的教训感兴趣。•这是计算机研究领域的很重要的失败。大家都知道在其他领域中有时候是实践指导(比理论更高级)理论的,而计算机理论家们并没有很好地利用这一点。•所以[KPMG1995]报告的作者有得天独厚的机会展示时隔六年之久的观察结果:•可预测的发现是:(1)许多失控的项目都是(或曾是)“野心过大”的项目。在业内大家都知道大型项目更客易出问题。(2)很多项目失败的原因是多方面的。可能有主要原因,也可能没有,但是多数失控的项目都出现了问题。(3)管理问题比技术性问题更多地成为主要原因。但是请看(4)中令人吃惊的发现。(4)进度超时(89%)比成本超额(62%)更普遍。•意外的发现是:(1)被调查者认为在政府和金融部门中应该有更多的失控项目,而服务业和制造业中较少。但是调查结果显示,所有的部门都同样难逃其患:(2)被调查者对于失控的趋势很乐观,42%的人认为失控项目的数量将会降低,只有8%的人认为数量会增长。(3)使用打包软件对于减少失控项目的发生没有什么帮助。在研究的失控项目中,47%是由混合的定制软件项目和打包软件项目组成,24%是定制软件项目,而22%是打包软件项目。(4)失控项目在项目生命期的早期就显示了它们的真实面目。超过50%的项目在系统开发过程中显示出问题症状,而25%的项目在初始的计划阶段就显示出了问题的症状。(5)除了上面提到的,首先意识到项目失控的是项目团队(72%)只有19%的项目失控是由高级管理层首先意识到的。(6)技术越来越成为项目失控的原因.颇具戏剧性。“企业采用新技术“是项目失控的第四个最普遍的原因。请参见下面有关趋势的讨论。(7)风险管理在软件管理文献中出现得越来越频繁:但是55%的失控项目没有实行过任何风险管理.而在38%实行了风险管理(有些被调查者不知道是否实行了风险管理)的项目中,有50%的项目在启动之后没有使用风险发现(riskfinding)。•对趋势的发现是:•企业在1995年比在1989年讨论失控项目时更为勉强。新的研究中的被调查者只有前一次的50%,虽然调查人数(大约250个主要组织)大致相同。•技术越来越成为项目失控的原因,且势头发展迅猛。在1989年只有7%的企业将其作为原因进行报告,而在1995年这个数字是45%(有意思的是,只有16%的被调查者认为技术不适合该项目),[KPMG1995的结论是“技术的发展比开发者的技巧进展得更快。]•但是从我们研究的项目中可以明显看出:第一,新技术同样经常成为问题的起因;第二,项目失败的原因常常是使用的技术不成熟或者不合适。•我们的结论是:常常是技术本身(尤其是它们缺少可扩展性或者缺少扩展这些技术的追踪记录)导致了项目失控.而不是技术人员导致项目失控。•(1)在项目初期,那些负责这些失控项目的人总是吹嘘该项目的“突破”性质,从其商业实质作用或从技术优势来看均是如此—他们好像根本没有意识到做出这样的声明是多么危险。•很多失控的项目“是从误导开始的”。•技术问题中,性能经常是失败的原因•大量的失控项目都是应用领域的。项目失控的原因:•没有指定完整的项目目标——51%•计划和估算很差——48%•企业采用了新技术——45%•项目完全缺少有条理的管理方法或管理方法不恰当——42%•团队中高级员工不足——42%•供应商的硬件或软件的性能不足——42%•其他——性能(效率)问题2.1没有指定完整的项目目标•需求问题发生在以下情形。•(1)需求过多:大型项目比小型项目是容易失败•(2)需求不稳定:用户无法决定他们真正想要解决的问题。•(3)需求模棱两可:不可能确定需求的真实含义•(4)需求不完整:没有足够的信息来创建系统。案例:丹佛国际机场•世界上任何地方的机场都不如丹佛国际机场的技术先进。——弗某特•艾沙克美国联邦航空局(FAA)•这件事很有戏剧性:如果把您的提包放到传送带上会四分五裂。——弗莱特•伦雄尔美国联合航空公司DenverInternationalAirport:DIA•1989年,DIA丹佛国际机场)破土动工,它距美国科罗拉多州的丹佛市区25英里(1英里:16093千米)。•1992年,工程进行两年后,该项目的高级管理者们建议建造一个全机场范围内的集成行李处理系统,它可以极大地改善行李传送的效率。开始定的合同是由联合航空公司负责运营该系统。将会扩展到为整个机场提供服务。人们预计该集成系统将会改善地面行李传送的效率,减少集中操作的时间并丛减少费时的手工行李分类相处理。狂热下存在着一些固有的危险:•大型项目的规模;•扩展系统的复杂性;•技术的新颖性;•同一系统要为数量众多的航空公司提供服务;•技术和项目定义的高度不确定性以及紧迫的时间要求。•由于BAE自动化系统公司(BAEAutomatedSystemslnc.)(一家总部位于得克萨斯州卡罗尔顿市的工程咨询和制造公向)具有在小一些的规模上部署行李处理系统的经验、所以赢得了合同。•施工问题使得新机场无法按照原定的1993年10月启用;随后,部署行李处理系统的问题使得机场的使用推迟了3次,总计达7个月。•1994年5月,在股东、商业团体、丹佛居民、FAA(FederalAviationAdministration,联邦航空管理局)的委员、承租航线以及特许权获得者的压力下,丹佛市长惠灵顿·韦伯宣布聘请德国的洛根普兰(Logplan)公司来评估该项目。洛根普兰对该系统的评价是“十分先进”。并在理论上”可以达到所承诺的容量、服务和性能,但是认为由于存在的机械和电子问题使得该系统“不可能实现稳定而可靠的运营”。•还建议在5个月内建造一个出拖车、手掀车以及传送带组成的后备系统。1994年8月,韦伯市长批准建造一个后备行李系统。同时,他通知BAE公司:由于没有能够按照丹佛国际机场原定完工日期(1993年10月29日)完成该系统,对其后的延误将处以每天1200美元的罚款。韦伯还要求BAE为常规的拖车—手推车行李系统支付5000万美元。BAE公司的总裁基那·德·佛萨知道,他的公司足以证明机场总体设计存在缺陷,对项目所做的杂乱无章的改变严重影响了集成行李系统的部署、他不知道是应该取消合同减少损失呢,还是应该不顾难以沟通和日益高涨的敌意,设法与丹佛市协商以获取根据计划完成该项目所需的支持。•政治情况:丹佛市1983年的市长选举促成了改善航空基础设施的提议。有三个候选人参与了竞争;丹佛市和临近的亚当斯县在1984年开始制定远期机场发展的计划。1985年,选定了丹佛东南方的新址。但是机场选址问题最终要由亚当斯县的选民们来决定,需要通过投票才能允许。主要归功于经济利益,即可以增加工作机会和销售税收入。•经济考虑:黯淡的经济形势促使丹佛各区政府和市政府的官员们实施前所未有的大型公共建设的政策,以挽救该地区的经济下滑趋势。总体规划•机场最终定出带中央大厅的东西两座建筑、二个广场、一个自动化的地下扶梯、五条平行的12000英尺(1英尺=0.3048米)长的跑道(每天可以起降1750架飞机)组成。流畅的起落航线使得飞机着陆、跑道滑行、重新起飞可以在一个方向完成。•预计到2020年.工程将最终包括12条提供全面服务的跑道、200多条登机通道。从而具有每年运送1.1亿旅客的能力。预计费用(除去土地征用费和1990年之前的计划费用)是20亿美元:到1991年底之前.预计费用增加到了26.6亿美元。计划要求该项目在1993年秋天之前完成。•1989午9月,联邦官员为新机场签署了6000万美元的协议,同意以多种方式募集资金——发行收益债券和政府担保债券。•预计最初新机场的政府拨款总共为5.01亿美元。其中部分由FAA提供、1990年财政年度提供9000万美元、1991年财政年度提供2500万美元。5.01亿美元的其余部分将陆续从每个财政年度获得,直至1997年为止。收益债券假设“受益占用日期”(DateofBeneficialoccoupancy、DBD)为1994年1月1日,到时开始偿还债券;在当时,市政当局断定丹佛国际机场将在1993年10月31日之前满足受益占用日期的需求。边建设边设计的项目•这是一个边建设、边设计的项目。•有太多的压力和参与者,这是一个由委员会建设的机场。•丹佛市在没有获得斯塔普列顿机场两个主要承租航空公岗持别承诺的情况下开始了丹佛国际机场项目,这两个主要承租航电公司是联合航空公司和大陆航空公司,它们总共占据了现行客运量的70%以上。大陆航空公司在1990年2月承认了新机场,而联合航空公司在1991年12月也承认了新机场。政府对机场布局计划和辅助设施(有些已经开始建设了)做了变动以适应这些运营商的运营需求。政治考虑•韦伯政府继续了上届政府确保项目的最大受益者为本地商家的着重点,目的是尽可能使私有公司加入进来并允分使用丹佛本地人才,从理论上讲,本地人才容易进入规划管理小组,他们了解丹佛市的建筑法规和惯例,并有可以根据计划要求提供专业的劳动力资源来完成设计。•在设计丹佛国际机场的60个合同中至少有5个授予了丹佛本地企业。这60个设计合同产生了110个建筑合同,还产生了88个专业服务合同。这就不得不聘请很多本地企业,并且项目都被分割成很多更小的项目:200到300家公司参与其中,在工程建设阶段达到了400家。5家不同的公司设计跑道,4个不同的公司设计终端系统。丹佛市重点在于鼓励所有人参与竞争,但是这也为项目增加了合作与协调的潜在问题。项目分配•丹佛市萧条的经济使得政府将建设机会都留给了本市。显然这使本市获益了,但是为政府增加了额外负担。多达40到50个合作合同涉及到很多相关的重大事项以及相邻或者重合的运作区域。•项目在最终批准之前的评估和协商阶段拖延的时间,以及选择财政计划(要求在1994年1月1日开始偿还债券)拖延的时间,迫使规划管理小组不惜一切代价赶进度,由于在建设开始时项目不得不采取设计未完成便并始施工;紧迫的设计时间使建设工作陷入了不断增加的状态,而不是预期的“竞标,固定价格”方案。联合航空公司的行李处理系统•从公众的角度看来,任何机场的“友好程度”都是用时间来衡量的。不管新机场的结构在建筑上有多刺激性,商业旅行