原文请参考:
http://www.ccw.com.cn/applic/zl/htm2004/20040102_08GLT.asp
----------------------------------------------------------------------------------
近两年,看了不少中国软件业的评论文章,发现每个时期都有其各自的争论主题。当印度模式开始引入国内的时候,很多人就在讨论,印度模式是如何如何的好,印度模式给印度的软件产业带来了多大的利润,全球有多少软件是在印度开发的,等等之类的话题。然而,随着美国和欧洲软件行业开始不景气,印度是最首当其冲的,很多软件公司因为接不到欧美的单子被迫关闭,软件学院的教室里空无一人。然后随着一波去爱尔兰见习的人员回国,就开始大力鼓吹爱尔兰的软件开发模式,从而带出了对日本模式的讨论。
其实,我们在学习中学的政治课的时候,有一句话已经讲的非常透彻的:建设有中国特色的社会主义。什么叫有中国特色,简单的说就是发展要适合中国自己的国情。既然经济的发展要有中国特色,那么相同一回事的软件业的发展究竟要不要走中国特色的模式呢?各位高人都有自己的见解,但是不乏其中一些人混在中间企图为他们自己的利益而误导别人的。对付这些人,只能是仁者见仁,智者见智了。
先看看我们的软件业的国情吧。根据统计,我国的软件行业,大部分是依赖进口的(至少操作系统,数据库,编译器等底层软件国内还是力不从心),一些应用层的东西有我们自己开发。目前我国的软件业利润大概在会计,行业应用,网络游戏,跟硬件结合等领域,能够挣钱的软件公司不多,更别提大型软件公司了。大部分用户在使用的是盗版的软件(我在家里也是用的D版的Win2K和SUSE发行的linux),软件版权意识虽然比几年前有很大的发展,但是经济实力限制在这里,不能让他们随意的购买软件服务。一些小公司,为了节约运营成本,也在使用一些D版的软件。给人的一种感觉好像是生活在D版的软件世界里(事实就是这样,因为玩的起电脑的,多少人有钱买几套windows?)。
目前国内的软件企业很多,而且这些软件企业天天在喊要打击盗版,但是多少软件企业敢说自己公司里面没有使用D版的软件呢?对于那些初创的软件公司,我不敢说100%的使用D版软件,但是80%的软件是未授权的。既然自己做不到不用D版,为什么不让别人用你的D版呢,记住,任何事情都要从我做起,只有自己做到了,才能让别人来和你一起做。也就是说,打击D版,从软件公司自己做起!
很多软件从业人员总是在说,现在的工资水平太低了,干的活有多累。但是,实际是这样的吗?我也是一名软件开发人员,虽然从事软件开发也就几年时间,相对于很多人来说还是一个后辈,不应该对前辈们做评论,但是我还是想说几句:有些事情不是外面所说的。好像半年前吧,因为一则新闻引发了一个大讨论,说中关村XX万年薪招不到合适的软件工程师。在讨论中,很多程序员在里面大述口水,说干活有多多?拿的工资是多么的可怜?但是发表这些说法的人员自己有没有想过,你是在为谁打工?为老板打工,说白了是为资本家打工,他们是靠剥削你们来挣钱的,你不给他挣钱,他为什么要给你支付薪水和你在公司的运营费用?
还是先从我自己角度来说说目前程序员的现状吧。我现在的工作,就是每天做开发(废话,软件工程师不做开发还能干什么),不过主要的工作就是写写文档和代码,系统设计还是别人做好的,最多参与详细设计。每天早上8:30上班,晚上6:00下班,中午有休息时间。除了在培训期,基本是准时上下班的,周末加班加班费照发(我们的加班费在国内来说应该还是可以的)。我在上班时间内,除了收发邮件,很少上网,最多去GOOGLE或者BAIDU查一下资料,有些时候空闲了,可能会去技术网站翻翻帖子。不过翻帖子的过程中,我发现一个现象,就是在技术网站,废话(应该叫水贴吧)还是很多的,而且看看这些发贴的时间,都是在上班时间段内。我曾经留意过一个帖子(比较热门),那个帖子每隔几分钟就有一个回帖,某位作者的回帖当天居然高达10贴以上,真是佩服这位作者的精神(我当时就只看了前面一部分,太长了,没有全看完)。后来从论坛了解到,大部分程序员都是喜欢一边上网,一边干活,据说叫做劳逸结合(这叫劳逸结合?)。可以想见,这样的工作效率,不加班才怪呢。很多人都知道,怎么样去估量自己一天的工作量,自己何不去试着评估一下呢?我想大部分人的有效工作时间超过7小时的非常非常的少吧?再想想,自己是不是对得起自己拿的工资呢(不要试图自己能拿到自己创造的价值,因为你创造的价值是是和同事,老板合作的结果)?
其实我在这里不是想批评我国的辛劳的程序员,而是中国软件行业的发展,你们是支助,离开你们,完全不可能更好的发展,我只是把程序员平时的一些错误指正出来,让大家认识到自己错误,只有大家(软件工程师和其被雇佣的老板)团结起来了,我国的软件才有出路。
说完软件工程师,再来说说软件公司吧。前面已经提到过了,软件公司大部分使用的软件是D版的,这里只提一下软件公司的开发模式。目前我国的软件公司,大部分是10个人(只算软件技术人员,不单指开发人员)以下的手工作坊,开发的软件不但跟着市场走(这点没错,只有市场才能挣回利润),还跟着公司的上层意识走。有些时候,开发人员做好了一个功能,并经过了测试人员的测试,认为达到发行标准了,但是给公司上层看时,上层认为不美观,让开发的重新做,如此周而复始,极大的浪费了开发精力并在很大程度上打击了软件从业人员的士气。还有一个现象,就是很多软件公司,一个产品出来之后没有经过严格的测试,甚至干脆不测试,就直接交付给用户(为什么现在很多人在卖国内软件做的烂?)。还有,软件的重用度极大的影响着开发成本,但是现在很多软件公司,根本没有自己的类库或者自定义的组件,大部分功能是用到了就开发,开发完事就扔在那里不管,不会去重构代码,认为软件开发最重要的设计和编码(从技术角度看,确实是这么一回事,但是从市场运营角度好像就不是那回事了)。软件工程这个概念很早就在炒作了,但是现在国内的软件公司有几家在遵守(开发过程遵守CMM,ISO,XP,国标和自己定义的软件过程),很多时候崇尚的还是个人英雄主义,核心人员一个就抵得上一个团队得力量了,团队对于他来说只是一个帮手而已。
好像开会也是我们国家的一个传统,有点鸡毛蒜皮的事,可能就会通过开一个大会来解决。我曾经记得在一家公司,就是因为界面的问题争论了好几天,最后老板作主给定下来,但是到了客户哪里,得到的结论事不符合他们的使用习惯,要改!也就是说,这几天开会的时间全浪费了。其实,软件开发中,很多会议还是很重要的,如各种评审,在士气低落的时候给鼓鼓士气等,但是像传达上头意识等更本不用开会,发个邮件或者口头通知一下就行了。
在原文中提到我国古代的盛事,这些事情确实是值得我们说道的,但是历史究竟是历史,时间会抹去一切的,将来是靠自己去创造的。计算机不先在我国出现,但是现在计算机的使用量我国在世界上是名列前茅的,但是有多少软件是自己开发的呢?有人说,是我们的软件基础不行。我说不是,是我们的学习意识不够,创新意识不够,只学会拿来,没有学会消化。印度的软件基础大家都是公认不错的,但是印度的软件实力强吗?不强,他得依靠别人来生存,别人有对她的生杀予夺的权力。很多人都会认为,微软公司是软件研发实力最强大的,但是我要告诉你,微软的实力远远没有开源社区强大,微软的很多产品是吸取了开源社区的很多智慧才成长起来的(要知道,微软有的东西,在开源社区都有,而且很多东软件做的比微软还好)。但是数数国内去过开源社区的人有多少?了解开源社区的人有多少?使用开源软件的人有多少?参与开源软件开发的人有多少?我认为,开源社区是软件里面最活跃的技术社区,很多新的思想都是从那里来的,最主要的是,哪里有很多开源的软件可供大家学习,这是跟随封闭性软件开发的从业人员所无法学到的(他们所学到的只是对人家实现的简单调用)。
我只是一名软件开发人员,从事软件开发也就近几年的事情,对于很多问题认识的还是不够的,希望大家共同来探讨,一起关心我国的软件发展。在这里,我也给我国的软件道路大概做一下预测:学习->消化->模仿->发展->创新(辉煌了!)
------------------------------------
本文在:leejd.blogone.net首发