公司管理角度看程序员

  作为程序员出身的我,看到程序员们一起讨论共同感兴趣的话题,是一件很惬意的事情。但不惬意的事情是,这些话题中的很大一部分,都被那些“外行人”从纯粹非技术领域进行过分析。虽然内行人都不大愿意瞧得起外行人,但不得不承认,有些分析真的是切中要害。

  程序员之间的讨论,除了“外行人”觉得无聊的技术问题之外,出现频率很高的一个话题就是前途(或者钱途)。Java有前途还是.net有前途,程序员有前途还是系统管理员有前途,在加拿大有前途还是回中国有前途,blah blah blah。

  其实,如果只从收入角度考虑,最有前途的领域,就是当“经理”。不管你是搞Java还是.net,不管你是程序员系统管理员卡车司机,也不管你是在加拿大还是中国,你的经理总是比你收入高。而且,经理级别越高,越靠近金字塔的顶端,收入差别就越明显。用《徐九经升官记》里的词说,当官就是要当管官的官,不当官管的官。

  谁能当经理?这是个问题。

  说到这,想起一个著名的Peter定律。他的结论是:在一个理想的金字塔结构的公司中,从办公室门口望去,每个隔间、每个办公室里的人,都是在干着一份自己能力达不到或者勉强达到的工作。

  要推出这个结论只要满足一个前提:每个职位上干的出色的人必然会获得提升的机会。

  仔细想想很有道理。一个小组里面,总是出色的人被提升。而他/她被提升以后,无非两个结局:继续出色从而继续提升,或者一直呆在这个他/她勉强胜任或者干脆不胜任的职位。而继续获得提升的人,最后的结局也只有一个,提升到了一个再也无法提升的职位——不胜任的职位。

  不过,作为一个高傲的程序员,向现实生活中放眼望去,似乎经理都是技术背景很弱甚至是技术白痴一级的人。这就是Peter定律的缺陷,即他的前提“每个职位上干的出色的人必然会获得提升的机会”并不一定成立或者大多数情况下不成立。

  这个时候,就需要用Dilbert定律来作为补充。Dilbert定律是:经理都是由能力最差的人提升来的。原因很简单,能力最差的人,搞技术会制造出坏的产品,搞销售会损失客户,只有当经理才会把对公司造成损失减到最小。

  听上去很搞笑?

  正确!Dilbert的漫画,就是以搞笑著称,但这不能削弱它的深刻。

  上个周六Toronto Star登出的新一期Dilbert的漫画故事是这样的。Dilbert的经理,要招聘一个Senior Level的人,于是Dilbert的同事(是个工作狂人,看样子好像是亚裔)跑来抱怨说:“我的能力完全胜任Senior Level,为什么不提升我?”经理答复说:“不行,公司现在可以招聘senior级别的人,而冻结了你这个级别的招聘。如果提升了你到Senior Level,而我又不能从外面招聘人,我的部门就没有办法成长了。对了,新来的家伙就交给你培训了。”

  呵呵,还是这个亚裔,在另一个故事里,跑去找经理汇报:“我加班工作到两点,提前完成了我那部分项目的进度。”经理面无表情拿出一沓新的任务,说:“这是你的新工作。”他勃然:“难道你要因为我努力工作而惩罚我?”经理说:“不,这是奖励给你更有挑战性的工作。”

  不过,对第二个故事,我不是很以为然,如果按照故事中的一贯性格,Dilbert的这个同事应该很愉快的接受这些工作,并自动认为这个奖励。:D

  在一本给管理人员看的软技术书中,深刻分析了以程序员为代表的IT workers的性格。程序员对技术领域的忠诚度,要高于对公司业务的忠诚度。程序员更喜欢按技术领域来划分彼此,而不是按公司所属领域来划分。如果公司不能够提供程序员更喜欢的技术环境,程序员会立刻离开。即使是做Business analysis的人,虽然大部分时间用来解决business problem,但也对更新的Technology、更新的Tool、更新的Toy有着浓厚的兴趣。如果公司不能够提供使用新技术/工具/玩具的机会,那么很难留住这些程序员。

  在这本书中,认为解决这个问题是管理方面的挑战。因为一般意义上的提升,并不是很适用于程序员。因为程序员有着很强的技术和分析能力,但是对 business的理解和沟通能力相对较弱,所以不适合提升为管理人员。(参考Dilbert定律)。与其让其做一个低效的管理人员,不如继续做一个高效的程序员(参考Peter定律)。但是不提升,又不能使程序员获得满足。

  这种情况不仅适用于普通企业的IT部门,也适用于IT企业。这本书的建议(大多数公司也确实是这么做的)是,在技术领域进行级别划分,比如Apprentice, Junior, Senior, Master, Guru……

  Rolia上有个贴子说得好,从驴子到白马,只有四级而已。

No comments: