本人其实是从事维护工作,编程只能算是业余爱好。此文纯粹是从商业的角度谈一点看法,权当是旁观者的门外之言,高手们大可当笑话来看。
(前几日发的“一个JavaFans的质疑和忧虑”得到大家的热烈捧场,实在是受宠若惊。非常感谢各位的讨论,只希望不要留一大排重复的词语。在此请教如何删除?这篇文章肯定又要讨骂了。不过笔者以为广大同道都是勤奋上进的好同志,不能只埋头coding,否则的话牺牲如此多的时间与健康却得不到应有的报偿,实在是没有天理!如果广大同道付出了大量的劳动却所得廖廖的话,其实是该好好想想了。同道们终日忙于coding,既老实又天真,还是应该多为自己想一想的,毕竟“人不为已,天诛地灭”。欢迎大家一起探寻一下更多的出路)
软件实在是一种极其特殊的商品。
1、这种商品除开发成本外,其余的成本几乎可以不计,这真是一件恐怖的事情。这就意味着这种商品几乎完全要靠法律来保护,也就是说,在法律未发生作用之时,这种商品的价值几乎为零!国内泛滥的D版就是这个规则的典型代表。这个特点还意味着某个产品一但足够成熟并有明显有优势的时候,就可以任何价格(包括零价格)打击竞争对手,从而几乎完全占领市场。这就是MS巨大成功的原因。
2、过程的个性化与目的的通用化。身为程序员,大家最热衷的种种争论其实都是针对开发过程,而目的却是一致的:那就是最通用、最高效的软件。由于0与1组合的无限可能性,每一个人、每一个团队的开发中经历的过程都不一样,也就是说这是一个注定要“重复发明轮子”的行业,而最后只有一个轮子能生存下来。这是一件更加恐怖的事情。为说明这一点,举个最简单的例子与之对比:像汽车,无数的厂家都在造,但只要有配件,随便一位街头的修车工都能搞定它!缘于生产流程与配件的相似。而任何一款合格的产品都会有市场,因为它的确能用。但软件就不一样了,流程的无限复杂性造成它除开发人员外几乎无法维护,而且当产品足够成熟与通用后就只会剩下可怜的几种产品。像Office、Photoshop之类的东东,很久以前大大小小同类的开发是很多的,到基本成熟之后呢,不过是廖廖而已了。所以很早就有人说,这是一个高风险的行业,再加一句,高残酷!产品未成熟之前,熙熙攘攘好不热闹,一旦成熟,几乎意味着只此一家。
最好的软件就是最好用的软件,也就是开发人员一经完成就几乎不用去管的软件。夸张一点来说,软件开发人员的孜孜以求的,似乎正是为了用户尽可能地不再来烦他。逐渐接近这一天是必然的,而这一天的来临也就意味着大多数开发人员将退出历史舞台。其实各种行业都存在这样的现象(包括农业),只是软件业是最极端的。
好几年前,WEB还是很难的,所以那个时候的WEB开发人员很牛,也很吃香。后来ASP、JSP、PHP出来的,WEB开发一下子就掉价了。更有甚者,最近一两年,网络上免费论坛、电子商店之类的东西铺天盖地,把这类软件的价值几乎降到0!用不了几年,OA、电子政务这类的命运也一样。原先价格高到需仰视的ERP之类的东西,竟然也降到十万元计了。企业级系统的确是很复杂,但软件技术也在不断发展,早晚还是会出现各行业的通用软件。到那一天是不是从业者都得为机器人或者卫星编程序?
真正的问题就是,我们是否真的需要那么多软件?(准备迎接臭鸡蛋)举个简单的例子:对于绝大多数人来说,一个IE就够了,Netscape只能是鸡肋。
所以以笔者看来,这个行业就像踢世界杯,根本上来说就是淘汰赛。很久以后,使用、维护人员还是不少,但多数开发者必将被淘汰(现在国内外都出现了这样的趋势,国外的外包和裁员,国内是减薪)。在这个超级残酷的软件业,或许大多数难以最终存活的同道们是该考虑一下前景了。