CSDN上有几个热心评论员,几乎每篇热门文章评论中都可以看到他们的身影,印象比较深的一个是一门心思批微软的技术,一个则是持Linux万能论。有时候他们的观点未必没有道理,关键的问题是视野太窄了,始终只盯着技术不放,不能说这一定不对,极客精神么,但大多时候程序员价值(尤其是现金价值)的实现不只取决于技术。
模式不一样 程序员价值也一样
开源之外,软件是商业的延续,所以代码里大多时候也包含了商业利益,而不只是单纯的技术。商业利益依赖于商业模式,而商业模式决定了很多人的职业特色和路径,进一步决定了程序员可以只关心技术么这个问题的答案,比如:外包与产品开发在盈利模式上的差别直接决定了它对人员的不同要求。
在微软如日中天的时候,曾经有一本书叫《微软的秘密》里面讲了这样一个小故事:
我们中有些人对开发人员怀有极度的不满,那简直就是嫉妒。达瑞尔•希文斯是Windows NT的主要开发人员之一,他有9辆保时捷,我当然也希望能够拥有9辆保时捷。但我怨恨达瑞尔么?当然不。他绝对受之无愧,他真的棒极了。如果用我的支票来给他开工资,我也愿意。不过从长远来看,过一两年你肯定就能得到应得的报酬。如果由于某些原因,我们引入了达瑞尔,并付给他足够买9辆保时捷的薪水,而他一旦干得不够好,就不会在这里工作很久... ...但这些开发人员都是精心挑选出来的人才......唯一的不利之处在于,总有一部分人感到开发人员才是“主角”,但这正是这一行业的本质。
假设一个人技术也和上面说的达瑞尔一样牛,但是在外包的模式里面,那它可能达到上面的程度么?答案是不可能,因为模式限制了纯技术角色所可能创造的价值,进一步预先定义了技术路径长短的极限。
当一个公司的核心技术并没有创生多大价值,而是需要靠人力规模、商业模式等来支撑业务的时候,那么我们可以称之为技术路径短的公司。想象一下,如果一家公司专门承接本地化工作,那么也许也会需要程序员编制某些工具,但对程序员而言技术路径无疑是短的。
如果暂时把眼光从程序的世界移开,那么事情就可以看得更清楚。
在盖楼的时候,只要达到基本的质量,一个人每天砌200块砖,固然比砌100块要好的多,但相对于大楼而言,多砌100块砖,所多带来的价值有限。再进一步由于砌每块砖的价值是固定的,同时一个人每天所能砌的砖也是有限度的,这就会导致砌砖工人,不管多么努力,其收入水平必然会被限制到某一个较低的水平,只要他的工作还只是砌砖,而不是设计师或别的什么。这种限度是由这一工作的内涵所决定的,倒不是谁遭到了歧视。
再类比到软件行业里,单纯的在既定接口下实现已定义的业务逻辑就是技术路径比较短的工作,是体力密集型的;而分析业务逻辑,控制整体架构或者去研究TTS的算法则是智力密集型的,技术路径较长。
这样一来上面问题的答案就更清楚一些了。如果你所处的地方其商业模式允许较长的技术路径,那就可以更多的关心技术,否则就要横向展开而不能只盯着技术。
程序员的两个进阶模式
这背后事实上隐含了两种进阶的模式:
一是达到一定高度横向展开。比如:编程语言,(金融)业务逻辑,外语,网络知识等组合在一起就可以成为一个高地,这里面编程语言上一个人可能不如天才程序员,业务逻辑上可能不如银行员工,外语可能不如专职翻译,但每多一重过滤,就会导致高地的海拔拔高一分,最终转换为稀缺性。
一是彻底的专家型道路。有的岗位可能不需要把面扩的很宽,比如做TTS,OCR的算法,有些人甚至编程语言都可能不是了解的很熟,但确实可以是某一方面的专家。这同样是一种价值高地。在这个方向上,一旦真的达到一定高度,那就不是单纯的累积数量可以超越的。比如:认为100个或多少个平庸的科学家等价于一个爱因斯坦无疑的是愚蠢的。
而考虑这种进阶模式时要与自己身处的环境相结合。一般来讲越大越牛的公司越能支持比较专业化的分工,创业公司怎么可能有人去钻研OCR算法。上述观点在创业公司上展开就会关联到近来总有人说的全栈不全栈的话题,全栈显然走的是横向展开的路数,它在初期打造产品的角度上性价比比较好,但技术深度肯定会弱些。但全栈工程师确实会比较契合于小团队靠产品打天下的模式。
这类横向展开的关键是:你可以完整的搞定一件很有商业价值的事情,而这件事情大多数人搞不定。比如说:
- 我可以主导开发一款手机,因为我即懂软件又懂硬件,也还知道如果开发一款良好的产品。
- 我可以带领队伍搞定这个银行的整个系统。
- ……
最后想补充的两点是:
年青的时候总是希望有一个迅速解决问题的方法,比如如何搞定一份好的简历再搞定一份好的工作?如何和上级谈涨工资成功几率比较大?近来V众投上也在探讨这类问题,比如:大家都是怎么跟领导提要求涨工资这事儿的? 一份好的简历应该有哪些内容? ……对此我的观点是不能说这类技巧不重要,但是在年纪小时,这些都没有确保自己在一条正确的增值路上重要。而怎么走在正确的增值路上,很多人也希望有一个立刻且明确的答案,而不耐烦做点思考,偏偏这也是不可能的,你最少要考虑怎么在指定环境下更好的去增值,怎么提高自己的表达力,怎么选择合适的平台,怎么创造自身的稀缺性。
另一点补充是写上面这些文字时没考虑兴趣的影响,更多的考虑的是利害,因为兴趣是绝对主观的,想干什么就干什么好了,一个人如果确实认为兴趣更重要,那就可以忽略上面的观点,只做自己喜欢做的事情。
作者介绍:李智勇,V众投发起人,《完美软件开发:方法与逻辑》作者。目前正在免费发布《程序员生存定律》,微博:李智勇SZ,微信:vfacebook。
《畅言》第七期:【[畅言]企业号会是微信的滑铁卢么?】微信企业号,是微信推出针对企业管理的平台,企业号能在移动互联网上,为企业提供对内部员工的管理、沟通与服务。强大的微信介入这个领域,让很多做企业软件的有一种狼来了的感觉,但这种感觉靠谱吗,微信能成功吗?
《畅言》第八期:【[畅言]让软件公司的管理多一点“灵魂”】不少软件公司的成功是源自产品、人口红利,而不是因为管理,甚至有的公司的管理带来的是负值。这样的公司之所以成功,只是因为正面值太大。而另外一面,现实中很多的软件公司,其管理很可能已经陷入了困境。而这是慢性毒药,带来了恶性循环。如何解决?
《畅言》第九期:【 [畅言]你真的了解软件开发的本质吗?】我们总是喜欢用自己的经历来定义软件是什么以及判断标准,但如果这种经历来自完全不同的两个领域,并且互相矛盾,那么就有可能让大家吵来吵去……是的,各位在忙于解决具体问题时,谁还会想到谈谈软件开发的本质?