
现在HR和猎头也知道,挖程序员不能只讲钱和项目。多少被称为工程师文化的公司在北京上海遍地开花,但什么是“工程师文化”?谁能给个准确的定义?
有人说什么文化就是什么说了算,工程师文化就是工程师说了算。这太肤浅了。也有人说,工程师文化就是上下班自由,管理松散,做喜欢的项目。我觉得这样还是不合适。这些人只谈工程师文化给工程师带来的权利,不提权利的片面确定。
工程师文化的核心是什么:价值观。然而,它不仅仅是价值观。我在这篇文章中提到了工程师文化:
首先,世界上大多数软件公司如果采用工程师文化的模式来运营,都会死得很惨。
其次,世界上绝大多数号称工程师文化的软件公司,也不过是所谓的知其然。
最后,世界上大多数成功和伟大的软件公司都不是工程师。
我来说说我眼中的工程师文化应该是怎样的。每个人都有不同的价值观。当然不是说就一定好,而是真的不好玩。之后你就会明白,世界上真正能拥有所谓“工程师文化”的企业是极少数。
做就是了
“自己做吧。”我把它放在第一位。做法是怎样的?
创始人玛丽瓦格纳将亲自使用玫琳凯化妆品,确保一流品质;
扎克伯格亲自审阅了脸书的代码;
莱纳斯说:“空谈是廉价的,给我看看代码。”。
但是现在很多管理类课程都是这样给学生洗脑的:“克服自己做的问题”“走出自己做的误区”。在一个有工程师文化的企业中,管理者应该扮演什么角色?企业的核心人才不应该是指导国家的统帅,而应该是脚踏实地的实践者,开始做的工程师,习惯马上做的工程师。“马上做”往往能催生很多创新的想法,因为这些想法转瞬即逝。
Google里流传着一个小故事:每周三,一些印有Google logo的t恤会不定期的放在二楼的铁柜上,大家可以拿走,很快就用完了。后来有人注意到铁柜的对面安装了摄像头,干脆写了个软件,分析摄像头的监控图像,判断铁柜的门是否开着。如果是的话,很可能是新t恤又到了。发邮件到“t恤报警”的群里,告诉大家赶紧抢。这是一种带有黑客色彩,少啰嗦,先做事的实用文化。
硅谷很多伟大的公司都是从车库里的电脑起家的,而不是拿出一笔钱,等着一批人,然后等着发财。很多人只看到了硅谷工程师好的一面(比如他们的工资比美国其他地区高20%左右),却不知道他们的平均工作时间远远超过其他地区的工程师。因此,工程师文化不仅仅是权力,还要求每个人都应该有足够的能力做很多事情。
一个足够小的团队
脸书自己的工程师文化包括这三点:
快速移动并打破东西
对小团队的巨大影响
大胆创新
我特别想谈谈第二点。在脸书,大多数功能系统是由一个或三个工程师组成的小团队完成的。平均每个脸书的工程师(注意我说的是“工程师”,不是任何员工)服务120万用户,而谷歌是190万,亚马逊是96万,微软是75万。
团队有多小?有一种说法叫“披萨队”,换句话说,可以喂一两个披萨的队伍。你认为有多少人?但是小团队并不意味着要做一件小事,上面的例子已经说过了。
小团队的好处是灵活快捷,大大降低了沟通交流的成本。不要投票,少发邮件多喊,说到做到就好。
37Signals是另一家将小团队做到极致的公司。整个公司的工程师遍布全球,但只有35个人。我们必须激励人们一起工作,做出伟大的产品吗?
工程师的决策权
首先是产品的决策权。产品的决策权体现了公司对工程师对产品观点的认可,这是最重要的。
在华为,市场部说了算。当市场说它需要时,它就必须被制造出来。项目计划都是上下颠倒的,基本上没有什么东西是程序员可以讨论的。我经历过这样的事情。一个客户发来邮件,大致说做这样的功能该有多好。然后,在市场部提出要求后,R&D团队照做了。过了几个月,功能上线,客户惊讶的说:“我怎么不记得这个了?”。
在腾讯,产品经理就是老板。网上有一个关于腾讯“5000个产品经理”的传言,真的很夸张。不知道是真是假,但是在腾讯待过的同事给我讲了很多关于产品经理话语权的趣事。产品经理的声音很棒。从产品设计到项目进度,他都是整个工作的统筹者,掌控全局。
为了让工程师决定产品是什么样子,工程师必须能够直接接触客户,否则就没有主人翁感。这也是为什么大部分有工程师文化的公司都是互联网公司,因为对于工程师来说,互联网产品近在咫尺,感情丰富,想法很多。
另一方面,有工程师文化的公司往往会做简单的产品,因为工程师喜欢优雅简单的群体。
在亚马逊,每年都会有工程师投票选出最差的项目和工具,前N名会被限期更改或报废(虽然亚马逊不完全是工程师文化公司,但也很接近了)。这件事是工程师决定的,不是营销人员。
当然,决策权远不止于产品。还包括部分进度、产品功能优先级等等。不要觉得不可思议。工程师是最终实现产品的人。如果他没有话语权,那就太不可思议了。
极客的工作环境
这部分观点我甚至不是100%清楚,但这几点是毋庸置疑的:
代码共享。连查看其他团队代码都要申请许可的公司,就更别提工程师文化了。
互联网的可访问性。没有解释。
时间控制有相当大的自由度。你可以关注过程,也可以关注结果,但重要的是关注人本身,关注他们做的事情,而不是那些制造障碍、降低生产力的规则。通勤信用卡系统就是这样一个规则。另外,平均需要预留一定比例的时间给工程师自己安排。比如在谷歌,这个数字是20%。一个好的工程师肯定知道他应该做什么。一些伟大的产品就是从这个时候诞生的。
允许你选择你最喜欢的项目,甚至你最喜欢的产品经理。这种选择不是无条件的,但却是双赢的。
地位平等。是希望有人和你讨论问题,还是希望有人做你话后面的附庸?和谐是最坏的结果。我们需要争论一下。项目中需要有足够多的不同意见。不要藏着掖着,直接指出来,但事与人无关,不管你的级别,也不管他的头衔。这就是平等。
合适的工作环境。合适的环境可以明显提高工作效率。可能没有《软件随想录》描述的那么理想,但是我想要一个安静的环境,两个显示器,一把高度合适的椅子,很快就可以得到。
格蕾丝着装规范。这个列在这里吗?是的,你可以穿拖鞋上班,这在我看来是不可想象的。
本质上,这几项可以写成“对工程师的信任和尊重”。如果这些你都做不到,那就跳过今天的话题吧。经历了很多背道而驰的故事。例如,您必须申请从互联网下载jar包的许可。比如修改一点代码,需要层层审批。比如你需要偷偷摸摸的去看别人写的代码.
寻找最优秀的人才
文化不是领导决定的,是慢慢酝酿的。招不合适的人会污染工程师文化。如果不幸招到了这样的人,就必须淘汰这些人,比如离职,或者让他们去做非工程师的事情。这绝不是危言耸听,谷歌就做过这样的事。
但是,认可并践行工程师文化只是招聘的前提条件。更重要的是,我们必须招募有能力和优秀的人。
来亚马逊通常需要两轮电话面试和五轮面对面面试。在所有的面试人员中,有一位经验丰富的面试人员拥有杠杠升的认证,这是为了确保招聘到的人才必须保持在当前团队前50%的工程师中而设置的。酒吧经营者拥有最终否决权。只要他不承认,其他人都同意也没用。
在脸书,新雇佣的工程师可能会接受为期4-6周的训练营培训,以熟悉项目、修复bug,并向高级工程师学习培训课程。10%左右的新兵如果完成不了这个过程,就会气馁。
工程师是从业者,也就是说他要做各种各样的事情。我知道有些公司有各种各样的职位,比如SA、SE、QA、SDE、SQA等等。有些根本不知道自己是做什么的。有些公司甚至把软件工程师拆分为编码岗位和设计岗位,但对于有工程师文化的公司来说,工程师必须是多面手。
多才多艺的直接原因来自于小团队。小团队意味着你不能分配太多的角色。你可以擅长UI和DBA,但是一个写C代码的人还是会画界面.我想你知道我的意思。
另一个重要的条件是候选人的态度。对技术的态度,对工作的态度,对生活的态度。宽容的文化可以产生优秀的产品,培养出一群懒人,这也是为什么任何制度都要匹配遵守它的人。没有这样的人,你玩不过工程师文化。
当然,工程师文化远不止以上这些,但在我看来,这是核心价值观在工程师文化中的几种体现。
最后补充一点,一个公司的文化会随着公司的扩张而改变,看看2005年的百度。先不说什么叫符合工程师文化,至少敢说这样的话,但是现在呢?(2009年,中国顶级博主、著名互联网评论家keso说:“根据我得到的信息,今天的百度已经不是上市前的工程师天堂了。今天的百度几乎是三四年前的10倍,员工的业绩压力很大。对于大多数员工来说,百度和其他公司没什么区别。”)










