
1.3.1 软件和质量对构建自用内部软件的企业的经济价值
内部构建企业或政府的运营软件是计算机在商业环境中的首次应用。这是因为在20世纪50年代末和60年代初,由于缺乏其他软件来源,企业和政府没有其他的选择。
20世纪60年代计算机首次开始广泛用于商业目的,只有少量的COTS(商用现成品)公司,根本没有ERP(企业资源规划)公司。外包业务还处于婴儿期,而离岸外包在20年之后才出现。计算机的最初使用是为了以更快的计算机应用程序取代劳动密集型的纸质作业。例如,保险理赔、会计、计费、税务和库存管理都是早期企业运营计算机化的例子。
这些商业应用软件都是由需要它们的公司和政府组织自己构建的。这带来了一种新的有趣的经济现象,大公司累积了大量软件人员来构建定制软件,即使软件和它们主要的经营业务毫无关系。
到20世纪90年代,许多银行、保险公司和制造公司中从事内部定制软件开发、维护和支持的雇员占总数的比例高达10%。
同样的现象发生在美国联邦政府、所有50个州政府,以及大约125个最大的市政府。
2011年,美国最大的1000家公司雇用了超过1000000名软件工程师和其他软件工作人员。其中有些公司富有经验,能很好地构建软件,但是更多的公司没有什么经验,并且存在成本超支、进度延误和关键软件项目彻底取消等重大问题。
同样的状况也存在于政府软件开发中。有些机构能够很好地构建软件,但是更多的机构没有这个能力,并且经历了项目取消、超支以及部署后质量低劣的问题。
自己构建定制软件的组织有Aetna、美国全民公司、宝洁、福特、通用汽车、埃克森石油、联邦政府、加州政府、纽约市,以及很多其他组织。
大多数内部软件开发组作为成本中心运作,并没有期望能够盈利。然而,他们可能向使用其服务的其他运营机构收费。有些软件组是由公司作为管理职能而提供资金的,这种情况下其工作是免费的。极少数作为利润中心运作,并且向其他公司以及内部业务部门出售服务。
从大约1965年到1985年,这些内部开发组构建应用程序有两个主要目的:
1)通过使劳动密集型手工活动自动化来降低运营成本;
2)让公司能向客户提供新的以及改进的服务。
到20世纪末,并持续到2011年,工作模式改变了。2011年大约75%的“新”应用程序用于替换15年前构造的老化的遗留应用程序。这些老化的遗留应用程序需要如此繁重的工作才能继续运行并跟上时代,以至于目前有50%的内部软件职员的工作是修改现有的软件。
当然软件工作人员每天工作中相当比例的时间花费在查找及修复bug上。
从20世纪90年代早期开始,外包厂商、COTS厂商和开源厂商已经出现。结果是,内部软件组的角色开始演化。由于2008年至2010年的经济衰退,很多内部软件组纷纷精简,也有很多先后转移到外包公司。
截至2011年,只有大约20%的内部软件组的工作涉及创新和新的软件形式。创新软件的新形式集中在Web应用、云计算和商业智能。然而,许多软件项目仍然由内部软件组来构建,即使大多数这类“新”项目只是替代或者整合老化的遗留应用程序。
对于内部软件项目,软件质量的经济价值集中在这几方面:
●大型应用程序的取消率降低了;
●新应用程序的发布日期提前了;
●运营部门接受新软件的阻力降低了;
●用户掌握新软件速度更快了;
●为客户提供的服务和产品更多更好了;
●新应用程序的开发成本降低了;
●已发布应用程序的维护成本降低了;
●已发布应用程序的客户支持成本降低了;
●管理人员对IT部门的不满意度降低了。
低质量内部开发的经济后果包括:
●新应用程序的发布长期拖延;
●新应用程序的主要成本超支;
●大型的新应用程序彻底取消的概率很高;
●低质量导致的对企业运营的损害;
●低质量导致的对消费者记录的损害;
●管理人员对IT部门表现不佳的愤怒;
●使用外包替代内部开发的几率很高;
●低质量导致新应用程序的学习曲线很长;
●糟糕的客户满意度;
●低质量导致高昂的维护成本;
●低质量导致高昂的客户支持成本。
和嵌入式软件团体、系统软件团体、防御软件团体甚至商业软件团体相比,内部软件开发团体在软件质量方面做得并不好。很多公司转向外包厂商的原因之一就是内部软件质量不好。
内部软件团体在软件质量控制方面的差距,可以从糟糕的质量度量、没有使用有效地缺陷预防方法、没有使用测试前的审查和静态分析工具,以及软件质量保证(SQA)团队没有足够的人员中看出来。一般而言,内部软件团体仅仅测试软件应用程序,而不进行其他必要的质量活动。
糟糕的质量控制常常会加深管理人员对IT团体的不满,降低用户满意度,并且提高企业转向外包厂商的几率。