(上篇一)一个从来被人忽视的软件容易失败及发展缓慢的原因

来源:互联网 发布:北京网络综合布线 编辑:程序博客网 时间:2024/04/28 20:19
 
前言
软件的发展缓慢和容易失败一直困扰着广大软件从业者,但长期以来人们更多地是从技术、过程、产品、人等等角度去探究其原因。而本文试图从哲学的层面去探究。有趣的是软件与哲学有共通之处。哲学是集多学科之首,人称为智慧学的学科,是一种形而上的对事物的抽象而具有普遍指导意义的科学。它看到的是整片森林,而软件则是集人类活动经验之精华,具有极强操作性的智能化工具。它的对象是树木甚至枝叶。作为森林和树木的关系,软件的出现是人类文明进步的重要标志,自然和人类的社会、政治、经济、文化等方面的发展有着密不可分的关系。如果我们把哲学的思辨方法和软件的成功与失败经验联系起来研究,我们会发现软件发展的一个巨大的潜在力和更大的空间。
本文上篇将政治经济学,管理学,文化等视角来揭示软件失败的原因。而本文的下篇则从经济学的角度  对软件的业态,开发模式,市场模式,赢利模式等全方位去揭示软件成功的方向。希望抛砖引玉,和博友们分享。并请专家提出宝贵的意见。
E-mail:baoxx@zjunitech.com
 
最近倪光南院士指出:在IT领域,硬件的发展遵循“摩尔定律”按指数规律增长,即1.5年集成电路的集成度翻一番,这种超常规的发展速度在很大程度上要归功于自动设计技术(EDA)的发展。很可惜,软件的发展速度比硬件慢得多,比如从Windows 3.1发展到Windows 2000,在9年的时间里源代码行数只增长9倍左右,软件似乎只能以很慢的速度线性增长……
无独有偶,最近我又从SAP的一本软件培训教材中看到这样一段话“平均说来正在开发中的IT系统,有一半以上通常会中途取消,剩下的一半中只有约三分之二最后完成。完成的系统中大约只有一半会进行实施,而其中又有四分之一会在实施过程中被取消。剩下的已完成的系统中,有一半不能满足管理层的功能需求,由此而被废弃不用。只有剩下的系统会在进行大规模改动之后投入使用,而由此又带来永无止境的延迟和成本开销”。
这是一段软件开发者的真实告白与写照。数十年来,软件作为一个新兴产业从无到有,从小到大,蓬勃发展到现在,无论国外还是国内,这个伤痛一直困扰着软件从业者,至今挥之不去。是什么原因呢?我们从成千上万的原因中归纳成不外乎三种:一是商务的原因,如合作诚意,价格竞争,资金到位等;二是需求方的原因;如管理层的重视,执行层的配合等; 三是开发方的原因,如需求分析,技术手段,项目管理等。这些都是从模式,过程和结果的角度去展开,因为我们大家到目前为止还只把软件作为一个普通产品来看待。没有从高度上去认识软件作为和其他产品的不同之处——即软件只是思想的载体而已。归根到底需求和开发的矛盾实际上就是思想和技术的矛盾。矛盾的主要表现形式就是:思想和技术的信息不对称。
现在也有很多人意识到这个问题,于是采取了各种方法去弥补这种信息不对称,开发方力争在软件立项之时努力做到最详细的需求获取和分析。实施过程中采取多种先进开发理念和先进的项目管理模式。并试图通过使用特定的方法论或先进的开发工具来提高双方交流的效率,如原型法,迭代法,敏捷法,构件化,SOA等等,以解决思想和技术之间的信息不对称。可是以技术为主导的先进的方法论或工具论似乎在解决问题方面并没有奏效,软件从业者还在周而复始的重复着失败的经历。因为技术的优劣并不是造成思想和技术信息不对称的主要原因。那么的真实原因究竟在哪里?(待续)