分类:
2006-08-14 15:02:24
上个世纪90年代末,软件泡沫最高涨的时候,我还在学校里老老实实地学着我的结构工程。我当年的理想是要做一个好的结构工程师,跟我弟弟一起开建筑设计事务所,这话写在日记本上,白纸黑字。后来之所以毅然地抛弃本行来趟软件开发这摊浑水,很大程度上是受了技术高手们高大形象的鼓舞。那个时候真是有激情,觉得编程高手被泽着理想主义的光芒,向英雄一样崇拜他们,他们才像是搞技术的,我们这些土木工程师,嗯,也就是个混饭吃。
真的走到这个行业里才发现,中国的软件技术研发的环境根本就不是那么回事,按照一般程序员的大白话,就是"在中国,搞技术的没前途"。有点理想和抱负的程序员,大多面临被分化和钝化的命运。所谓分化,就是以这样那样的方式转变为管理者、市场人员、宣传员等等角色,所谓钝化,就是乖乖地接受降解,由研发人员转变为工程人员。.....
......
搞技术的先天都有点自命不凡,总是幻想向着未知领域冲锋,探索新的方向。谁不想重复Adobe在平面设计领域的辉煌?谁不想也搞个什么CAD来发掘和开拓新的市场?谁不知道搞项目的辛苦?谁不想安心做出好产品,名利双收,给人生添一抹亮色?可是,难啊!环境所迫,只能放弃理想,面对现实。
不过软件这个东西真的不太一样。我的判断是,放弃理想,也未必能成就现实。原因就在于软件太容易复用了。我们行业里的人整天叫嚣着要提高软件的可复用性,还煞有介事写一大堆书出来谈reuse,殊不知,相对于其他很多传统行业,软件的可复用性实在是太好了。比如说,雅典奥运会场馆中的钢梁,绝对不可能拿到北京奥运场馆来复用,连设计方案也没有多大参考意义。可是人家那成熟的奥运售票系统,改巴该巴就能跑在2008的售票主机上。不说那么玄的,就拿一般的任务来说,有几个程序员能把线性代数方程组的那些七七八八的数值求解算法记得清楚?恐怕能说清楚什么叫矩阵谱半径的人就已经不多了。可是谁又犯的上操这个心呢?真的碰上这种问题,囫囵吞枣地调用IMSL库的一个函数,或者Matlab的一个命令,算得又快又准,还不比你自己哼哧哼哧的写代码强?正是因为软件这东西能低成本大规模的复用,在这个行业里,就存在一个残酷的现象:强势的研发人员事实上在以自己的产品挤压弱势同行的生存空间。换句话说,你们雅典的建筑设计师抢不了我北京同行的饭碗,但是微软的多媒体专家就能把我们北京的编程高人们逼得没饭吃。道理很明显,你在做流媒体播放器,做得还不错,但是微软一出手,你肯定趴下。现在用C#分分钟就可以装配出一个不错的Media Player,你呢,要么转行或者转方向,要么也跑去搞装配。落到这个田地,其实就已经肯定只能分到残羹剩饭了。也许抢先干一段,还能有点出息,毕竟帮用户解决了"最后一公里"的问题,这活也不容易啊。但是长远干真的不乐观。为什么?装配这活,技术门槛太低,而且一定会越来越低。干这行,向上给核心产品供应商打工,向下给客户打工,里里外外装孙子。
我接触过很多做项目的程序员,水平高低参差不齐,但是大部分都有共同的心声,真不想做项目,真想踏下心来做做产品研发。大家起点差不多,学校里不见的谁比谁强,凭什么你能专心做产品,探索技术新方向,我却得汗流浃背周旋于客户和厂商之间?而且说实话,搞这种服务活,程序员人微言轻,不是滋味。你还别不服气,服务不就是让客户舒坦吗,客户也是人,让人舒坦的方法多的是,人家sales有的是手段和力量让人家舒坦,干嘛非在技术上较劲,谁也不比谁傻,对不?
要我说,咱们搞技术的真的不能甘心这么走下去。路不是没有,其正到各行各业去看看,沉下心来调查研究,你会发现,这所谓的信息化,在各行各业中的应用也就是一层皮。要往深里挖,空间还大得很,机会还多得很。无论是石化电力,还是机械建筑,哪一个行业里都有很多真正的机会。说句不夸张的话,你要真能帮人家解决实际专业问题,还真用不着感叹技术不值钱。不过要抓住这些机会,对这些行业就不能浅尝辄止,一定要有亲身投入、深入实践的决心。现在我们很多开发者喜欢自说自话,整天抱着架构啊、模式啊、N层结构啊孤芳自赏,其实上碰到专业问题根本深入不下去。搞结构软件不懂有限元,搞设备控制软件不懂控制理论,搞探测分析软件不懂信号处理,你上10层结构,用100个模式,也解决不了问题。要想深入行业应用,软件开发能力固然重要,专业知识恐怕更重要。行业应用软件一是复杂,二是专业。经过第一轮信息化,最容易挖的那桶金已经让人给挖走了,再往下走,就不能不沉下心来真正钻到人家专业里去。我相信,那里面的机会大的很。而且,这么想的人不只我一个,已经开始实践的人也不少。现成的例子,中国建筑科学研究院的专业结构设计软件PKPM就非常成功,在国内几十万人用,还出口到东南亚国家。蒸蒸日上的思维加速公司,也是一个深钻苦干的典型。我也知道不少个人,正抱着十年磨一剑的决心深入到某些应用领域里努力。他们是好样的。我觉得,振兴中国软件业的希望,在在他们身上。
(《程序员》2004年第9期的maglog专栏文章,有所删节。全文请见杂志。)
from: http://blog.csdn.net/myan/archive/2004/09/01/91237.aspx