周末公司召开了一个工程师大会,在总结自身经验教训的同时,还外请了一些人来给我们做报告,其中就有一个Google 的测试经理。他用一个小时的时间尽可能详尽地给我们介绍了一下 Google 的开发流程和特点,再一次加强了了 Google 在我心目中的形象:工程师的天堂。Q&A 环节中有一个同事问了一个问题,他说:
“你以前也待过很多家公司,像华为等,你能说明一下为什么只有 Google 产生了工程师文化吗?”
那位经理说他自己也不清楚,但给我们讲了一个很有趣的小故事:
Google 早期的时候只有工程师,没有测试人员,后来活多了实在干不过来了,就从外面找了一些外包公司的测试人员帮忙。做了一个项目之后,发现这些测试人员确实有作用,于是就决定把这些测试人员都招聘进来。这个决定是 Google 最后悔的决定之一,因为每个人都比较习惯于以前工作的环境,所以这些招聘进来的人强有力地对 Google 原有的工程师文化造成了影响。后来 Google 就慢慢地把这些人职责转移了,给了他们一些稀奇古怪的职位,让他们做一些其它的工作,比如写文档,保证工程师文化不受影响。
我个人觉得,Google 的工程师文化的形成,应该有下面几个方面的原因:
1. 创始人是斯坦福的两位计算机博士,他们自己就是工程师。
2. 对工程师的信任和尊重。大家都知道,Google 的每位员工都有20%的工作时间可以做自己想做的事情,很多产品就是用这 20% 的时间做出来的,比如众所周知的 Gmail 。一般这样的项目都是几个工程师有兴趣做,然后做出来给大家看,大家觉得不错,就可以立项。我专门就这个事情问了那位Google的经理一个问题:“既然很多事情都是工程师之间合作做出来的,那什么时候产品经理会介入呢?另外,Google 为什么会觉得整天和机器打交道的IT男会了解用户?”那位经理说“Google 不会觉得工程师不了解用户,而且 Google 的产品经理和其它公司的产品经理职责可能不一样,他们是不负责定义产品功能的,而是负责一些其它的工作,比如全球性的推广。” 我非常喜欢这个答案。只有这样做才可以调动工程师最大的积极性,因为把最有创意的那部分工作——设计——归还给了工程师。反观一下国内的情况,对工程师的态度就是:做好你的技术,其它都不要管。你一个整天对着机器很少和人打交道的家伙怎么能做让用户喜欢的产品呢?所以这些公司的工程师就算感觉到产品不好也不会发表意见,实现功能的时候也不会注意开发质量。就算这些工程师的水平和Google的一样,在无法发挥自主性的环境中,照样是一潭死水。
3. 了解工程师。如果一个工程师工作热情不是很高,老板一般都会想:“是不是加班太多了?还是想要加薪?”,他绝对不会想到这个工程师只是因为当前使用的编程语言是 Java, 而他喜欢Ruby 。就算这个工程师如实和老板讲“我想去写Ruby”,老板很有可能也会觉得他是在为加薪找借口,这样的老板以为所有员工的问题都是薪水或福利的问题。Google 就不一样了,你进去之后可以加入一个你感兴趣的项目,而且如果做后端做得太久,还可以转换角色去做前端,它相信乐趣是最重要的。
4. 招聘非常严格。看过 Google 招聘的都知道,Google 基本不会招聘什么“JAVA工程师”,“C++工程师”等职位,它只招聘“工程师”,只要底子够好就行。只有这样的人,才可以施行“ code review 不合格就不能提交代码”的制度,才可以在追求速度的同时还可以兼顾到开发质量。
另外,我觉得公司文化就是一个整体,不可能出现这样一个现象:只有技术部门有工程师文化,然后整个公司是另外一种文化。就算出现了这种现象,那么肯定也是暂时的,工程师文化会逐渐被整体的文化所影响。
希望我有生之年可以看到中国出现一家真正有“工程师文化”的公司,而不是打着“工程师文化”的幌子到处挖人的公司。
全部0条评论
快来发表一下你的评论吧 !