登陆注册
1921400000029

第29章 硅谷盛行的“工具文化”

不断发展、改进公司的内部工具,可以极大地提高每个员工的工作效率,可以减少运营人员的数量。这样既改善了整体协调,又减少了整体开支。

为帮助工程师更好地进行产品开发,Facebook对内部工具(Tools)是非常非常关注的。招聘我进公司的总监黄易山,就是这方面一个最有力的倡导者。他极力强调,公司要把最好的人才放到工具开发那一块,因为工具做好了,可以达到事半功倍的效果,所有人的效率都可以得到提高,而不仅仅是工程师。

Facebook有两个工具组。一个叫研发工具组(Dev Tools),专门负责研发工具的开发和维护,包括所有有助于工程师开发速度和质量的工具,主要服务对象是内部工程师。另外一个叫网站支持和工具组(Site Support and Tools),主要负责公司里所有通用工具的开发和维护,关注的主要是如何方便用户和Facebook的交流以及Facebook内部的沟通,主要都是通信工具,服务对象是用户和所有员工。

研发工具有哪些呢?

新的工程师刚加入Facebook时,需要分配自己的开发服务器,公司就做了一个工具来管理分配所有的开发专用服务器。在一个页面上,你可以很清晰地看到所有的开发服务器,包括哪些人是现在的使用者、什么时候申请分配的、服务器的操作系统版本、配置信息等。对于空余的服务器,你可以一键申请,并自动初始化该服务器。这让刚加入的菜鸟们可以迅速地获得自己的研发活动空间。

工程师最重要的工作就是写代码。针对代码管理,公司也开发了很多工具。我在这里介绍部分工具供参考。Facebook的代码库管理是通过一种叫GIT的开源管理系统,为此开发了一些工具来集成GIT。比如有一个工具是在提交代码之前自动检测所修改的代码是否符合公司代码规范,如果不符合,该工具会自动警告,但把决定权交给工程师。Facebook提倡对修改的代码写测试案例,在代码提交时自动检测是否存在覆盖这些修改的测试案例,如果没有则会警告,但工程师仍然可以强制提交。但这种情况下,代码若出错给网站带来巨大危害的话,工程师可能会被严厉批评,因为这本是可以避免的错误,是人性的狂傲忽视了工具的提醒。在代码审查(Code Review)方面,Facebook做了一个可视化的工具,现已开源,叫Phabricator。工程师可以在页面上非常方便地针对每一段(单行或者多行)代码进行交互讨论;负责审查的工程师可以接受代码改变,可以提出疑问要求原作者继续修改,可以提出自己不适合以退出该代码审查,等等。只有代码被明确接受后,才能被工程师提交到服务器端的代码库,这一点被集成到提交工具中强制执行。这些工具的基本理念就是,凡是被很多人不断重复的好习惯,要将其自动化,绑定到工具之中。以“Don’t Make Me Think”(别让我多想)的方式来推广好习惯。

Facebook的代码发布是灰度发布,所以开发了一个方便设计灰度发布的工具。在这个工具中,工程师和产品经理(也可以授权给其他非研发人员)可以设计新产品发布的目标人群特点(比如对年龄、性别、地域、受教育程度等方面的限制)及发布的人群比例(在0%~100%之间自由调整),所有的改变都不需要修改代码,只需要在工具页面上点击鼠标即可,让灰度发布变得很轻松。

发布过程由一个利用点对点(Bit Torrent)算法实现的工具进行多线程同时发布,更新几十万台机器只需要几十分钟。由于是不间断地发布,对公众的服务不可以停,所以Facebook会将一部分机器从公众服务状态中拿下来,更新之后再放回,然后继续下一批,直到所有机器都被更新。这样就可以保证在任意状态下都有足够多的机器来支持用户访问。整个过程都是通过工具自动实现的。而监控这个发布过程的进展,也有一个工具用于监测并且将其进度可视化,你可以很方便地看到哪些服务器更新了,现在正在更新哪些服务器,整个网站的进度是百分之几,等等 。

发布之后的数据监测更是重点,Facebook做了很多工具使之变得容易。数据收集只要1~2行代码即可完成,数据的整理、分类和存储皆在后台的上万台服务器上自动完成,数据的可视化报表只需要通过一个页面工具点点鼠标设置便可即时生成,不需要任何代码。数据波动的自动警报也可以设置,可以自动发邮件、发短信,可以要求24小时全球轮班的站点稳定工程部门(Site Reliability Engineering)按照你既定的反应方案去解决。如果还不行,最后会打电话给你,直接把你从床上拽起来。在Facebook工作的四年半时间里,这样的事件至少在我身上发生了10次。

还有一种工具是人为的,我们组经常用,就是把最最重要的目标及相关的任务、目标日期、负责人等信息写到白板上,挂在离我们最近的墙上。每天一抬头就可以看到,每次开会都会路过,时刻提醒我们最最重要的事情是什么,这种工具对我们组非常有效。

网站支持和内部通信工具有哪些呢?

在如何处理用户和Facebook之间通信这个问题上,针对常见的问题(尤其是关于如何使用某项功能的问题),Facebook在用户提交时,尝试将其引导到网站帮助或FAQ 的页面。但这并不能满足所有人的需求,尤其是和个人特殊情况相关的问题,仍然有很大一批用户会坚持提交问题,这时候Facebook内部处理工具就要把问题自动分配(Routing)到最相关的运营组,比如,和支付欺诈相关的问题应当自动分配给反欺诈运维组的那十几个人。然后,工具会提供常见的通用解决方案,比如,若选择退款,可以做到一键退款,绝大多数回信内容自动产生(用户姓名、原问题等个体信息都会自动嵌入),运维人员可以选择要不要修改内容,然后发送。如果针对某一个功能的问题突然多起来,工具会自动发现并提醒运维人员手动查看,运维人员可以根据实际情况决定要不要工程师介入寻找并修复可能的问题根源。所有用户问题的回复率、回复满意度、交互次数等信息都会被统计或抽样统计,以保证客户服务的质量。

另外一个重要工具是招聘工具。Facebook有一套专门的做题系统(Puzzle System)尝试去筛选可靠的工程师。这套系统是一个专门的招聘工程(Recruiting Engineering)组做的,包括题库的管理和更新、自动提交系统和打分系统等。如果在解题这个环节脱颖而出的话,公司猎头(Recruiter)会给工程师打电话,安排他下一步的电话面试。另外一种获得电话面试的途径是通过内部推荐。所有的内部推荐都是通过专门的人才提交工具上传简历,这个工具和整个招聘系统结合,并注明这是一个内部推荐、谁是推荐人。而整个面试过程里,包括谁应该参与面试,谁实际参与了面试,每一步面试官对应聘者的评价和打分,都在工具里被很好地记录和显示出来。当然还有必不可少的权限控制——只有参加面试的人员才能够看到关于应聘者整个流程的所有资料。最后,该工具允许打印所有的相关资料以帮助决策委员会在讨论该应聘者时拥有全部的相关数据。

还有一个重要的工具,就是每六个月一次的业绩评价工具。这个工具允许员工对自己评价、员工互相评价、员工和老板之间互评等,还要考虑权限的管理。这并不是一个很容易开发的工具,一开始是内部开发,但后来还是决定使用Rypple 来提供专业的业绩评价工具。

从这些工具可以看出,Facebook是一家工具驱动的公司,但这并不表示所有工具都要公司自己开发。必须清楚的是:工具开发是手段,而不是目的,Facebook的目的是打造一个最好的社交网站。因此,对于某个需要的工具,如果有更专业的人做得更好的话,Facebook非常乐意付费购买他们的服务,而把精力集中在核心产品上。这就是为什么Facebook会花大笔钱购买数据库软件MySQL的支持服务。

还有很多其他工具。Facebook希望通过工具来解决所有可能想到的问题,比如,要请假有相应工具,你可以说明休息多长时间,需要让哪些人知道这些情况等;所有新想法的提出、讨论,让网络头脑风暴变成了可能;各种电子设备如电脑、手机等IT服务的请求和处理,通过工具来解决……能够想到的地方就尽可能用工具。与物理工具不同,计算机工具可以实现“杠杆效应”的反复累积,通过组合这些“杠杆效应”可以达到更高的层级。

因此,公司的工作效率,影响到你需要雇用的员工数,影响到公司的成本究竟是多少,并将直接影响到公司内部产品的独创性。黄易山就认为,工具团队不应该是一个由二线员工组成的“事后诸葛亮”的后勤部门,公司里最有才华的工程师应该用公司自己的工具来工作,并且企业文化里要优先反映这些。编写出优秀的工具并继续加以改善、更新,这比寻找下一个伟大的创意更重要。

我最近跟国内一些技术公司的高管们讨论过有关工具的话题,有些人非常赞同,也想通过工具来解决很多工程性问题。比如你要在公司里推广一些规范性的规则,一种传统的方法是反复强调,另一种是开发出好用的工具,把这些东西固定化在里面,借助工具进行强制性推广,就能解决很多问题。Facebook没有专门的软件质量测试人员,都是工程师自己进行。公司就有这方面的工具,把测试过程中重复性的工作集中起来,自动化实现,只有一些必须要个性化处理的部分由工程师具体再去做。我在开发反欺诈系统时,将欺诈案例识别直接抛给人工处理当然是最简单的方式,但我们希望通过自动处理来解决大部分欺诈案例,而把精力放在那些确实需要单独处理的特殊案例上,最后决定的方向是“进行自动处理”和“建立反馈机制”,设计出用于用户报告(外部工具)和案例审查(内部工具)的工具。这样一来,我们也可以自动采集客户支持部门的处理意见,并集成到下一轮的机器学习中去,工具会越加精确、聪明,且与时俱进。

Facebook在 2005~2006年的发展中,公司根据不断增长的用户数量,聘请了成比例的客户服务人员。当后来有1000万用户时,公司的客户服务人员还不到20个。到Facebook的用户数量达到1亿时,很明显,公司不能用相同的速度来增加员工数量,所以公司让内部方案团队与客户服务分析师更加紧密地配合,推出了更具创新性的工具和用户界面,极大地提高了客户服务部门的工作效率。通过内部工具团队研发的产品,客户服务部分析了目前已完成建立的工作并创建了定制方案,方法是让电脑去做可自动化处理的部分并优化用户体验,这样客户服务分析师就可以专注于人工最擅长处理的事务。

不断发展、改进公司的内部工具,可以减少招聘运营人员的费用,让每个员工的效率更高,这样既改善了整体协调(员工数量少意味着协调更容易进行),又减少了整体开支。如今,Facebook每一位工程师服务的用户数均超过100万人,随着用户数量的持续增长,这种效率优势将更加明显。

不过有一个现实问题是,工具团队要招聘新员工有一定难度。Facebook的用户已经达数亿,而且还在不断增长,如果你开发的是直接面向用户的产品,每天有那么多人在使用,那成就感显然非常棒。而你要说服新员工去开发内部工具,称这样可以带给工程师以及其他同事更高的效率、最终帮助公司做出更好的产品,这个理由显然缺乏吸引力。所以,工具团队在招聘上花了很多工夫,想各种办法找到合适的人。

一种方式是用一些通过提高效率的具体案例和数据来做理性说服,这需要在开发工具的同时检测工具使用前后的效率变化。当然,为了吸引内部最好的人才愿意到工具团队,企业文化中也一定要着重反映出这一点:公司将内部工具视为持续的重要投资,以保持公司的领先地位。集中精力努力说服几位顶尖工程师加入工具组,具有很好的示范效果和磁铁效应。如果真正做到如此重视,最优秀的工程师是愿意加入工具团队的,这样可以大大提升同事们的效率,从而更好地服务于用户,这也是一种外部用户所感受不到的成就感。

同类推荐
  • 一本书读完投资学名著

    一本书读完投资学名著

    本书以最快捷的方式去获取投资名著中的精髓,可以让读者在有限的时间内了解投资学领域中最具代表性的思想成果,在探索投资之道的过程中感受启迪。从多个角度对所选取的经典作品进行了详尽的解读,让读者既不必纠缠于原著晦涩的文字,又能够把握名著的理论精髓。
  • 高校后勤人力资源开发与管理实务

    高校后勤人力资源开发与管理实务

    本书基于高校后勤人力资源开发与管理的实际情况,针对员工招聘与解聘、培训与开发、薪酬管理、绩效考核、劳动关系管理等几大重点和难点问题进行了分析,提出了新形势下高校后勤人力资源开发与管理的工作思路,并以大量的实际案例阐述高校后勤人力资源开发与管理的工作方法。本书主要适用于高校后勤管理者,尤其是人力资源管理者阅读和使用。本书可作为高校后勤人力资源部门工作人员的培训教材,对与高校后勤用工形式类似的单位也有很强的参考和借鉴价值。
  • 每天学点销售学大全集(超值金版)

    每天学点销售学大全集(超值金版)

    本书给广大销售人员提供了实用的销售方法,有助于销售人员清晰、准确、自信地传达信息:讲述了一系列销售技巧,以提高销售人员的表达能力,使客户能够感受到销售人员给予他们的关注和敬意,使销售人员对产品的介绍引人入胜,让销售人员的诚信深入人心,帮助销售人员与客户建立长期合作的伙伴关系。让销售人员的销售额直线提升。
  • 传承的力量:解码中国化企业文化管理

    传承的力量:解码中国化企业文化管理

    作者从西方管理科学入手,结合中国文化及中国管理思想的精华,分析文化管理中的企业文化的本质,整合中国思想和现代企业文化的联系,从而引导企业家和研究和以中国哲学思想为出发点,结合西方的管理体系,探索具有中国特色的企业文化管理理论。中西文化结合的理论和知识,实用的方法和技术,创新的工具、模型、案例,有趣的行文风格,使本书成为继《企业幸福力——EAP中国化与幸福管理》之后对中国化管理的又一探索之作。
  • 中国企业的财务风险管理

    中国企业的财务风险管理

    本书内容包括:企业财务风险管理概述、货币资金风险管理、汇率风险管理、成本风险管理、预算风险管理、企业财务报告风险管理等。
热门推荐
  • 男二要翻身

    男二要翻身

    穿成书里的男二怎么办?当然不要被炮灰,努力抱得美人归。
  • 快穿反派boss太病娇

    快穿反派boss太病娇

    叶澜因一场意外事故而壮烈牺牲,本已死去的她却被一个不为人知的系统所绑定,从此开始了坑爹的任务。本以为只是帮助炮灰逆袭一下,顺便虐虐渣男,整治整治白莲花,可谁知还要被系统派去帮反派。反派boss太病娇,叶澜表示很苦恼。(本文男主多变,病娇只是一一体现的。)
  • 潇湘依旧

    潇湘依旧

    小女生的求爱进行曲,校园里的爱情小故事。
  • 心灵彼岸

    心灵彼岸

    普通的高一新入学女生叶子突然发现自己和好友拥有超能力,与之伴随出现的是入侵世界的怪物,“界外人”。事情是她想象的那样吗?一段故事,两个世界,五个灵魂,波折的时间。而人心灵的另一岸,是整个世界的倒影。“我终究无法当做一无所知,时间会告诉所有人真相。”
  • 半是雾来半是风

    半是雾来半是风

    她是一个残疾女孩,每日坚苦的守着自己的梦想,坚强而独立。他,一个意外,在无意间看见她的挥汗如雨的模样,那一该印入心房,开始了默默的关注。都以为守得云开见月明,却是伴着层层迷雾!以为已拨开迷雾,却是半来雾时半来风。既然是他们欠我的,那么就让他们用一生来补偿我,不好吗?原来害她失去一条腿的,是他…!既然你想,那么我就用余生照顾你,来爱你,可好?
  • 梦境灵魂

    梦境灵魂

    从小渴望有座花的海洋花的家庭,院子前面全是花包围着,根本看不到房子。当自己努力往前走时才真正看到了花的家。
  • 混在大明当皇帝

    混在大明当皇帝

    随着大航海时代的到来,西方神圣罗马帝国皇帝迎来了它真正的君王查理五世,开启了西班牙日不落帝国的时代。横跨亚欧大陆的奥斯曼帝国也迎来了他伟大的君王苏莱曼大帝,开启了全盛时代。而东方强大的大明王朝随着中兴之主孝宗皇帝的驾崩,也迎来之后东方逐渐走向漫长衰弱的时代……明朝中叶,一个人才遍地却又声名不显的时代。一个穿越而来的少年,依靠着手中的搜索系统,靠挖掘人才而让大明重新走上盛世巅峰……
  • 来兮辞归去

    来兮辞归去

    你以为这是玄幻?不,这更是科幻。晏来兮二十年来第一次谈恋爱,甚至余生也想与他一起度过的人却在她生日那天出车祸去世,她自诩不是个轻易流泪的人,可为他还是破了先例。一朝穿越,她居然又遇见了他,他却不认识她。她处心积虑的接近他只为他像于归而已。他也终于对她日久生情,他为她废除后宫制,独娶她一人。后来于归却发现她心中的那个人不是他,于是他开始广纳嫔妃,晏来兮也渐渐心冷。她独自离开,了无音信。秦暮归终知,权高不如情深。后来却发生一系列事情,他认识到自己另有身份,而这个大州也另藏真相,待他和晏来兮解开一系列误会后,他们也终于历经千辛万苦回归,携手共老。【排雷:稍微有点虐,主要是甜。一些设定会与现在不同,但是是正常的,因为他们处在另一个世界。最后如果不喜欢这个题材请勿喷哦。】
  • 焚心之痛

    焚心之痛

    世上本无纯粹的善恶,压抑久了,善良亦会变质,亦会颠倒。当他因为生活,也仅仅只是想要平淡的生活,却受到无端的折磨,本以为全世界都是灰暗,无情。在他最失望无助的时候,她闯入了他的世界,他视她为救命稻草,最后的希望。让他有了活下去的勇气,有了如,他可以无视身边的污秽。然而,这根稻救命稻草却受到了他的连累,也卷入了污秽之中……铃铛入狱一场空,只是一场虚妄吧,希望余生,可以得到救赎。
  • 扒一扒巨富老公的马甲

    扒一扒巨富老公的马甲

    母亲重病,程欲染经人介绍,和乡下纯朴青年温先生结了婚。闪婚三个月,她发现自己被骗婚了!说好了两人共同贷款的新房,物业却告诉她整栋大楼都是他们夫妇二人的房产……说好的玻璃假钻戒,珠宝行鉴定后却是三十克拉价值千万的蓝金钻石……楼上的天花板被撞破,下起金条雨……直到同学聚会,两个商界大佬围着温先生瞻前马后,程欲染惊觉,他的新婚老公不简单!求助贴:我被骗婚了,老公好像很有钱,怎么办?在线等,挺急的!回复:楼主,快,扒一扒巨富老公的马甲!楼主回复:他……好像不是人。