Facebook创新的管理方法及整个工程文化三大法宝
文/覃超 ,本文来自公众号 InfoQ(infoqchina)
我将结合之前在 Facebook 的四年工作经验,介绍 Facebook 创新的管理方法以及整个工程文化形成的方法。
从大学宿舍到完整生态链:Facebook 12 年发展历程
首先我想解释下为什么我要说 Facebook,并不是因为我在那里工作过。先请看一下 Facebook 的简单发展史:
2004 年,扎克伯格在大学宿舍里开发了 Facebook,很长一段时间它只是一个简单的网站。但是后来,扩展到硬件,开发了各种产品,占据了整个社交领域,至少是北美的霸主地位。Facebook 还推进了 Connectivity(全民联网计划),给发展中国家提供免费的无线网络,再到后面做 VR、AR、人工智能等现在非常火的新领域,形成了完整的生态圈。
看 Facebook 12 年的发展,我一直在想一个问题,它是怎么从大学生宿舍里面一个简单的扎克伯格自己的个人项目,最终发展成为可以上市的公司?而且现在整个生态链布局的已经非常完善了,这个公司是怎么做出来的?
我思考了很久之后,发现有一句话很有意思,21 世纪最重要的是什么? 就是人才。现在互联网创业很多技术基本上都是开源的,很多硬件随手可得。
上图是在五年前硅谷非常流行的一张图,描述了大公司之间人才的流动情况。图中,每个圆点是一个公司,和圆点颜色相同的边表示这个公司的人才流入。可以看到 Facebook 基本上和其他点间连线都是蓝色的,所有公司都在向 Facebook 输入人才。而谷歌基本上在从微软和雅虎搜集人才,在其他地方是流失人才的。
所以,从五年前吸纳了很多人才开始,Facebook 才有了今天的成就。有一群最牛的工程师、产品经理和设计师在这里,所以经过五年的布局和人才培养,才造就了现在全生态链都有一个非常好的格局。
所以我在想,里面整个工程师文化做得比较牛的是什么?因为我自己在 Facebook 工作过,所以结合自身经验带来了这个分享:在公司里面如何塑造比较好的公司文化?怎样把牛人吸引过来?
总共五个部分:
- 首先是简单的自我介绍;
- 接下来讲 Facebook 的工程师文化;
- 以及团队的组成,包括设计师、产品经理和工程师;
- 人员是如何管理的,怎样能有效控制工程师的工作积极性以及给予相应的报酬;
- 最后一点也是最重要的,以上这些对我们中国公司有怎样的启示。
一、我是谁:从 Carnegie Mellon 到 Facebook
这是我的简历,大学和企业在技术方面的差距还是很大的。从 Carnegie Mellon 大学毕业后,我加入了 Facebook,开始做的是 CTO 亲自主导的比较神秘的项目,后来去做了 Facebook 的 APP,主要是 iOS,也做过 Voice Message 等。
二、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 岁以下的人在用 news feed 的时候情况到底怎样,从今年年初到现在变化是怎样的等。所有的东西都开放给工程师,没有任何权限。
在 Facebook,codebase 是所有 software engineer 都有权限把它拷贝下来。我(作为一个 facebook phone 和 iOS app 的工程师)可以把安卓的 codebase 拉下来,也可以把 PHP、推荐算法、引擎各种代码库给 git clone 下来,所有的权限都是开放的。但开放的前提,如果把公司内部信息泄漏出去就会被开除掉,历史上也发生过好几起这样的事情。所以,在 Facebook 基本上不可能出现扎克发的一封邮件会被爆光。刚开始回国的时候,我很震惊,各种 CEO 的邮件都曝光在公众眼中,这种事在硅谷基本不可能。
所以 Hack 意味着内部信任和开放,同时对外也要遵守非常严格的规定。
最后一点就是 Open Space,很开放的环境,给人的感觉是「网吧式的工作环境」。美国公司的办公室给人的感觉比较粗糙,比如说天花板上没有任何装饰,柱子上还有很多铁锈一样的东西,但是它又有非常细节的地方。
比如说,显示器都还不错,有各种饮料和零食,随便吃;椅子是著名的 Aaron chair。最有趣的是:椅子右侧有两个按钮,一个是上升和下降,平时就是这么正常的工作,累了之后,久座对身体不好,就把桌子升起来,变成站立式办公。站起来有一个好处是,当好几个人在一起讨论问题的时候,大家可以站在一起看。很多时候写代码的时候,把设计师也带过来,直接问「我做了一个原型你看有什么问题的吗?」有问题就直接改了。
扎克和所有人一样,坐这么一个位置,开放式工位旁边有很大的玻璃房子,用于开会,扎克没有太多的会议或者太多出去的时间,基本上每天在公司里面专注于自己的事务。
三、Facebook 团队组成:设计师、产品经理和工程师
很多人问我,Facebook 的项目团队是怎样的?
一般情况,如果是做一个简单的小功能,一般是一个设计师加两个工程师;比较大一点的项目,比如说改版、在新版当中开发两三个功能,基本上两三个工程师一起做,iOS messenger app 五到十位工程师和两到三位产品经理,和国内配比差不多。
比较有意思,Facebook 没有测试,他们比较贵,很多时候都是我们自己测,我们 Unit Test 并不多,覆盖率 10% 不到,但是我们有非常严格的 Code Review。所以如果你要学习一点,在工程上面、执行上面让 bug 减少的话就是代码审核,交到这个 master branch 里面的代码必须预先经过代码审核,直接看代码,没有什么问题就提交,如果提交进去后来发现 Bug 最后进行修复 Bug 花的时间和精力是之前的三倍十倍。
整个流程一开始规划要做什么东西、要做什么功能、需求是什么,接下来设计师和工程师互相合作,比较有意思的是整个流程每个决策都要参与,而且每个决策之间互相是交互式的,工程师也可以说这个需求根本不能做或者说不用之类的。
这是我的桌子,当时无意中拍了一张照片,后面两个都是工程师,我们在讨论我们的消息收发的时候是怎样的,那个时候已经过了下班的时间。
有人问,为什么你们的产品开发的比较快或者做的比较好,有没有什么秘诀?其实并没有太多的秘诀。
首先,人和人之间互相尊重,同时用 Scrum,大家都坐在一起有任何进展马上当面沟通,虽然我们远程会议系统特别强大,各种功能开个远程会议也行,但是我们鼓励在一起坐下来聊。团队最初期的时候就要开始协作,不同角色的人坐在一起讨论,不像国内分阶段分得特别明显。最后,设计师和开发者在工作的后期联系是非常紧密的。
最后,还有很重要的一点:Facebook 有 Zuck Review。也就是一些比较大的功能或产品,扎克会亲自安排看一下,也就是下面的人或者整个大的 PM 会亲自跟扎克说,这个地方你要过一遍,即使再忙他都会亲自来盯。
他会决定这个功能到底是做还是不做,决定产品的 UI、功能、交互调整等,和网上风传的马化腾或张小龙其实风格差不多。我感觉 Facebook 和腾讯有些类似,都是一个产品型 CEO 主导的公司,扎克亲自来盯。
图上有两位中国人,其中一位是做广告的葛爷,给 Facebook 赚了很多钱。Zuck 有时会用一种直觉性和你讲一些话,很多功能被他砍掉,大部分时间他都是做出了正确的决定。
我认为 Zuck Review 给人最重要的感觉就是鼓舞,如果这个东西扎克亲自来看,优先级方面会给下面的工程师或者整个团队一个非常明确的交代,这个事到底重不重要,需不需要。
关于优先级我想强调,大家都是技术人员,很多人在学校里面学习都不错,但在工作的时候发现有些不适应,需要注意的是在顶级公司或者特别牛逼的互联网公司工作,最重要的一点是分清优先级,这和学习的时候完全不一样。
工作中的事情是做不完的,你在工作的时候是连续的;不像在学校的时候一个学期隔着一个学期,最后期末考试,你知道自己有什么反馈。但是在工作的时候活是干不完的,所有东西,周围很多人让你做这个做那个,最重要做的事情是分清优先级,任何一个任务发过来的时候,心里面把它积累起来,哪个任务比较重要的先做,而不是交给你一个任务马上去做。
所以这里优先级,很多人我看到能力很强的人,最后遇到一个瓶颈,关键的问题是自己没有分清优先级,去做一些比较简单或者自己喜欢,或者是觉得自己能做的事情,而不是做最有影响力的事情。
具体说来,和学生时代相比就是:学习上的课程是有限的,作业也是有限的,而且还有相对明确的截止日期(homework deadline)和最后一个期末考试;考试完结后,几乎学业清空一段时间。但是在工作上你会发现你没有一个类似暑假或者寒假的东西,另外最可怕的是你的活是干不完的,对的,是无穷无尽的。特别你是在一个上升期的互联网公司的话,给你任务的速度很多时候是超过你的处理速度的。
所以这个时候,你在接到一个被分配的任务或者一个 email 要求你干什么的时候,你不是要马上可以做,而是要强迫自己停顿下,分清现在这个任务的优先级,然后分配好开始时间,之后再开始做。这点尤其重要!特别当看到一个简单或者重复性的任务被 email 或者 tower(或者 teambition)上分配来的时候,不要因为任务简单就马上跳上去干,不然这样极可能被简单重复劳动把自己的时间全部占光,最后没来得及干重要的事情,或者没有精力去思考更加长远更有影响力的事情。
所以,重申一次,去做 impact 和 urgency 最高的事情(这种事情一般来说不是很愉悦,甚至是比较棘手或者说是无从下手的事情),而把简单重复的活尽量后排(或者 delegate 出去)。这时你才会发现你的忙碌是有意义的,而不是做“伪工作”(pseudo work)。
我常常看到一些毕业不久的人每天都很忙,但却没有抓住重点,只是为了忙碌而忙碌,或者用更加贴切的话描述是:“为了感动自己而忙碌”。很多时候这样的忙碌,最后都是一个屁。之前在 Facebook 里,对于这样的同事有一个称号叫做“pseudo worker”,领导的职责是直接给他们透彻的反馈,让他们认清自己工作的 impact 最大化的地方到底在哪儿,同时告诫他们要忍住低 impact 的简单任务的诱惑。
对的!那些垃圾任务有着一种诱惑;诱惑着没有定力的人一直去做,一直去做,感觉自己特别有成就感,特别“忙碌和充实”。所以要小心!在国内创业路上也有很多这样的创始人(或者 cofounders),他们自己的方向可能都没怎么想清楚,或者路线没有执行得当,却一天到晚在朋友圈晒自己和同事们的加班,觉得这样的“忙碌”很充实。其实这是一种很可怕而且对自己和团队既不负责的做法。
一般工作时长的惊人但又没有 unicorn 估值的公司,我总觉得加班是一种羞耻,是自己团队不会分优先级或者战略不明确的表现;如果创始人还一直在那里秀加班来感动自己的话,我的建议是尽早离开。同时我还敢打赌,90% 这样的公司在加班(和日常工作时间里)时的效率是偏低的。
另外,Zuck Review 可以从用户的角度进行分析。有的时候我们做一个产品或做一个技术,一直做的时候会把很多东西想的过于简单,而用户很多时候比较傻或能够一秒钟变傻,会觉得这个东西并不好用。这一点感觉扎克做得比较好,扎克自己不是特别懂技术细节,如果他觉得这个地方为什么这么难用,会给你讲很多有意思的东西。
四、Facebook 是怎样利用 OKR 进行人才管理的?
接下来是整个 Facebook 的管理是怎样,即 OKR。在 Facebook,OKR 意味着每六个月或每一年,制定一下你个人的目标、团队的目标以及公司的目标是什么,接下来行动就可以了。
第一点,在目标制定的时候你要以结果为导向或者以影响力为导向,不要为了做而做、或者做一些伪工作。在工作的时候很多人会做一些伪工作或者简单的工作,也就是自己愿意做的工作。
第二点,在 Facebook 会看每六个月、这半年的指标到底是什么东西。
第三点,每年 6 月底、12 月底分别会做一次个人绩效评估。
最后,一个月之后评估结果就会出来,将决定你的奖金多少、是否升职,年终绩效评估将决定你的现金奖金是多少,年底除了现金还有股票的追加。不管任何级别,只要是工程师都会给你相应的股票,每过一年年底绩效评估将决定给你追加多少股票,一般都会追加股票。
具体的绩效考核怎么做?首先是国内常讲的 360 度评估,每 6 个月做一次,主要是四个部分:自评、同事评价、直属上司评价和老板评价。最后比较有意思的是,你可以决定这个东西是否开放、被谁看到。一般有 85% 左右的人会选择开放,这是很恐怖的一个数据,基本上互相之间都是开放的。最后一点就是 HR 和整个 Team calibration,从上面再校准一次。
最后就是奖金,给你规定一个奖金,在 10% 到 25% 的区间。看你在哪个级别,新进来是 10%,越到上面越高。然后要乘以你的个人绩效,0 表示没有奖金,一般在 1.25 左右,4.5 就很高了。最后再乘以一个公司的绩效,公司那几个高层对公司这半年来做得怎么样打一个分,如果公司做得很不错,所有人的薪水都会加。
五、师夷长技以制夷:对中国互联网公司有什么启示?
最后,我想说说 Facebook 的管理之道对中国互联网公司的启示是什么。虽然在 Facebook 工作很好,但我更喜欢加入中国的公司或者自己创业,和一帮国人在一起做一个公司,有一个牛逼的产品能够放到国际市场上和西方对打。
首先想强调一点,很多人说 Facebook 工程师文化特别好,但是它的文化并不是与生俱来的。前几天为了佐证这个观点我专门看了一下 2007 年大家对于扎克的想法,那个时候公司一团糟,偶尔有几个比较厉害的人,Facebook 现在比较牛的工程师文化是在 2008 年、由一个女孩 Molly Graham 逐步营造起来的。
Molly 营造公司文化的过程,在这篇文章有阐述,当时,Facebook 从 400 人快速增长到 1000 人,公司已经管不过来了,一团糟,大家互相埋怨对方,干活非常没有效率,做了很多低效的事情。那么怎么把公司管好,同时让更优秀的人可以持续进来呢?Molly 建议 Facebook 建立工程师文化,她当时让扎克自己写了十条他觉得比较牛逼的人是怎样的,当然那十条大部分就是由扎克自己的气质决定的。
这十条标准写出来之后,在公司里面反复强调,同时招人也招符合这些条件的人。所以可以得出一个结论:公司 80% 的文化来自于创始人。
最后一个结论,当一个公司变大,比如从A轮到B轮的时候,一定要营造出自己的文化。所以如果你是创始人,在公司还小的时候随便怎么弄,但是你自己要很明确有一杆秤;当公司到了 500 人以上的时候,这个时候一定要建立自己的公司文化。
对技术人员来说,判断公司文化很多时候都是看创始人,看创始人是干什么出身的。如果他是做生意的,那么这个公司或许并不是你的最佳归属,即便讲得再牛。
举今日头条的例子,他们做得比较好,老大本身也是技术出身,他们公司对技术人员的待遇非常好,还去硅谷挖了很多牛逼的人,把公司氛围营造得非常好。所以看创始人是可以看出来这个公司文化到底是怎样的。
对任职管理者的工程师来说,在创业的过程当中有四点需要注意:
第一,盯一线产品。下面的人不怕你 challenge 他,怕的是把这个东西做完之后上面的人不看,他就会觉得自己所有的辛苦努力全部都浪费了。
第二,6 个月要做一次 Performance Review,这将决定员工的奖金和股票。
第三,Code Review。在工程方面并不是用最好的技术最重要,而是把 Code Review 加进来,这并不是为了查出错,而是有时候要注意自己看一下,你提交的代码整个逻辑是不是清晰,同时会留下记录以便如果后来的人想学习你这个功能是怎么写的,他可以从这个上面看所有的记录,这是工程师之间互相切磋和交流的一个工具。
第四,很多中国的创业公司有常会忽视的,入职培训和 Wiki 要写好。麦肯锡曾总结成功的公司的最大的经验是:Wiki 做得很好。可以把公司中每个人的知识归档,以及把每个人牛逼的知识在整个团队里扩散出去,是非常重要的一件事。
(作者公众号:覃超帝国兴亡史(qc_empire ),谢谢大家的支持!转载请联系公众号:覃超帝国兴亡史(qc_empire )获取授权)
以上是 Facebook创新的管理方法及整个工程文化三大法宝 的全部内容, 来源链接: utcz.com/a/128563.html