我眼中的工程师文化

标签: 工程师 文化 | 发表时间:2012-12-10 02:00 | 作者:
出处:http://www.iteye.com

现在HR和猎头也懂得,挖程序员不能光讲钱和项目了,多少号称工程师文化的公司花开北京上海,可是到底什么是“工程师文化”?谁能给一个准确的定义?

有人说,什么文化就是什么说了算的意思,工程师文化就是工程师说了算。这未免也太肤浅了。也有人说,工程师文化就是自由上下班、松散管理,做喜欢的项目。我想这依然是不恰当的,这些人只说出了工程师文化给工程师带来的权利,更何况这种对权利的认定还是片面的。

工程师文化的核心是什么:价值观。但是,它不止价值观。我在 这篇文章中提到过工程师文化:

  • 首先,这个世界上大部分软件公司采用工程师文化的模式来运作的话,都会死得很惨。
  • 其次,这个世界上大部分号称工程师文化的软件公司,都只是号称号称而已。
  • 最后,这个世界上大部分成功和伟大的软件公司,都不是工程师文化的。

下面我谈一谈我眼中的工程师文化应该是怎样的,每个人的价值取向不同,当然并不是说它一定好,不过它真不容易玩得转。之后你会明白,世界上能真正所谓“工程师文化”的企业寥寥无几。

Just Do It

“身体力行”。我把它放在第一条的位置。什么是身体力行?

  • 创始人Mary Wagner要亲自使用玫琳凯化妆品,以保证质量一流;
  • Zuckerberg亲自评审Facebook的代码;
  • Linus说:“Talk is cheap, show me the code.”。

但是现在多少管理课程都在这样给学生洗脑:“克服亲力亲为的毛病”,“走出亲自去做的误区”。工程师文化的企业中,管理者又该扮演一个怎样的角色?企业的核心人才不应是这些指点江山的指挥者,而是脚踏实地的实践者,是那些动手去做的工程师,并且是那些习惯于马上去做的人。“马上去做”往往可以诞生许多创新的点子,因为这些点子转瞬即逝。

在Google流传着这样一个小故事:每周三在二楼的铁柜上不定期地都会放置一些带有Google徽标的T恤,大家都可以拿取,很快就会拿完。后来有人注意到这个铁柜对面安装了摄像头,索性写了一个分析摄像头监控图像的软件,判断这个铁柜的门是不是开着的,如果是,多半就是新T恤又到了,发送邮件到“T恤警报器”的群组中,告诉大家快去抢吧。这是一种带有黑客色彩的实践文化,少啰嗦、先做事。

硅谷的许多伟大的公司都是从车库里的电脑前开始的,而不是拿出一笔钱,等来一票人然后坐等发财。很多人只看到了硅谷工程师光鲜的一面(比如薪水要高出美国其它地区20%左右),殊不知他们的平均工作时间远远超过其他地区的工程师。所以说,工程师文化,不是只有权力的一面,它对工程师的要求,是每个人都要足够能干,都要做许多的事。

足够小的团队

Facebook自己总结的工程师文化包括这三点:

  1. Move Fast and Break Things
  2. Huge Impact with Small Teams
  3. Be Bold and Innovative

尤其我要说一下第二点,在Facebook,多数功能系统都由1到3位工程师组成的小团队完成。平均下来,Facebook 每位工程师(注意我说的是“工程师”,不是任意员工)服务120 万名用户,Google的这个数则是190万,Amazon是96万,微软是75万。

团队多小才算足够小?有一种说法叫“Pizza Team”,换言之一两张披萨饼就可以喂饱的团队,你说能有多少人?但是团队小并不意味着做的事情小,上面的例子已经说到了。

小团队的好处,在于灵活、快速,极大减少沟通和交流的成本。不用投票,少发邮件多喊话,说做就做。

37Signals是另一家把小团队做到极致的公司,整个公司的工程师遍布全世界,但是也只有35人而已,让全世界的人一起工作,做出伟大的产品,一定要兴师动众吗?

工程师的决策权

首当其冲的是产品的决策权。产品的决策权反映了公司对于工程师对产品观点的认可,这才是最重要的。

在华为,市场部门说了算。市场说什么时候要,什么时候就得给做出来,项目计划全部都是倒排的,程序员基本没有什么可以商量的余地。我经历过这样一则事情,有一位客户发了一封邮件,大致是说要做某某功能该有多好啊,然后,然后市场部门一下需求,研发团队就去做了,过了几个月,该功能上线,客户惊讶地说:“我怎么不记得有这事啊?”。

在腾讯,产品经理是老大。网上有一个腾讯“5000个产品经理”的传闻,实在觉得夸张,不知是真是假,但是我的在腾讯呆过的同事,则告诉了我不少关于产品经理话语权的趣事。产品经理具有很大的话语权,从产品设计到项目进度安排,是整个工作的协调人,掌控全局。

要让工程师去决策产品做成什么样子,工程师必须能够直接和客户接触,否则主人翁意识无从谈起。这也是为什么大部分工程师文化的公司都是互联网公司,因为互联网产品对于工程师来说,就在身边,感触丰盈,理念和想法就很多。

另一方面,工程师文化的公司往往会做出简洁的产品来,因为工程师是喜欢优雅和简洁的群体。

在Amazon,每年工程师们都会投票,投那些最烂的项目和工具,投出来位列Top N的几个,都要限期改掉或者废掉(虽说Amazon并不能完全算一家的工程师文化的公司,但是很接近了)。这件事情就是工程师定的,而不是市场营销人员。

当然,决策权方面远不止产品。还包括部分进度、产品特性的优先级等等。不要觉得不可思议,工程师是去最终落实产品的那个人,如果他都没有话语权,那才不可思议。

Geek的工作环境

这部分的观点连我自己都没有百分百想清楚,但是这几点是毋庸置疑的:

  • 代码共享。连查看别的团队的代码都要申请权限的公司就别提什么工程师的文化了。
  • 无障碍访问互联网。不解释。
  • 时间支配有相当的自由度。你可以关注过程,也可以关注结果,但是重要的是关注人本身和做的事,而不是那些制造障碍和降低生产力的规矩。上下班刷卡制度就是这样的一个规矩。另外,平均下来需要有一定比例的时间要留给工程师自己安排,例如在Google这个数是20%。优秀的工程师绝对知道自己该做些什么。一些伟大的产品都是从这样的时间中诞生的。
  • 允许选择喜欢的项目,甚至选择喜欢的产品经理。这样的选择并不是无条件的,但这却是一件双赢的事情。
  • 平等的地位。你是希望有人和讨论问题,还是希望有人附庸在你的话后面?一派和谐是最糟糕的结果。我们需要有争论,项目中需要有足够多的不同意见,不要遮遮掩掩的,直接指出,但是对事不对人,不用在乎你的等级他的头衔,这就是平等。
  • 合适的工作环境。合适的环境可以明显提高工作效率。兴许没有必要像《软件随想录》里描述的那样理想,但是我想要安静的环境、两个显示器以及一个高度合适的椅子,那就可以很快得到。
  • 宽限的着装要求。这一条也列在这里?对,你可以穿着拖鞋去上班,这对曾经的我来说是不可想象的。

本质上,这几条都可以写成“对工程师的信任和尊重”。如果这几点都做不到的话,对于今天的话题,就先省省吧。我经历过不少背道而驰的故事。比如从互联网上下载一个jar包都要申请权限,比如改一点代码需要层层审批,再比如想看别人写的代码都需要偷偷摸摸的……

寻找最好的人才

文化不是领导说了算的,而是慢慢酝酿达成的。招聘不合适的人,就会对工程师文化造成污染,如果不幸招入这样的人,这些人必须清除出去,例如离职或者让他们做非工程师的事情等等。这绝非危言耸听,Google就做过这样的事情。

然而,认可和实践工程师文化只是招聘的一个先决条件。更重要的时候,必须招能干和优秀的人。

来Amazon通常要经过2轮的电话面试和5轮的face-to-face面试,对于所有的面试官中,有一名经验丰富的面试官拥有Bar Raiser的认证,目的是为了保证招聘的人才必须要保持在当前团队的工程师中前50%而设定的,Bar Raiser拥有最终否决权,只要他否定的人,其他人全部同意也没用。

在Facebook,新入职的工程师大概会进行一个4-6周的Boot Camp训练来熟悉项目,修补bug,以及学习来自资深工程师的训练课程,大概10%的新兵无法完成这个过程被劝退。

工程师是一名实践者,这就意味着他要做各种各样的事情,我知道有的公司分门别类了各种职位,SA、SE、QA、SDE、SQA……数不胜数,有的压根儿都不知道是做什么的,甚至有的公司把软件工程师拆分成编码岗位和设计岗位都分开,但是对于工程师文化的公司来说,工程师必须要多能。

多能的直接原因来自于小团队,小团队意味着你没有办法去分配太多的角色,你可以擅长做UI,你可以擅长DBA,但是一个写C++代码人照样可以去画界面……我想你懂我的意思。

另外一个重要的条件是候选人的态度。对技术的态度、对工作的态度,以及对生活的态度。宽限的文化下可以诞生优秀的产品,也可以培养一票懒人,这就是为什么任何制度都要和遵守制度的人相匹配。没有这样的人,你玩不转工程师文化。

当然,工程师文化远不止上面说的这些,但是在我看来这些是工程师文化里核心价值观的其中几个体现。

最后,我想补充一点,一家公司的文化会随着公司的扩张而变味,且看2005年的百度,先别谈哪些方面是符合工程师文化的,起码 敢说出这样工程师范儿的话来,可是现在呢?(在2009年中国头号Blogger、著名互联网评论家 keso这样说:“今天的百度,据我所得到的信息来看,早就不是上市前那个工程师乐园了。今天的百度,规模比三四年前大了差不多10倍,员工的业绩压力很大,对大多数员工来说,百度跟其他公司没差别。”)

文章系本人原创,转载请注明作者和出处( http://www.raychase.net

注:本博客已经迁移到个人站点  http://www.raychase.net/ ,欢迎大家访问收藏,本ITEye博客在数日后将不再更新。



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [工程师 文化] 推荐:

我眼中的工程师文化

- - ITeye博客
现在HR和猎头也懂得,挖程序员不能光讲钱和项目了,多少号称工程师文化的公司花开北京上海,可是到底什么是“工程师文化”. 有人说,什么文化就是什么说了算的意思,工程师文化就是工程师说了算. 也有人说,工程师文化就是自由上下班、松散管理,做喜欢的项目. 我想这依然是不恰当的,这些人只说出了工程师文化给工程师带来的权利,更何况这种对权利的认定还是片面的.

中国创业团队需要怎样的工程师文化?

- - InfoQ cn
《打造Facebook》一书中作者介绍了Facebook工程师文化的主要特点,包括:工程师根据兴趣选择任务团队;工程师主导任务的整个过程,并对结果负责;工程师决定一功能做还是不做等等. 知乎社区针对“国内的文化和现状是否可以照搬Facebook的行事,是否需要接地气,也就是针对国内的具体情况做些调整.

打造工程师文化可以做的十件事

- - 36氪
我作为面试官最喜欢问工程师的问题是要告诉我在他们以前的公司,他们喜欢和不喜欢的关于工程师文化的事. 我采访了很多人 - 其中许多来自顶尖高科技公司,如 Facebook,谷歌,亚马逊,Pinterest- 随着时间的推移,这种面试问题也告诉我优秀工程师喜欢和尽量避免地方. 根据采访答复和我个人经验,我总结了为建立一个良好的工程文化一个团队可以做的十件事情.

阿里资深技术专家行易:我所理解的工程师文化

- - IT瘾-dev
对于什么是工程师文化,很多人都能说出很多关键词,比如:匠心,创新,专业,担当,开放……. 然而如果要用一句话来描述什么是工程师文化,如何判断一家公司是不是一家工程师文化的公司,却不是一个很容易的问题. 个人认为要回答这个问题,首先需要从了解工程师是一群什么样的人着手. 工程师其实就是解决问题的人,他们发现问题,找出规律,使用适当的工具和手段来解决问题.

遭遇工程师

- Chrisoul - 槽边往事
谢谢大家的关心,几个小时前Google Plus恢复了我的帐号,看来暂时我还不用离开. 因为前一篇Blog的缘故,有些网友猜测是因为博文而使得我获释. 虚荣心让我想立即承认这一点,但是对不起,真的不是这样的,我的Blog并没有那么大影响力,尤其是在英文世界里. 而且,因为我上次张贴了一张人类进化谱系的漫画,我在国外驻京记者圈里成功赢得了“种族主义者”这一臭名昭著的称号,大概没有什么人愿意帮助一个黄种人中的“种族主义者”.

工程师效率

- - 后端技术 by Tim Yang
很好奇程序员这个群体这些年效率是变低了还高了,在社交媒体中,各个阶层的兴趣圈都有自己的段子手及内容帐号,段子手发的内容会让你笑cry,内容帐号发的内容可让你享受阅读的快感,这些快感会比写代码见效快. 写完一个模块的代码通常要一整天或者几天时间,代码调通运行没有问题才会体验到愉悦,而社交媒体只需要一些碎片时间就可以达到高潮.

知乎招募工程师

- oxygen - 知乎的博客
Python工程师  有两年以上软件开发经验. 至少一年 Python 开发经验. 对开源技术有强烈的兴趣和爱好,参与或向开发者提交过bug和patch. 热爱探索和钻研,熟悉文本挖掘、自然语言处理相关知识能使用C/C++独立实现复杂的算法结构熟悉开源搜索项目(Lucene,Sphinx等)极强的逻辑分析能力对开源技术有强烈的兴趣和爱好,参与或向开发者提交过bug和patch认为自己是技术geek有极强的责任感.

浅谈技术工程师的进步

- belltoy - caoz的和谐blog
本来发微博的,越说越多,算了,发篇博客把,说点工程师如何取得进步的问题,. 1:描述和记录问题要精确,数字化,“负载很高,连接很多,速度很卡”这种描述都是不对的,负载uptime值多少,连接数具体有多少,平时正常多少,高峰多少,访问延迟有多大,全部要数字化,而且要有问题状况下和平时的对比,养成这样的习惯,技术分析能力才会有进步.

工程师与会计 [幽默笑话]

- Liqun - 经典网文_来福岛爆笑娱乐网
  有三个工程师和三个会计一起去外地开会,上火车时三个会计买了三张车票,而三个工程师却只买了一张票,会计很不解,工程师说:“上了车你们就知道了”.   火车刚一开动三个工程师就挤进了一个厕所,列车员开始检票最后走到了厕所外边,她敲了一下门说:“检票”. 然后门开了一个小缝,从里面递出一张车票.   在外地开完会后在返回的时候会计们觉得工程师们的方法很不错于是也只买了一张车票,而这次工程师一张票也没有买,会计们又很不解,工程师还是说:“上了车你们就明白了”.

[北京]python工程师 - 创新工场

- Ken - python.cn.jobs
创新工场旗下旅游SNS网站团队招聘python工程师. 职位要求:1、两年以上软件开发经验.                     2、一年以上python开发经验.                     3、有强烈的责任感,对开源技术有强烈的兴趣和爱好,有创业兴趣.                     4、算法强大,有大规模数据处理经验优先.