一個“碼農”自述的血淚史
注:这是一个“一子错,满盘皆落索”的故事。兢兢业业干了35年的程序员,最后却认识到,程序员的力量太过微小。无论你写程序有多厉害,你都很难有权力真正改变一些失败的产品、失败的项目。
尤其是当他看到,当年跟自己同上节目展示开发软件的Mike Slade,最后走上管理层,创立了包括ESPN在内的一大批公司,成了乔布斯的好朋友,那种失落更是莫名的强烈。至今都对自己当初贪图安逸、没有走上管理层而懊恼,走技术管理还是继续当程序员,这是个问题?
约摸20多年前的时候,我面临着一个人生的交叉路口。当时我的第二家公司正在走下坡路,我们给一家出版商客户开发了五年的Deltagraph软件项目终止了,因为对方想要转移到方兴未艾的互联网世界。当时的我当了13年的程序员,其中有9年左右也身为管理层参与经营公司。
我不想再兼顾这两种工作了。此前在85年到87年期间,我的第一家公司不仅开发了一款新的电子报表制作软件,还自己搞定了软件的发行工作。我领导公司,接受媒体采访,维护和投资人的关系,基本的公司事务都是我在做,同时我还是全公司的3个程序员和UI设计师之一。到了87年初终于成功发布产品的时候,我紧张兴奋得最终进了医院。想要同时干好领导和编程,实在是超负荷的工作。
到了1994年,当时我有机会选择职业方向,可以进行技术管理也可以继续当程序员。我选择了当程序员,因为工作更简单。今天我才明白,自己的选择有多么地错误,尽管我在当程序员的20年间也参与了许多很棒的项目。如果当初选择了首席技术官、首席信息官、工程副总裁这样的路线,那将是好得多的决定。
1995年前后,我在旧金山湾区工作了一年,其中后半年是在苹果公司。苹果公司当时看起来快要倒闭了,我不想看着自己最爱的公司分崩离析,于是就离职回了德州。
那时的我太年轻太天真,乃至大错特错。苹果公司在一年后乔布斯回归之后东山再起,互联网风暴也在那时开始席卷全球。
作为一个经验丰富的程序员和领导者,我完全明白开发一款产品是怎样的一个过程。我们曾经做过九次应用的重大发布(major release),所有软件的核心都是我写的,都不需要后续加修正程序——反正当时补丁也很难写。我摩拳擦掌,心想那些公司是多么需要我这样的人才。一旦有机会坐到高位,我就可以平步青云了。
我的姐姐也在30年前开始了她的程序员生涯,但她在工作的第一年就跳到了管理职位,此后在一个大公司当副总裁,一干就是15年。我几年前在一家旅行社工作,其母公司的CEO就是15年前干程序员起家的。当然这类管理工作可能很困难也没啥意思,但他们的报酬要好得多。我姐姐的资产大概是我的10倍。
这些年来,我认识到程序员的力量太过微小。无论你写程序有多厉害,你都很难有权力真正改变一些失败的产品、失败的项目。我当时就是没看明白,作为一个程序员(乃至建筑师这样的岗位)的晋升空间有多么小。在这样一个干苦力的岗位上,你改变事情的力量注定是微乎其微的。再算上管理层在财务上的福利、更有可能深入参与公司IPO以及其它种种可能得到的机会,选择当程序员,就意味着你必须满足于开发好产品,其他就别想太多了。
这些年来,我工作过或作为顾问咨询过的那些最差劲的企业,基本上都是因为他们的技术管理层的不称职,甚至是彻头彻尾的技术白痴。这类公司简直多到写不完。
举个例子,一家银行的工程副总裁曾声称,作为一个管理者的他不需要懂得那些技术细节,因为他管理的是人,而且仍然认为自己可以做技术方面的决策。同一家银行的首席信息官从来不相信他手下跟他说的话,反而把卖方的话全盘兼收。我们当然都知道他从中获得了提成,虽然我们买的都是根本用不到的东西,他却总是写文章称赞那些产品对我们来说有多大用处。我离开那家公司一段时间后,他也被开除了,但转头就又找到了另一家公司里类似的职位。
我做过最差劲的一份工作,恰恰是我本以为会是最好的一份。当时一个已创业一段时间的企业在他们的领域里取得了一定的地位,他们和定位不同的竞争对手都想占领更大的市场,于是竞争开始白热化。
我被雇佣为第二程序员。原来的一个程序员和经理的职责是开发一个新的在线商店, 因为原来的商店网站太不灵活,而且访问量一上去速度就变慢。整个公司没有其他技术方面的领导,CEO和另两个创始人在技术方面没有任何经验和知识。另一个程序员一直在吹捧自己的后台代码写得多好,管理层也支持他。
我开发了一个前端,架设测试,每天签入代码。当我觉得是时候把我的代码整合到系统中时,我发现另一个程序员在10个月里啥也没干。我把这件事告诉经理,他却对我说,“他在做到完美之前从不会签入代码。”。然而,其他人都不觉得这种做法很愚蠢。在接下来的两个月里,我一直努力让三个创始人聘请真正能做事的程序员(我认识几个合适的人),但他们很害怕做出改变,也不肯承认聘请那两个人从一开始就是错误的选择。最终我选择放弃,离开了那家公司。
一年后,那家公司在仍然没有从那两个员工那里看到一点进展,于是终于决定开除他们。他们尝试去找一个咨询公司,但仍然一无所获,当时已经为时已晚。他们的竞争对手已经成了估值十亿美元的上市公司,我还在电视上看到过他们的广告。而每次在电视上看到他们的广告,我都想拿一只鞋子砸过去。那时候的我们万事俱备,就差一个在线商店,和一个真正的技术领导人。如果当时的我身处管理层而不是一名小小的程序员,我肯定会让整个公司走上另一条路。但我只是一个程序员。
这样的事还有很多,但在技术上,你并不能改变人们做事情的方式,除非你有那个能力、权力和机会。有了这些条件,并且找到正确的位置来发展,你才有可能摘星揽月。
1987年年初,我在电视节目中展示自己开发的Trapeze软件,上节目的另一个展示人是Mike Slade,他是Excel 的产品经理。当时的我还太年轻,以为他也不过是一个无名小卒。然而他后来创立了一大批包括ESPN在内的公司,曾在苹果公司担任许多领导角色,成了乔布斯的好朋友,并创立了自己的风投公司。
但是,今日的我还是一个程序员,籍籍无名的技术工。我甚至觉得,我永远都不会有真正退休的一天。还好我技术不差,现在的这份工作就是以前的一个经理招我进来的,因为他了解我的能力。但在我老到做不动之前,我仍然只是一个小小的程序员。
干了35年的程序员,保证按时完成任务,我也依然觉得推出新产品是很有趣的工作,这些年我也有机会开发了许多不错的产品。但是,我仍然能够感受到对当初贪图安逸、没有走上管理层的懊恼。
在某种程度上,当程序员是一份简单的工作。然而,一想到我曾经距离互联网风暴的中心那么近,离乔布斯回归那么近,我也有一定的领导经验,我就无法不懊恼,我完全可能是另一幅模样。
所以,我真的很后悔没有直面挑战。当然,如果走的是另一套路,我就会失去写代码的乐趣,也无法感受写不出来的绝望感。但是在人生的分岔路,我选择了行人稀少的那一条,它改变了我的一生。现在我大概明白了。