软件将没有"蓝领"

 
                                                                         原著:曹燕龙@2004-3-16.Beijing.cn
 
    笑话:一对寒苦的父子,在饥寒中砍柴,斧子也很钝,份外艰辛。但无论如何人都不会失去希望和憧憬的,休憩的时候,老父亲香香地抽着烟,端详着钝斧想着生计,缓缓地对儿子说:"儿呀,皇帝日子多好,他砍柴,肯定就不会用咱这破斧子,那得用金斧子",呵呵呵......儿子朗朗地笑,对父亲说:"爹你可真愚,那皇帝怎么会自己砍柴,他会雇人砍柴过上好日子"
 
    搞IT的人喜欢给人搞IT革命:用IT描绘一种图景,以及它所带来的人们生活方式的改变——正如今天的中国改革,人们更多谈论的是经济,而不是政治。实际上IT人自己就缺乏对自身的思想上的IT革命,所以IT的许多矛盾亦如中国经济难题,求解需要境界的提升。
 
    IT这场革命,从社会接受性上,经由网络已推向一个极致,这个极致导致的深刻与肤浅同时极端地存在。如果有一种描述IT内在规律的元语,人们将会发现它是自编译的。换句话说想以结果表现简单直接地推演它的本质规律是难以奏效的,如果还是用原有的认知哲学进行思考。其实很多思考和研究并非没有结论,不过都不正确。记得19世纪初,刚出现蒸汽机的时候,机器的强大生产力给当时的人们以震撼,人们浮想翩翩:
    a. 想象机器替人耕地的就构思出一头牛形的机器——拖着犁走垄沟;
    b. 想象机器替人洗衣服就构思出一台保姆形的机器——按着洗衣板搓;
    c. 想象机器搞运输,就构思出一头马形的机器——拽着马车跑;
 
    这就是每个年代的喜欢想象的人最容易犯的错误:想象力的极度匮乏!以为未来就是现状的线性延展,尽管历史一再地对此予以最坚决的鞭挞,可惜对于大脑缺斤短两的大多数人而言这是没用的。
 
 
    IT是个工偏理的学科(注意不是理偏工科),是:经验先于认知。具体来讲就是:
    a. 先有计算机实体,后有图灵理论,反过来推动;
    b. 先有计算机语言,后有编译原理,反过来推动;
    c. 先有大型软件开发,后有软件工程和相关方法学,反过来推动;
    ...
 
    这就可以解释,为何软件这么个纯智力的东西,其发展的主旋律是由公司等功利实体来主导的,却不是由学院派/理论派来主导的,这和数学这种理性学科是有所不同的,这是主要矛盾。
 
    可有了主要矛盾,还是很不够的,它还有一个重要的次要矛盾,就是"偏理"。所以那些成就的软件公司(实体)莫不在研发上、理论研究上做了惊人的投入。
    a. 存在功利性不那么强的内部研发部门,比如: AT&T实验室,Intel实验室;
    b. 与大学等研究机构紧密合作,比如:DOD和卡耐梅隆大学;
    c. 以更开放的姿态、甚至创造出新规则以求凝聚整个业界更广泛的资源,比如:IBM的Eclipse,Linux的开放源码,GPL法则;
    ...
 
    这些矛盾也同样体现在方法学领域,有种种偏颇。
    偏软件工科性的,过分采纳了人类所积累的工业化经验和理论,于是有人把它比喻成:建筑,工业品,相应的方法学也就来了。并非没有成效,可正如用有理数无法准确表达<根号2>一样,它不在一个求解空间,成效有限。
    偏软件理科性的,形而上,经常以为自己找了尚方宝剑,在尚不成熟的某一区间过渡求解,比如:国内某驰名教授,搞了n年CASE工具,后来不了了之,但论文无数,俨然武林泰斗。还有就是80年代曾无限红火的人工智能研究。
 
    方法没有对错,正如善良不是人类的缺点一样,但仅仅有善良显然是不够的。
 
    那么好的方法学是什么样的呢?成长本身是发散的,现实对它的指导不是通过讲道理,而是通过投入产出的反馈,这个反馈的核心是成本。比如:
        a. 计算机的安全,靠的是运算成本;
        b. 遏制犯罪,是要你付出代价;
        ...
    所以好的方法学的原则是适合,只要你愿意承担,承担得起。
 
    看回软件蓝领,想到软件蓝领属于人类基本的思考模型,它来自对照和套用,是一种人为地将复杂问题简单化。
 
    首先,软件蓝领需要重型方法学,外在上看它是一种分工模式,所有的分工的效益均来自于规模化,集约化。它的控制成本的核心在于增加简单重复工作的次数,付出的成本是管理,因为分工会带来交流的需要,组织的需要,所以工业化和后工业化直接促进了管理学科的飞速成长。软件这样搞行么,行!那问题出在哪里?那就是软件作为产品,它的价值本质和工业品的区别——软件的暴利主要来自于它的COPY的0成本,这才是它核心的价值,而这COPY的前提是软件自身的高技术含量,而不是库存。
 
    忘记了哪一位业内大师说过一句话:"编程工具将越来越易用,但软件将永远不会是什么人都能写的。"
 
    那么印度、日本等那么多外包难道不赚钱么?这就是为何称其为革命性,即是革命,则影响是深远的,所以一段时期之内,多种形态并存,问题在于处理好前进过程中的战术与战略问题。并且这一进程还需要放到中国的整体发展都是一个追赶型的发展这一大背景下思考,分清楚哪个是苟且权宜之法,哪些是长远考虑,处理好阶段性里程碑和战略目标的关系。
 
    内在上看,软件是智力密集型的知识产品,其价值来自于人类的高度主观能动性和思考性,工业化对人性的淡漠恰恰违背了这一基本原则,一群打字员和一个作家其写字技能是一样的,但区别也是本质的。即使上述因由都忽视,还有一个操作的问题,重型方法学是积累得来的,而这正好是我们的弱项,照搬是不能解决问题的,比如中国的工业产业升级,公司过往失败产品项目的根源其实也不在这,既然这些坏点依旧存在,旧瓶装新酒,结论不难得出。
 
    其次从软件开发技术的发展和方法学的发展看,我要问一个问题,什么是计算机的优势?就是凡是能以明确规则阐述的逻辑,它都能以人类无法比拟的速度运算出来,对了,凡是那些可以拆分为简单重复的东西最终必然发展为软件工具,甚至是硬件逻辑芯片。从汇编、C、COBOL到4GL到XML, J2ee, .NET以及正在兴起的MDA都是对这种思路的印证。
 
    敏捷开发可以看作是软件工程理论向作坊式开发模式的一种回归,当然它的内涵更丰富,它的驱动来自于开发工具带来的效率和可接受的成本,否则怎么重构,怎么迭代。生产力是生产关系发展的本质驱动,反过来如果一种生产关系束缚了生产力的发展,那么它需要改革。
 
    蓝领属于工业时代的概念,有它的基础,对应于工业的生产力水平,而对于软件这种生产力,简单的套用实际上是不合适的;但正如工业社会刚开始的时候一样,人们依旧用农业的管理模式管理工业,但作为一个产业,当它发展起来,其崛起的公司必然是采用了新型生产管理模式的。
 
 
    那么我们应该采用什么样的方法学?
    软件的危机来自于其复杂性,包括技术上的和方法学上的,这一点从OO的引入初期直接导致了项目失败的案例陡然上升(见IBM培训时候Rational提供那张曲线图)可以侧面证明,并且直到现在这条曲线还没有低于C和COBOL年代的最高值,难怪有人缅怀地讲:那才是程序员的黄金时代。当然事物是发展的,软件的功能也今非昔比了。软件是人类思考的产品,但人的思考的独立性很强,而复杂的东西构思需要有整体感,落实的时候需要切割,问题就产生在这矛盾之中。
 
    按目前的设计和开发工具水平,软件过程耦合性最大的2部分恰恰是:设计和Coding,背后的动因是IT产业是技术主导的,IT技术以人类前所未有的速度在发展,而人只能对重复做过n遍的相对静态的东西才能做到信手拈来的设计。反过来讲闷头设计的东西,既是违背软件的核心价值观——创造性的脑力劳动,又违背社会科技发展的历史规律——就是机器逐渐代替人劳动的历史。树欲静而风不止,人为地制造静态技术,虚佞地断言以静制动是经不起历练的,要做一流的软件要参照且只需参照美国最牛的几家公司:Microsoft,BEA等以软件为核心利润来源的开发模式为标准,日本模式,印度模式,只不过是全球化国际分工体系合理分工不合理结局的一个现状——那本是一个强者制定的游戏规则,有关全球化分工是更大的一个话题,咱们暂不讨论。
 
 
    所有的革命其实都是对社会资源要素的重新分配。
 
    所以突破性的解决软件开发的方法只有一个:就是将设计和Coding融合,用工具封装复杂性和模式 以低成本快速迭代,在目前阶段的手法就是基于高附加值、技术快速发展的2大前提,采用能最有效地提升开发效能的工作方式和开发技术:
        a. 融合设计和开发,降低重复劳动,程序以代码为本,软件以用为本,重点在于打造一支高机动性的、复合兵种的、高战斗的team;
        b. 发展空间意识,动态的人才观——做出了一流产品的才叫高手,我们要给出一个土壤和空间,而不是直接找所谓的高手,激活人的潜能;
        c. 管理制度上的改革,扁平化成长型组织,克服彼得原理,激活中层——事业部建制的弊端,后备梯队的培养,以及定期重组制造机会(比如联想,华为);
 
限于时间和篇幅很多地方没有展开思考和论述,如有不同见解,愿意以更高效的方式直接交流。

转载于:https://www.cnblogs.com/lucklulu/archive/2005/03/17/120402.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值