现在HR和猎头也懂得挖程序员不能光讲钱和项目了多少号称工程师文化的公司花开北京上海可是到底什么是“工程师文化”?谁能给一个准确的定义?
有人说什么文化就是什么说了算的意思工程师文化就是工程师说了算这未免也太肤浅了也有人说工程师文化就是自由上下班松散管理做喜欢的项目我想这依然是不恰当的这些人只说出了工程师文化给工程师带来的权利更何况这种对权利的认定还是片面的
工程师文化的核心是什么价值观但是它不止价值观我在这篇文章中提到过工程师文化
● 首先这个世界上大部分软件公司采用工程师文化的模式来运作的话都会死得很惨
● 其次这个世界上大部分号称工程师文化的软件公司都只是号称号称而已
● 最后这个世界上大部分成功和伟大的软件公司都不是工程师文化的
下面我谈一谈我眼中的工程师文化应该是怎样的每个人的价值取向不同当然并不是说它一定好不过它真不容易玩得转之后你会明白世界上能真正所谓“工程师文化”的企业寥寥无几
Just Do It
“身体力行”我把它放在第一条的位置什么是身体力行?● 创始人Mary Wagner要亲自使用玫琳凯化妆品以保证质量一流
● Zuckerberg亲自评审Facebook的代码
● Linus说“Talk is cheap show me the code”
但是现在多少管理课程都在这样给学生洗脑“克服亲力亲为的毛病”“走出亲自去做的误区”工程师文化的企业中管理者又该扮演一个怎样的角色?企业的核心人才不应是这些指点江山的指挥者而是脚踏实地的实践者是那些动手去做的工程师并且是那些习惯于马上去做的人“马上去做”往往可以诞生许多创新的点子因为这些点子转瞬即逝
在Google流传着这样一个小故事每周三在二楼的铁柜上不定期地都会放置一些带有Google徽标的T恤大家都可以拿取很快就会拿完后来有人注意到这个铁柜对面安装了摄像头索性写了一个分析摄像头监控图像的软件判断这个铁柜的门是不是开着的如果是多半就是新T恤又到了发送邮件到“T恤警报器”的群组中告诉大家快去抢吧这是一种带有黑客色彩的实践文化少啰嗦先做事
硅谷的许多伟大的公司都是从车库里的电脑前开始的而不是拿出一笔钱等来一票人然后坐等发财很多人只看到了硅谷工程师光鲜的一面(比如薪水要高出美国其它地区%左右)殊不知他们的平均工作时间远远超过其他地区的工程师所以说工程师文化不是只有权力的一面它对工程师的要求是每个人都要足够能干都要做许多的事
足够小的团队
Facebook自己总结的工程师文化包括这三点Move Fast and Break Things
Huge Impact with Small Teams
Be Bold and Innovative
尤其我要说一下第二点在Facebook多数功能系统都由到位工程师组成的小团队完成平均下来Facebook 每位工程师(注意我说的是“工程师”不是任意员工)服务 万名用户Google的这个数则是万Amazon是万微软是万
团队多小才算足够小?有一种说法叫“Pizza Team”换言之一两张披萨饼就可以喂饱的团队你说能有多少人?但是团队小并不意味着做的事情小上面的例子已经说到了
小团队的好处在于灵活快速极大减少沟通和交流的成本不用投票少发邮件多喊话说做就做
Signals是另一家把小团队做到极致的公司整个公司的工程师遍布全世界但是也只有人而已让全世界的人一起工作做出伟大的产品一定要兴师动众吗?
工程师的决策权
首当其冲的是产品的决策权产品的决策权反映了公司对于工程师对产品观点的认可这才是最重要的在华为市场部门说了算市场说什么时候要什么时候就得给做出来项目计划全部都是倒排的程序员基本没有什么可以商量的余地我经历过这样一则事情有一位客户发了一封邮件大致是说要做某某功能该有多好啊然后然后市场部门一下需求研发团队就去做了过了几个月该功能上线客户惊讶地说“我怎么不记得有这事啊?”
在腾讯产品经理是老大网上有一个腾讯“个产品经理”的传闻实在觉得夸张不知是真是假但是我的在腾讯呆过的同事则告诉了我不少关于产品经理话语权的趣事产品经理具有很大的话语权从产品设计到项目进度安排是整个工作的协调人掌控全局
要让工程师去决策产品做成什么样子工程师必须能够直接和客户接触否则主人翁意识无从谈起这也是为什么大部分工程师文化的公司都是互联网公司因为互联网产品对于工程师来说就在身边感触丰盈理念和想法就很多
另一方面工程师文化的公司往往会做出简洁的产品来因为工程师是喜欢优雅和简洁的群体
在Amazon每年工程师们都会投票投那些最烂的项目和工具投出来位列Top N的几个都要限期改掉或者废掉(虽说Amazon并不能完全算一家的工程师文化的公司但是很接近了)这件事情就是工程师定的而不是市场营销人员
当然决策权方面远不止产品还包括部分进度产品特性的优先级等等不要觉得不可思议工程师是去最终落实产品的那个人如果他都没有话语权那才不可思议
Geek的工作环境
这部分的观点连我自己都没有百分百想清楚但是这几点是毋庸置疑的● 代码共享连查看别的团队的代码都要申请权限的公司就别提什么工程师的文化了
● 无障碍访问互联网不解释
● 时间支配有相当的自由度你可以关注过程也可以关注结果但是重要的是关注人本身和做的事而不是那些制造障碍和降低生产力的规矩上下班刷卡制度就是这样的一个规矩另外平均下来需要有一定比例的时间要留给工程师自己安排例如在Google这个数是%优秀的工程师绝对知道自己该做些什么一些伟大的产品都是从这样的时间中诞生的
● 允许选择喜欢的项目甚至选择喜欢的产品经理这样的选择并不是无条件的但这却是一件双赢的事情
● 平等的地位你是希望有人和讨论问题还是希望有人附庸在你的话后面?一派和谐是最糟糕的结果我们需要有争论项目中需要有足够多的不同意见不要遮遮掩掩的直接指出但是对事不对人不用在乎你的等级他的头衔这就是平等
● 合适的工作环境合适的环境可以明显提高工作效率兴许没有必要像《软件随想录》里描述的那样理想但是我想要安静的环境两个显示器以及一个高度合适的椅子那就可以很快得到
● 宽限的着装要求这一条也列在这里?对你可以穿着拖鞋去上班这对曾经的我来说是不可想象的
本质上这几条都可以写成“对工程师的信任和尊重”如果这几点都做不到的话对于今天的话题就先省省吧我经历过不少背道而驰的故事比如从互联网上下载一个jar包都要申请权限比如改一点代码需要层层审批再比如想看别人写的代码都需要偷偷摸摸的……
寻找最好的人才
文化不是领导说了算的而是慢慢酝酿达成的招聘不合适的人就会对工程师文化造成污染如果不幸招入这样的人这些人必须清除出去例如离职或者让他们做非工程师的事情等等这绝非危言耸听Google就做过这样的事情然而认可和实践工程师文化只是招聘的一个先决条件更重要的时候必须招能干和优秀的人
来Amazon通常要经过轮的电话面试和轮的facetoface面试对于所有的面试官中有一名经验丰富的面试官拥有Bar Raiser的认证目的是为了保证招聘的人才必须要保持在当前团队的工程师中前%而设定的Bar Raiser拥有最终否决权只要他否定的人其他人全部同意也没用
在Facebook新入职的工程师大概会进行一个周的Boot Camp训练来熟悉项目修补bug以及学习来自资深工程师的训练课程大概%的新兵无法完成这个过程被劝退
工程师是一名实践者这就意味着他要做各种各样的事情我知道有的公司分门别类了各种职位SASEQASDESQA……数不胜数有的压根儿都不知道是做什么的甚至有的公司把软件工程师拆分成编码岗位和设计岗位都分开但是对于工程师文化的公司来说工程师必须要多能
多能的直接原因来自于小团队小团队意味着你没有办法去分配太多的角色你可以擅长做UI你可以擅长DBA但是一个写C++代码人照样可以去画界面……我想你懂我的意思
另外一个重要的条件是候选人的态度对技术的态度对工作的态度以及对生活的态度宽限的文化下可以诞生优秀的产品也可以培养一票懒人这就是为什么任何制度都要和遵守制度的人相匹配没有这样的人你玩不转工程师文化
当然工程师文化远不止上面说的这些但是在我看来这些是工程师文化里核心价值观的其中几个体现
最后我想补充一点一家公司的文化会随着公司的扩张而变味且看年的百度先别谈哪些方面是符合工程师文化的起码敢说出这样工程师范儿的话来可是现在呢?(在年中国头号Blogger著名互联网评论家keso这样说“今天的百度据我所得到的信息来看早就不是上市前那个工程师乐园了今天的百度规模比三四年前大了差不多倍员工的业绩压力很大对大多数员工来说百度跟其他公司没差别”)