覃超:Facebook的项目开发流程和工程师的绩效管理机制
非常感谢QCon给我这个机会给大家带来这个演讲,我将结合之前在Facebook的四年工作经验,介绍Facebook创新的管理方法以及整个工程文化的方法。
首先我想解释下为什么我要要说Facebook,并不是因为我在那里工作过。请看一下Facebook的简单发展史:
2004年,扎克伯格在大学宿舍里开发了Facebook,很长一段时间它只是一个简单的网站。但是后来,扩展到硬件,开发了各种产品,占据了整个社交领域、至少是北美的霸主地位。Facebook还推进了Connectivity(全民联网计划),给发展中国家提供免费的无线网络,再到后面做VR、AR、人工智能等现在非常火的新领域,形成了完整的生态圈。
看Facebook12年的发展,我一直在想一个问题,它是怎么从大学生宿舍里面一个简单的扎克伯格自己的个人项目,最终发展成为可以上市的公司?为什么现在整个生态链布局的已经非常完善了,这个公司是怎么做出来的?
我思考了很久之后,发现有一句话很有意思,21世纪最重要的是什么? 就是人才。现在互联网创业很多技术基本上都是开源的,很多硬件随手可得。
上图是在五年前硅谷非常流行的一张图,描述了大公司之间人才的流动情况。图中,每个圆点是一个公司,和圆点颜色相同的边的表示这个公司的人才流入。可以看到Facebook基本上和其他点的连线都是蓝色的,所有公司都在向Facebook输入人才。而谷歌基本上在从微软和雅虎搜集人才,在其他地方是流失人才的。
所以,五年前吸纳了很多人才,Facebook才有了今天的成就。有一群最牛的工程师、产品经理和设计师在这里,所以经过五年的布局和人才培养,才造就了现在相当于在全生态链都有的非常好的格局。
所以我在想,里面整个工程师文化做得比较牛的是什么。因为我自己在Facebook工作过,所以结合自身的经验带来了这个分享:在公司里面如何塑造比较好的公司文化?怎样把牛人吸引过来?
总共五个部分:首先是简单的自我介绍;接下来讲Facebook的工程师文化;以及团队的组成,包括设计师、产品经理和工程师;人员是如何管理的,怎样能有效的控制工程师的工作积极性以及给予相应的报酬;最后一点也是最重要的,以上这些对我们中国公司有怎样的启示。
1.我是谁:从Carnegie到Facebook
这是我的简历,大学和企业在技术方面的差距还是很大的。从Carnegie Mellon大学毕业后,我加入了Facebook,开始做的是CTO亲自主导的比较神秘的项目,后来去做了Facebook的APP,主要是iOS,也做过Voice Message等。
2.Facebook的工程师文化是怎样的?
特点一:Hack Culture
首先,Hack Culture,可以说是「黑客文化」。注意并不是字面意义上的「黑客」,在扎格伯格招股书上就说过,Hack Culture并不是黑别人电脑,而是一种态度和做事的方法。
现在去美国已经非常容易了,如果飞机降落在旧金山机场,着陆的时候会越过Facebook总部,建议大家到时候可以留意一下,这么一群建筑就是整个Facebook总部的样子。
特别有意思的是,这个广场的中间位置其实是有字的,在飞机上就会看得非常清楚,就是「Hack」。当我们说「我们要做一些Hack之类的」,它所表达的意思是「如果你有什么想法,有创新的、古灵精怪的各种想法都可以,马上去做!」
Hack的详细定义主要有三点:马上上手、快速搞定和持续迭代。而Growth Hack本质上即,在增长方面用Hack的方法解决。在Facebook绝对拒绝传统(大家一起来开会),而是技术驱动、数据为王。
做了一个东西之后先发给用户,看一下用户的反馈或者搞一批测试的用户,最后看多少用户觉得你这个好,通过数据的采集方式来论证是否可行。在Facebook有很多牛的方法可以搜集数据,所以可以很明显的看出这个版本用了AB测试之后到底是好还是坏。
在Facebook并没有一个专门的部门做Hack,而是鼓励所有的人去发挥自己的想象力,想做什么就可以做。公司的角落有各种各样的「Hack」,营造出一种气氛,鼓励员工去创新、鼓励那些牛逼的人待在这个地方工作,这样的公司文化是比较愉悦的。
特点二:Design+Engineering
如果说苹果是80%的精力很重视自己的设计,谷歌大概非常重视工程,在Facebook设计和工程各占一半,这可能和大家想的不一样。Facebook的新办公室出自一位著名的设计师,有各种奇妙的元素,开始我认为这些设计是浪费,后来我慢慢发现这种环境下工作心情非常愉悦,很多人自发工作10个小时左右,而且在这种环境下心情很放松的状态,更能激发你Hack。
后来我看到国内的一些互联网公司也有这种感觉,比如最近的创业贵族今日头条。所以如果想把互联网公司做大,就要有非常迷人的工程师文化,才能把牛逼的人招进来。
特点三:Open
我第一天入职Facebook的时候,最大的感受就是这三点:
首先是Open,非常Open的checking。新人第一天入职,领到一台电脑,连上网后,所有的数据都可以看到:产品的月活、日活、每一个功能,甚至可以像股票交易系统看到这样的数据,比如日本的用户30岁以下的人在用XX的时候情况到底怎样,从今年年初到现在变化是怎样的等。所有的东西都开放给工程师,没有任何权限。
同时在Facebook,有几个库任何人都有权限把它拷贝下来,我可以把安卓的库拉下来,也可以把PHP、推荐算法、引擎各种东西都可以拿下来,所有的权限都是开放的。但开放的前提,如果把公司内部信息泄漏出去就会被开掉,历史上也发生过好几起这样的事情。所以,在Facebook基本上不可能出现扎克发的一封邮件会被爆光。刚开始回国的时候,我很震惊,各种CEO的邮件都曝光在公众眼中,这种事在硅谷基本不可能。
所以Hack意味着内部信任和开放,同时对外也要遵守非常严格的规定。
最后一点就是Open Space,很开放的环境,给人的感觉是「网吧式的工作环境」。美国公司的办公室给人的感觉比较粗糙,比如说天花板上没有任何装饰,柱子上还有很多铁锈一样的东西,但是它又有非常细节的地方。
比如说,显示器都还不错,椅子右侧有两个按钮,一个是上升和下降,平时就是这么正常的工作,累了之后,久座对身体不好,就把这个放起来,可以站立式办公。站起来有一个好处是,当好几个人在一起讨论问题的时候,大家可以站在一起看。很多时候写代码的时候,把设计师也带过来,直接问「我做了一个原形你看有什么问题的吗?」有问题就直接改了。
扎克和所有人一样,坐这么一个位置,开放式工位旁边有很大的玻璃房子,用于开会,扎克没有太多的会议或者太多出去的时间,基本上每天在公司里面专注于自己的事务。
3.Facebook团队组成:设计师、产品经理和工程师
很多人问我,Facebook的项目团队是怎样的?一般情况,如果是做一个简单、小功能,一般是一个设计师加两个工程师;比较大的项目一点,比如说改版、在新版开发两三个功能,基本上两三个工程师一起做,XX产品团队就是五到十位工程师和两到三位产品经理,和国内配比差不多。
比较有意思,Facebook没有测试,他们比较贵,很多时候都是我们自己测。所以如果你要学习一点,在工程上面、执行上面让bug减少的话就是代码审核,交到这个里面的代码必须预先经过代码审核,直接看代码,没有什么问题就交,如果交进去后来发现Bug最后进行修复Bug花的时间和精力是之前的三倍十倍。
整个流程一开始规划要做什么东西、要做什么功能、需求是什么,接下来设计师和工程师互相合作,比较有意思的是整个流程每个决策都要参与,而且每个决策之间互相是交互式的,工程师也可以说这个需求根本不能做或者说不用之类的。
这是我的桌子,当时无意中拍了一张照片,后面两个都是工程师,我们在讨论我们的消息收发的时候是怎样的,那个时候已经过了下班的时间。
有人问,为什么你们的产品开发的比较快或者做得比较好,有没有什么秘诀?其实并没有太多的秘诀。
首先,人和人之间互相尊重,同时用Scrum,大家都坐在一起有任何进展马上当面沟通,虽然各种功能开个远程会议也行,但是我们鼓励在一起坐下来聊。团队最初期的时候就要开始协作,不同角色的人坐在一起讨论,不像国内分阶段分得特别明显。最后,设计师和开发者在工作的后期联系是非常紧密的。
最后,还有很重要的一点:Facebook有Zuck Review。也就是一些比较大的功能或产品,扎克会亲自安排看一下,也就是下面的人或者整个大的PM会亲自跟扎克说,这个地方你要过一遍,即使再忙他都会亲自来盯。
他会决定这个功能到底是做还是不做,决定产品的UI、功能、交互调整等,和网上风传的马化腾或张小龙其实风格差不多。我感觉Facebook和腾讯有些类似,都是一个产品型CEO主导的公司,扎克亲自来盯。
图上有两位中国人,其中一位是做广告的葛爷,给Facebook赚了很多钱。Zack有时会用一种直觉性和你讲一些话,很多功能被他砍掉,大部分时间他都是做出了正确的决定。
我认为Zack Review给人最重要的感觉就是鼓舞,如果这个东西扎克亲自来看,优先级方面会给下面的工程师或者整个团队一个非常明确的交代,这个事到底重不重要,需不需要。
关于优先级我想强调,大家都是技术人员,很多人在学校里面学习都不错,但在工作的时候发现有些不适应,需要注意的是在顶级公司或者特别牛逼的互联网公司工作,最重要的一点是分清优先级,这和学习的时候完全不一样。
工作中的事情是做不完的,你在工作的时候是连续的;不像在学校的时候一个学期隔着一个学期,最后期末考试,你知道自己有什么反馈。但是在工作的时候活是干不完的,所有东西,周围很多人让你做这个做那个,最重要做的事情是分清优先级,任何一个任务发过来的时候,心里面把它积累起来,哪个任务比较重要的先做,而不是交给你一个任务马上去做。
所以这里优先级,很多人我看到能力很强的人,最后遇到一个瓶颈,关键的问题是自己没有分清优先级,去做一些比较简单或者自己喜欢,或者是觉得自己能做的事情,而不是做最有影响力的事情。
另外,Zack Review可以从用户的角度进行分析。有的时我们候做一个产品或做一个技术,一直做的时候会把很多东西想的过于简单,而用户很多时候比较傻或能够一秒钟变傻,会觉得这个东西并不好用。这一点感觉扎克做得比较好,扎克自己不是特别懂技术细节,如果他觉得这个地方为什么这么难用,会给你讲很多有意思的东西。
4.Facebook是怎样利用OKR进行人才管理的?
接下来是整个Facebook的管理是怎样,即OKR。在Facebook,OKR意味着每六个月或每一年,制定一下你个人的目标、团队的目标以及公司的目标是什么,接下来行动就可以了。
第一点,在目标制定的时候你要以结果为导向或者以影响力为导向,不要为了做而做、或者做一些伪工作。在工作的时候很多人会做一些伪工作或者简单的工作,也就是自己愿意做的工作。
第二点,在Facebook会看每六个月、这半年的指标到底是什么东西。
第三点,每年6月底、12月底分别会做一次个人绩效评估。
最后,一个月之后评估结果就会出来,将决定你的奖金多少、是否升职,年终绩效评估将决定你的现金奖金是多少,年底除了现金还有股票的追加。不管任何级别,只要是工程师都会给你相应的股票,每过一年年底绩效评估将决定给你追加多少股票,一般都会追加股票。
具体的绩效考核怎么做?首先是国内常讲的360度评估,每6个月做一次,主要是四个部分:自评、同事评价、直属上司评价和老板评价。最后比较有意思的啊,你可以决定这个东西是否开放、被谁看到。一般有85%左右的人会选择开放,这是很恐怖的一个数据,基本上互相之间都是开放的。最后一点就是HR和整个Team calibration,从上面再校准一次。
最后就是奖金,给你规定一个奖金,在10%到25%的区间。看你在哪个级别,新进来是10%,越到上面越高。然后要乘以你的个人绩效,0表示没有奖金,一般在1.25左右,4.5就很高了。最后再乘以一个公司的绩效,公司那几个高层对公司这半年来做得怎么样打一个分,如果公司做得很不错,所有人的薪水都会加。
5.师夷长技以制夷:对中国互联网公司有什么启示?
最后,我想说说Facebook的管理之道对中国互联网公司的启示是什么。虽然在Facebook工作很好,但我更喜欢加入中国的公司或者自己创业,和一帮国人在一起做一个公司,有一个牛逼的产品能够放到国际市场上和西方对打。
首先想强调一点,很多人说Facebook工程师文化特别好,但是它的文化并不是与生俱来的。前几天为了佐证这个观点我专门看了一下2007年大家对于扎克的想法,那个时候公司一团糟,偶尔有几个比较厉害的人,Facebook现在比较牛的工程师文化是在2008年、由一个女孩Molly Graham逐步营造起来的。
Molly营造公司文化的过程,在这篇文章有阐述(http://firstround.com/review/80-of-Your-Culture-is-Your-Founder/)。当时,Facebook从400人快速增长到1000人,公司已经管不过来了,一团糟,大家互相埋怨对方,干活非常没有效率,做了很多低效的事情。那么怎么把公司管好,同时让更优秀的人可以持续进来呢?
Molly建议Facebook建立工程师文化,她当时让扎克自己写了十条他觉得比较牛逼的人是怎样的,当然那十条大部分就是由扎克自己的气质决定的。
这十条标准写出来之后,在公司里面反复强调,同时招人也招符合这些条件的人。所以可以得出一个结论:公司80%的文化来自于创始人。
最后一个结论,当一个公司变大,比如从A轮到B轮的时候,一定要营造出自己的文化。所以如果你是创始人,在公司还小的时候随便怎么弄,但是你自己要很明确有一杆秤;当公司到了500人以上的时候,这个时候一定要建立自己的公司文化。
对技术人员来说,判断公司文化很多时候都是看创始人,看创始人是干什么出身的。如果他是做生意的,那么这个公司或许并不是是你的最佳归属,即便讲得再牛。
举今日头条的例子,他们做得比较好,老大本身也是技术出身,他们公司对技术人员的待遇非常好,还去硅谷挖了很多牛逼的人,把公司氛围营造得非常好。所以看创始人是可以看出来这个公司文化到底是怎样的。
对任职管理者的工程师来说,在创业的过程当中有四点需要注意:
第一,盯一线产品。下面的人不怕你challenge他,怕的是把这个东西做完之后上面的人不看,他就会觉得自己所有的辛苦努力全部都浪费了。
第二,6个月要做一次Performance Review,这将决定员工的奖金和股票。
第三,Code Review。在工程方面并不是用最好的技术最重要,而是把Code Review加进来,这并不是为了查出错,而是有时候要注意自己看一下,你交的代码整个逻辑是不是清晰,同时会留下记录以便如果后来的人想学习你这个功能是怎么写的,他可以来从这个上面看所有的记录,这是工程师之间互相切磋和交流的一个工具。
第四,很多中国的创业公司有常会忽视的,入职培训和Wiki要写好。麦肯锡曾总结成功的公司的最大的经验是:Wiki做得很好。可以把公司中每个人的知识归档、以及把每个人牛逼的知识在整个团队里扩散出去,是非常重要的一件事。
▽
覃超
峰瑞资本技术合伙人,前 Facebook 工程师。
▽
延展阅读(点击标题):
本文系InfoQ原创首发,未经授权谢绝转载。