经常有一种说法:企业应用开发的工程化程度太低,这个行业还处在手工作坊的阶段,需要向着工程化、工业化大生产的方向去发展。据说同样在软件的世界里,通信应用的工程化程度就比企业应用要来得高。然则这是事实么?
JavaEye的TrustNo1和Elminster两个家伙都是干通信的。据他们的总结,这通信应用很大程度上就是一遍又一遍地实现协议。因为干得手熟,人家一天干完的活,他们一小时就差不多。所以T1有这么多时间抓着我聊天。而企业应用,照我看来,早已超过了这个阶段。编码、设计、架构,凡是能够自动化的几乎都已经自动化了,重复代码、重复工作已经被缩减到了相当低的程度。有如此之高的自动化程度,却说它比较不像工业生产,岂不是奇怪么?
之所以企业应用看起来比较像手工作坊,之所以XP之类的方法看起来要让它更像手工作坊,恰恰是因为这里的自动化、工程化水平已经非常高。比起人们爱用的“建筑学”隐喻,企业应用的自动化、工程化水平不是不足,而是高得太多太多,以至于再注重工程方面的东西所能获得的边际效用已经极低。实际上在建筑领域,随着自动化程度的大幅度提升,同样的事情也正在发生着。这是工程化必然的逆转,而软件则是走在了建筑的前面。很多人有意无意地说“程序员就是搬砖的建筑工人”,然则那种不需要动脑子的搬砖的建筑工人,在欧美的绝大多数建筑工地上已经不存在了,他们仅仅存在于中国这种发展中国家和人们的想象中而已。另一方面,企业应用的工程化、自动化程度如此之高,其实是一件颇具特殊性的事情。几乎每个行业的从业者都会在某种程度上隐藏自己的经验心得,因为这就是竞争力。这种自然而然的藏私行为必然会对工程化、自动化有某种阻碍,譬如像T1这种家伙,他显然是故意不愿意自动化。在媒体里也是一样,我有很多经验心得也——有意或无意地——不愿写出来。偏偏是在企业应用这个领域,所有人都热衷于将自己的经验全部与大家共享,这种超乎寻常的集体无私造就了企业应用领域程度极高的自动化和工程化,也使它首先走到了必须有所逆转的地步。譬如说,Martin Fowler的PoEAA让曾经神圣的“架构师”变成了一个高度工程化的职位,这种情况似乎不是很常见的。
- 作者: 透明 2005年06月5日, 星期日 17:27
你可以使用这个链接引用该篇日志 http://publishblog.blogdriver.com/blog/tb.b?diaryID=737969
我怎么感觉其实是企业应用的可自动化,可工程化的部分太少了,所以说软件开发最重要的因素在于人,人的个别性造成了最大的变化……
说实话,这篇文章有点条理不清楚。大致可以弄懂想说什么,但是读起来觉得不顺畅。