HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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 的读者,你们所在的公司有工具文化么?

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

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

关注

评论

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

程序员投入时间和精力实现财富增长之道,这可能会伴随你程序员整个生涯(请不要连续点赞)

孙叫兽

程序员 赚钱 教程 引航计划 签约计划第二季

ipfs矿机挖币哪家最好?ipfs矿机公司实力排行如何?

ipfs矿机挖币哪家最好 ipfs矿机公司实力排行如何

大数据集群跨多版本升级、业务0中断,只因背后有TA

华为云开发者联盟

大数据 FusionInsight

跟我读论文丨ACL2021 NER BERT化隐马尔可夫模型用于多源弱监督命名实体识别

华为云开发者联盟

BERT 弱监督 隐马尔可夫 CHMM HMM模型

Redis扩展数据类型详解

码农参上

redis 8月日更

高防服务器大数据时代下的最佳应用途径

九河云安全

贡献者,是衡量开源项目的金指标

API7.ai 技术团队

开源 网关 APISIX

7金5银,中国跳水梦之队背后的"黑科技"是什么?

百度大脑

人工智能 黑科技 跳水队

绝了!阿里甩出“源码阅读指南”,原来源码才是最经典的学习范例

Java 编程 架构 面试 程序人生

波场DAPP钱包开发|波场DAPP特点

Geek_23f0c3

钱包系统开发 DAPP智能合约交易系统开发 波场DAPP 波场钱包

聊聊 PC 端自动化最佳方案 - WinAppDriver

星安果

Python 自动化 WinAppDriver

趁着课余时间学点Python(十)面向对象的理解(前奏)

ベ布小禅

8月日更

数据库的简述与常用操作指南

行者AI

数据库

企业在运营过程中需要解决的五项网络安全项目

九河云安全

知乎李大海对话阿里云贾扬清:透视AI应用难题与未来趋势

阿里云大数据AI技术

连续霸榜丨EasyDL到底有多强?

百度大脑

人工智能 EasyDL

一文带你了解大厂亿级并发下高性能服务器是如何实现的!

Linux服务器开发

事件驱动 多进程 Linux服务器开发 IO多路复用 高性能服务器

图谱可视化|手把手教你采集明星人物关系并进行图谱展示

Python研究者

知识图谱 8月日更

TCP 三次握手

W🌥

计算机网络 TCP/IP 8月日更

高防云服务器服务器的价值会随着时间而扩展,从"成本效率"扩展到"新服务和技术"

九河云安全

想聊天?自己搭建个聊天机器人吧!

百度开发者中心

人工智能 最佳实践 方法论 飞桨 语言 & 开发

云服务器市场改变了行业市场的发展规模

九河云安全

Karmada: 云原生多云容器编排平台

华为云原生团队

开源 容器 k8s多集群管理 多云管理平台 多云

YYDS《剑指Offer》再续新篇,百万程序员人手一册

博文视点Broadview

Asop 之 消息处理机制

Qunar技术沙龙

android Linux 消息队列 安卓 epoll

企业数字化转型第一步,云服务器的部署以及搭建

九河云安全

舍弃Kong和Nginx,Apache APISIX 在趣链科技 BaaS 平台的落地实践

API7.ai 技术团队

nginx 开源 网关 kong APISIX

使用FL studio中文版进行音乐合并和剪切

懒得勤快

5招教你实现多线程场景下的线程安全

华为云开发者联盟

Java 线程 多线程 线程安全

对象存储手把手教四 | Bucket 生命周期管理

QingStor分布式存储

对象存储 分布式存储 生命周期 数据管理

「独立思考」的背后是一个残酷的世界

非著名程序员

提升认知 个人提升 独立思考 8月日更

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