【AICon】探索八个行业创新案例,教你在教育、金融、医疗、法律等领域实践大模型技术! >>> 了解详情
写点什么

Facebook 元老王淮谈科技公司应有的工具文化

  • 2012-08-20
  • 本文字数:2674 字

    阅读完需:约 9 分钟

王淮是 Facebook 的早期员工,也是 Facebook 内部第二位中国籍工程师和第一位研发经理,曾经负责支付后台和安全系统,担任反欺诈部门的技术经理。现在,他是一位以兴趣为导向的顾问型天使投资人。

前不久,他发表了一篇文章——《以 Facebook 为案例剖析科技公司应有的工具文化》。其中,他开宗明义提出:

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

王淮提到:当时招聘他进 Facebook 的总监黄易山,是对内部工具的最有力倡导者:

他极度建议,公司要把最好的人才放到工具开发那一块,因为工具做好了,可以达到事半功倍的效果,所有人的效率都可以得到提高,而不仅仅是工程师。

王淮接下来介绍道:Facebook 有两个工具组——研发工具组、网站支持和工具组。

研发工具组的工具包括:

  • 管理分配所有的开发专用服务器

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

  • Git 集成工具

在提交代码之前自动的检测所修改的代码是否符合公司代码规范,如果不符合,该工具会自动警告,但把决定权交给工程师。

  • 现已开源的代码审查工具 Phabricator

工程师可以在页面上非常方便的针对每一段(单行或者多行)代码进行交互讨论;负责审查的工程师可以接受代码改变,可以提出疑问要求原作者继续修改,可以提出自己不适合以推出该代码审查,等等。只有代码被明确接受之后才能被工程师提交到服务器端的代码库,这一点集成到提交工具中强制执行。

  • 灰度发布工具

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

  • 发布过程监控工具

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

  • 数据检测工具

数据收集只要 1-2 行代码即可完成,数据的整理分类存储皆在后台的上万台服务器上自动完成,数据的可视化报表只需要通过一个页面工具点点鼠标设置即可即时生成,而不需要任何代码;数据波动的自动警报也可以设置,可以自动发邮件发短信。

王淮说到了这些工具背后的基本理念:

基本理念就是凡是被很多人不断重复的好的习惯,要将其自动化,绑定到工具之中。以“Don’t make me think”的方式来推广好的 practice。

当然,他们当时仍使用白板作为最重要的人为工具之一:

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

在网站支持和内部的通讯工具方面,王淮提到的工具包括:

  • 用户问题自动分配工具

Facebook 内部的处理工具做得最重要的事情就是把相关问题自动分配到最相关的运营组(routing),比如和支付欺诈相关的问题应当自动分配到反欺诈运维组的那十几个人那边。然后工具会提供常见的通用解决方案,绝大多数的回信内容自动产生(用户姓名,原问题等个体信息都会自动嵌入)。

如果针对某一个功能的问题突然多起来,工具会自动发现,并提醒运维人员手动查看

所有用户问题的回复率,回复满意度,交互次数等等都会被统计或抽样统计,以保证客服服务的质量。

  • 招聘工具

Facebook 有一套专门的做题系统(Puzzle System)尝试去筛选可靠的工程师。

所有的内部推荐都是通过专门的人才提交工具来上传简历,这个工具和整个招人系统结合。

当然还有必不可少的权限控制 – 只有参加面试的人员才能够看到关于应聘者整个流程的所有资料。

最后,该工具允许打印所有的相关资料以帮助决策委员会讨论该应聘者时拥有所有相关数据。

  • 业绩评价工具

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

接下来,王淮提供了一些对于工具的思考:

  • 工具开发是手段,而不是目的。……如果某个需要的工具有其他更专业的人做得更好的话,Facebook 非常乐意付费买他们的服务,而把自己的精力集中在核心产品上。
  • Facebook 希望通过工具的方式来解决所有可能想到的问题……能够想到的地方就尽可能用工具。与物理工具不同,计算机工具可以实现“杠杆效应”的反复累积,通过组合这些“杠杆效应”可以达到更高的层级。
  • 工具团队不应该是一个由二线员工组成的“事后诸葛亮”的后勤部门,公司里最有才华的工程师应该用公司自己的工具来工作,并且企业文化里要优先反映这些。当公司过了最一开始开发原型证明概念的萌芽阶段之后,开发出优秀的工具并继续加以改善、更新,这比寻找下一个伟大的创意更重要。

王淮也谈到了工具文化面临的最大挑战:

现实的最大挑战是,工具团队要招聘新员工有一定的难度。Facebook 的用户已经达到数亿,而且还在不断增长,如果你开发的是直接面向用户的产品,每天有那么多人在使用,那带来的成就感非常棒。而你要说服新员工去开发内部工具,说这样可以带给工程师以及其他同事更高的效率、最终帮助公司做出更好的产品,相对是间接并缺乏吸引力的。

他的解决方法是:

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

InfoQ 的读者,你们所在的公司有工具文化么?

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2012-08-20 22:526993
用户头像

发布了 479 篇内容, 共 152.5 次阅读, 收获喜欢 47 次。

关注

评论

发布
暂无评论
发现更多内容

netty系列之:不用怀疑,netty中的ByteBuf就是比JAVA中的好用

程序那些事

Netty nio 程序那些事 1月日更

当类的泛型相关时,如何在两个泛型类之间创建类似子类型的关系

阿Q说代码

Java泛型 1月月更 子类型

Apache Kylin PMC 马洪宾:开源,就是一场“螺旋上升”的旅程

腾源会

Flink,Spark,Storm,Hadoop框架比较

@零度

flink hadoop spark Storm 大数据开发

AJAX工作原理及其优缺点

编程江湖

2021 年 6 个GitHub推荐前端项目

devpoint

vite nextjs tauri 1月月更 Tailwind

热烈庆祝龙智高级咨询顾问叶燕秀获得“Atlassian认证专家”称号

龙智—DevSecOps解决方案

Atlassian认证专家 Atlassian认证

Flink是如何支持批流一体的

编程江湖

flink

1月月更|推荐学java——Spring第一课

逆锋起笔

spring SSM框架 Spring MVC Spring Java Spring项目

hi 龙蜥小二来了 ,一键@为你答疑解惑

OpenAnolis小助手

Linux 服务

crontab介绍安装及每秒运行

Owen Zhang

Linux crontab

复盘和反思一个被全公司邮件通报的漏测

LynnYang

测试 Postman Mock

高效时代,是时候过渡到自动化测试了

SoFlu软件机器人

DevOps 软件开发 自动测试

Bruce Eckel教你如何爬出 Gradle 的“坑”?

图灵社区

java 编程

这8个JS 新功能,你应该去尝试一下

华为云开发者联盟

JavaScript 前端 开发 索引 开发语言

60岁代码匠的几篇小作文,解决了大多数程序的迷茫(上)

图灵社区

java 编程

都2022年了,你的前端工具集应该有vueuse

华为云开发者联盟

Vue 前端 API 工具集 vueuse

2022年,你还要做开源软件么?

亚马逊云科技 (Amazon Web Services)

计算

打造智能全场景,《HarmonyOS Connect系列课》7大BUFF为您助力!

HarmonyOS开发者

利用物联网技术加速数字化转型

龙智—DevSecOps解决方案

云图说|图解DGC:基于华为智能数据湖解决方案的一体化数据治理平台

华为云开发者联盟

大数据 数据湖 数据治理 数据服务 数据湖治理中心

全面提升体系化数据管理能力 | OceanBase 发布全新3.X工具家族

OceanBase 数据库

数据库 开源 开发者 OceanBase 社区版 产品发布

vivo 推送平台架构演进

vivo互联网技术

分布式 架构设计 消息推送 平台搭建、

深入解析Apache Pulsar系列: Broker消息确认的管理

博文视点Broadview

云效产品篇:开启敏捷需求管理 |云效快速入门

阿里云云效

阿里云 DevOps 云原生 需求管理 云效

MySQL性能优化:SQL慢查询优化,索引优化,表优化

Ayue、

MySQL 1月月更

龙智搬迁公告

龙智—DevSecOps解决方案

搬迁

用户文章转载:Windows用户都来看看,这个锅P4不背

龙智—DevSecOps解决方案

perforce P4

java开发之Redis数据结构

@零度

redis JAVA开发

深入分析JUC之Lock接口

编程江湖

lock锁

几行代码,把zip文件直接破解

你?

Facebook元老王淮谈科技公司应有的工具文化_Meta_郑柯_InfoQ精选文章