软件开发公司如何应对软件危机
2019年11月1日
 软件开发公司
      术语“软件危机”是指软件开发的现有方法中强调需要如何应对变化的一系列问题。该术语起源于20世纪60年代,大概是1968年在北大西洋公约组织(nato)的软件会议的一篇文章software engineering 中提出来的。在这次会议上,作为软件开发的主要关注点,与会者提出了一系列软件问题,包括:●不可靠●交付延迟●修改成本过高●不可维护●执行水平不足●超出预算成本顺便说一句,这一系列问题在当今软件开发行业的很多地方仍然存在。上述问题出现的概率,在很多组织中已经大大减少了,但当我们审视这个列表中的单个问题时,我们仍能观察到一个常见的线索——缺乏现实可行的进度(交付延迟)。那次会议上到处弥漫着的一个观念是,我们可以解决这些问题。由此,有人杜撰出了“软件工程”这个术语。软件工程必须是解决这些问题的潜在方案,但我们不得不看看在这个词杜撰出来之后发生了什么。本次会议的一个重要会议成果是软件工程大学课程。然而,制作出来的这个课程恰好与当时的计算机科学课程一模一样。将学科名称从“计算机科学”更改为“软件工程”所取得的进步微乎其微。危机是个色彩很强烈的词。它暗含需要一个解决方案的某种形势。代表那种危机的状况将会发生改变,要么转向有利的方面,或者转向某种潜在灾难。根据《韦氏词典》的定义,危机是“一个关键性的或决定性的时刻或局面”。心脏病发作就是一个危机,我们要么活下来,要么死去。到目前为止,那个危机应当以一种或多种方式被解决了。回顾过去,术语危急 (exigence)比危机更适合那种情形,因为没有变好或变坏的明显可辨别的时刻。皮疹就是件急迫的事情。稍微深入研究一下上面的问题列表,我们会发现,能够感觉到的这些软件开发问题的解决方案就是技术。根据图1-1中来自2013年度standish chaos报告 (standish chaos manifesto)的结果可知,技术并不是项目成功的全部解决方案。