曾看到 2002.7 期商业周刊介绍全球最大的威名百货(Wal-mart)以集中精力的方式,努力做到它的产品卖得最便宜,四十年来目标不变,而今成为全球营业额最大的企业(七兆两千六百亿),超过了传统的制造业。商周给这件事实的评语是「聚焦得以壮大,多角化会败家」。
个人的技术聚焦
我常常在想,信息的技术变化得如此之快,到底要如何做才能安身立命。一个老前辈在十年前告诉我:信息人到最后不是放弃专业,专心走管理职;就是专心技术,走顾问职。至今,国内信息界对顾问一职仍然陌生,一般业主对信息人的尊重也依然欠缺。但笔者十几年来就只对信息技术本身有兴趣,对于处理人的问题兴趣缺缺,虽然对技术人的未来茫茫然,但依然抉择以技术人安身立命。因此排拒掉多次升迁与跳槽当管理职的机会,醉心于陶渊明式的「每有会意便欣然忘食」的愉悦中。
常看一堆人换技术像换衣服一样随着流行走,笔者的同事也劝笔者应该研究一下 Java、Oracle 系列的东西了。扪心自问教授过五十门左右的微软课程,以微软的产品建过大小系统之后,是不是称现在 Java 正热时,该琵琶别抱一下。但我自身在处理信息问题上,当下最欠缺的是另一套语言,另一种平台的认知吗?当我要做好一个信息技术顾问时,我应该加强什么。就自己的评估是分析设计的能力,好吧,一天只有 24 小时,在闲暇时间研究一下 OOAD,ORM、CMMI、Agile…吧。既然十几年前赌了微软,现今它也没有要倒的迹象,微软近年还是最赚钱的信息公司之一,且有大幅的研发费用,聘请上万个相关研究人员。唉!跟着学都还没有人家开发得快,且看起来尚未赌错边,闲暇时还是去玩玩微软不教我的东西吧。
企业要坚守核心,我个人的技术取向也聚焦一下吧。
君子务本,本立而道生
晚上在跟学员聊 .NET 时,看着大家对于全新的 ASP.NET,ADO.NET,VB.NET 感到无比的学习压力。我随手挑起了 ADO.NET 的 SqlCommand 对象问大家这可以做多少事呢?从 SQL ANSI 92 年版本以来,SQL 语法动过了多少?十几年了,我们都还在用啊。同样地,HTTP,TCP 协议出来多久了?ASP.NET 只不过是让我们更容易驾驭它。这些是蹲信息功力的马步,研究它们很枯燥,但很值得。
有一个主管跟我抱怨说:现在的工程师做什么都很快,三五天就交差了,但使用人数一多,数据量一大就出现无数个 bug,也不知怎么找问题,大家就僵一起。
六年前在美国听微软的研讨会时,大会认为 XML 的基础至为重要,因此将能容纳万人的大会厅留给介绍 XML 基础的讲师,约有千人来听这场演奖,而他真的努力从 XML 的基础讲起,一点华丽惊艳的示范都没有。回来台湾我想仿效,但主办单位认为台湾的听众喜好炫的内容,基本东西枯燥乏味,难有好成绩,因而作罢。
在台湾的信息技术研讨会很难有深刻的东西,上回听 Java 2 时,还有整场在打口水战的共通场次,看不到深度,广度,更别说愿景了。在听美国的研讨会时,往往会钦佩于主讲者的内涵与风采,他们高兴地描述自己的产品,因为那是他亲手做出来的,好似他亲生的小孩。当听众质疑对手的产品已有的特色,为何他没有做,主讲者也会侃侃而谈,告知这项特色将会在哪一个版本完成(不见得像台湾的回答,永远是下一版喔!),是因为技术问题无法克服呢,还是因为透过调查,使用者的需求性并不是最高的,在开发的时程上,需要排到第几版才会推出。
几年前商周介绍「印度 3.0」,是对整个印度的软件制造质量的褒扬,而台湾的软件质量呢?回想一下,你我的软件有下一版吗?我曾就这个问题询问过多家公司的信息从业人员,我们有的是不断地重写,因为前一版写得太烂了,但当下的制作仍然是且战且走,每一回都是从 0 开始,做到百分之八九十,就交给使用者。若将台湾信息业当成一个软件,那版本大概是 0.9,还是 Beta 版。
软件开发有句话:”越早开始,越晚结束”,我们可曾好好规划过要做的软件,要写的程序代码,如何版本控管,它的生命周期为何?悲哀的是,要如何好好规划我们都还不会。很久以前自己就不敢骂微软,Sun,抑或是其它大厂所出的软件太烂了,因为自己写得更烂。当我们在骂 Windows 操作系统不好时,它从 NT 核心到现今已近 6 个版本,二千多人合作完成,你我五个人合写的软件,有下一版吗?
我常常就务本与技术聚焦考虑技术的取舍:设计软件时,要先做最底层,最不变的组件;让撰写呼叫底层的上层组件的同时,就在验证底层的设计,为底层除错。上层可以一再的换(使用者喜欢,就被迫换),ASP 流行时,VB Form 的工程师就死了一半,ASP.NET 的出现,ASP 的人又死一半。但含有商业逻辑的组件可以慢一点换,因为它们稳健,已经在执行,且使用者又看不到。数据库设计更可以保久一点,营运数据可不能随便乱改。
学技术时,绝不要仅止于操作,Visual Studio.NET 拖曳可成的软件,SQL Server Enterprise Manager/Management Studio 轻易可建的数据库与数据表,它们都只是表象,换版时,换得最多的就是它们。当看不到共通性,不了解基础时,就很难抓住学习的要点,无法提纲挈领,只能瞎子摸象。抉择技术时,也只能比较销售员的华丽与否,或是谁比较会攻击别人,说不出自己真正的需求。
但对于茫茫然的技术海,如何得知什么是基础什么是浮面呢?持之以恒的兴趣似乎是唯一的路。对于某项技术了解得既广且深时,你可以看出软件变化的脉络,知道它变革的重点,你自身的需求。此时,学习,比较,鉴赏本身就是一种乐趣了。当我在看 ASP.NET 时,会赞叹微软的工程师们对 HTTP 包装的能力,每多看一点,就多一点惊喜。赏玩 SQLXML 或 ADO.NET 时,也对工程们在关系型数据与阶层式数据的转换与运用所发挥的想象力感到佩服。
怪现象
或许我们技术人员没有受到足够的尊重,因此少有人浸淫在技术中,乐此不疲。就好像前起年盛行一时的写程序不若卖鸡排理论。曾听一工程师抱怨说,公司薪资太低,留不住有经验的人,跟上层反应后,主管认为信息技术本来就重视汰旧换新,留不住老人刚好,新人薪资低,耐操又肯学新技术。悲夫,信息技术是辅助工具啊,没有各领域的知识,哪来贴合的系统。现今流行 ERP,CRM,SCM…上亿的钱砸下去,就会有合用的系统吗?若没有兢兢业业且有经验的信息人员,无止境的系统钱坑不但大,还生不出半点成果出来。
曾有主管抱怨,信息人员真的只在处理信息,没有知识,产生成千上万的报表,但看不出企业营运的关键在哪里。试想,当信息人员下班后都想再找份工作糊口(直销或卖保险似乎不错,我倒是知道不少人这么干),最好可以跳槽,自己加自己的薪,哪来的想象力将成千上万的企业信息转成知识呢?又有谁想将信息系统精益求精呢?
在技术不受尊重的信息部门中,往往升迁是一摊死水,有升迁,其过程也很奇怪。初进公司时是程序设计师,有了经验后升成系统分析师,再来升经理,真有点像呆伯特说的,将不会做事的人升迁。若将之比作建筑业,好像处理水泥钢筋的师父资深了,就改成土木技师,再资深一点就做建筑师吧!这种房子你敢住吗?
在公司里,反正住这些测试版房子的人都是那些不懂信息的其它部门同仁,就当他们的抱怨是 bug 回报好了(我们的软件开发应该都没有品保人员吧!你说,谁是软件测试人员呢?)。没有资深技术人员的晋级制度,当然大家都不想夜夜苦读新技术,写 20 年的程序,薪水和新进人员差不多,总想干掉其它同事,升成管理职。
每每看着满腹热诚的新进同仁加班赶程序时,就有一种莫名的惆怅,不久后他不是热诚不在,就是跳槽了。
结语
看着基础需求如数据库设计、软件测试、软件工程渐受重视,真是可喜可贺。毕竟这些是蹲马步功夫,做得好不好只有自己知道,建得再烂,只要网页漂亮一点,大家就对我的专业赞赏有加,在数据还没累积,使用人数还不多,需求还没变更,口碑还没下坠时,赶快交接出去。系统会不会因为数据结构不佳而导致重写,或一段时间后错误百出,当机时间比正常时间还长,数据错误的比正确的还多,关我屁事。
讨论基础技术的人数增加,希望代表的是上述现象的消退…。
王国维在人间词话中描述成大事业,作大学问者必经过以下三个境界:
“昨夜西风凋碧树,独上高楼,望尽天涯路。”
“衣带渐宽终不悔,为伊消得人憔悴。”
“众里寻他千百度,蓦然回首,那人却在灯火阑珊处。”
我看,信息从业人员不必期待作大学问,光是要「快乐」地安身立命,就要经过这三个境界了。你说是吗?
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=925651