技术路线和管理路线始终是每个程序员纠结的问题,也是各大论坛经常被辩论的
问题。 然而一个有趣的现象是,在现实生活中,人们多愿意承认自己不精通某项技术,
却很少有人愿意承认自己不能做管理。技术方面有问题多能够校正自我,而管理
方面有了问题却总认为是对方的错,总之领导怨员工,员工怨领导,闹得不可开
交。 在中国传统的官本位的思想中,不能不说管理路线占了绝对性的优势,尤其是在
稳定的外企,管好管坏极难衡量的情况下。
做技术苦啊,相比于管理路线,有如下的弱势:
首先,IT业的技术变化太快,弄的技术人员疲于奔命。年轻人可以每天晚上几个
小时的看新技术的书籍,而年纪偏大的你上有老下有小,做饭,洗衣,陪老婆,
照顾老人小孩,逛超市,每天能有一个小时的学习时间十分不易了。如果是你已
经很熟悉的领域,你自然可以用较少的时间就能达到年轻人较长时间看完的东西
(理想状态下),然而公司的项目所用的技术方向可不是随你心愿的。如果你是一
个Java高手,碰巧公司买的一个第三方的库是用C++写的,需要对其进行封装,如
此艰巨的任务,工程师中你的薪水最高,你不入地狱谁入地狱啊。你总不能说:
我只负责Java的部分,C++的别来找我吧。
也许你经常听领导说:“编程主要靠思想,语言和平台无所谓”。然而如果你跳
槽的时候,却经常听到面试官这样说:“好像你没有太多这方面的经验嘛”,你
却不能以我很有编程的思想来回答。此矛盾之处着实使人困惑许久。技术路线还
是分很多的方向的,正如武林有很多的门派。语言,操作系统等属于内功,然而
只有内功却不足以行走江湖,必须还要有一定的套路,如Debug tool,profile
tool,出现问题后的分析办法,编程时候的各种习惯,一些非常管用的技巧等,
都是因语言和平台不同而不同。虽然对于初级的工程师来说,这些不是很重要,
然而工作三年五年之后,是否能够熟练运用这些套路来准确的定位问题和解决问
题,却是区别你是初级工程师,还是高级工程师的一个标志。当然当你在上升到
项目经理的时候,又可以只谈编程思想的时候了。一句实话,一个要饭的不要因
为听富人说吃青菜养生就见肉也不吃。周易中,同样在乾卦,同样元亨利贞,初
九则应潜龙勿用,九五则可飞龙在天了,不同的位,同样的话,意义不同。
其次,没有优先知情权。当任务到来的时候,美国那面的老大一般是先发邮件给
项目经理的。项目经理会进行一系列统筹考虑后再选择发给那些人。作为同项目
经理同一级别的技术人员,是否提前或同时,甚至晚于与其他技术人员收到邮
件,取决于你技术外的能力(你的reputation, 你和项目经理的关系等)。上面的
文章也说过了,在外企,邮件是一门很大的学问,也决定了从属关系。把本来你
擅长的任务先发邮件给他人,从而变成了他人的任务,也不是不可能的事情。当
然当美国老板过来的时候,陪同和展示成果的,也多是管理人员的事情,虽然里
面全是你的心血。
其三,没有资源支配权。项目经理一般可以支配多种资源的,如买硬件,Team
building的经费,培训的机会等。但是相同级别的技术人员却没有。
其四,没有绩效评定权。任何员工的绩效都是基本由其report得顶头上司起决定
作用的。相同级别的技术人员可能会有一些评价做参考,但是你不会知道和你平
级甚至下级的薪水和绩效。
最后,没有人事任免权。一个员工是否能够进某个项目组,也基本是项目经理起
决定作用的。一般的外企都会有推荐的制度,而通常会发现一般状况下(被推荐人
不是明显的差),管理路线的人推荐到其他组的人比较容易录取(同组推荐没有推
荐费啊)。大家总要多少照顾个面子嘛,万一哪天要向对方的组推荐自己的人呢?
基于上述几点,经济基础决定上层建筑,你也就怪不得基层员工对你仅仅是因为
技术而产生的尊敬,而对manager则是因为既威且信而产生的敬畏了。也许其实是
你的建议是正确的,大家却都同意按照manager的来做;也许你一把年纪还要和年
轻人因一个小小的设计争得面红耳赤,而他在manager面前总是yes, ok, i am
100% agree;也许你因一项新技术不很精通而被新人鄙视;也许就没有也许。