优秀公司的实践(一):Facebook的工作方式

优秀公司的实践(一):Facebook的工作方式

本文介绍Facebook如何工作。文章摘自网络,在文章的结尾会注明所有的出处。文章的目的是分享成功的公司的成功经验。成功经验很难单一复制,但思路值得思考。

 

1)       工作方式

 

a)        公司最大的两群人是技术开发人员和实施人员(Ops),各自有400~500人。这两部分人占去了公司构成的50%。

 

b)       产品经理跟技术人员的比例大概是1:7到1:10。产品经理有很大的独立性和自由度,影响力的产生关键在于和技术经理建立好良好的关系,需要有足够的技术知识来避免自己提出愚蠢的建议。

 

c)       所有的技术人员都要通过4到6周的“新兵训练营”培训,培训中他们通过修改bug来了解Facebook系统,听资深/终身司职技术人员做演讲。每次训练营培训大概会有10%的学员不能通过考核,会被淘汰出公司。

 

d)       Facebook的企业文化对产品的管理工作是十分重视的。所以,产品管理这个角色并不是可有可无的。并且,这个公司的企业文化是让“每一个员工”都感到对产品有责任。

 

e)        一个功能特征是否值得做,通常的判断方法是用一周快速实现,然后在抽样用户里测试它,例如找1%的内华达州用户进行测试。

 

f)        Facebook代码产生的过程包括写代码(write code),测试代码(test code),审查代码(review code),提交代码(check in code),发布代码(release code)。 写代码指在自己的开发机器上做好修改,这些修改只存在于自己的开发环境中;测试代码指在本地端测试自己的修改以保证修改不引入明显的问题;审查代码指找合 适的工程师同事来查看待提交的代码;提交代码是将经审查的代码提交到服务器端的代码库之中;发布代码是将提交的新代码同步到所有的服务器端让最终用户使用 新的功能。

 

g)       我们实际上是有QA的,只是不是一个正式的QA团队。每一个在办公室或能连接到VPN的员工都能看到一个包含所有的变更内容的、下次将要对外发布的网站版本。这一版本的网站更新的十分频繁,你能比世界上其他人提前1~12小时看到这个即将发布的版本。公司鼓励所有员工积极的报告发现的任何问题,对于问题会做出快速的应变。

 

h)       我们有自动化测试,包括每次软件发布前必须通过的“push-blocking“测试。我们根本不相信所谓的”大部分的开发人员都有能力写出没有bug的代码“的说法

 

i)         很吃惊产品经理会没有影响力/控制权—产品经理有很大的独立性和自由度。影响力的产生关键在于和技术经理建立好良好的关系。需要有足够的技术知识来避免自己提出愚蠢的建议。除此之外,产品经理建立开发路线/Backlog不需要任何的批准或通过任何的审查。产品经理的数量相当较少,但他们都认为对公司里非常重要的、自己感兴趣的一个区域负有重要的责任。

 

j)         一般情况下,所有提交的代码会每周一次的打包发布(周二) ;如果努力些,本周做的修改也可以在同一天发布。如果在特定的周期里没有足够的时间把功能开发出来,这个问题不大(除非有硬性的外部依赖)—功能会在完全完成后打包发布。

 

k)       周二程序发布时,所有在本周有提交过代码的程序员都要求在现场留守

 

l)         在发布开始前,所有的开发人员的需要在特定的IRC频道里等候“点名“,如果没到的话,将会得到一次公开的批评。

 

m)     员工不会因为制造了bug而被开除。他们只会因为当有他们的代码被发布,有问题需要他在现场出现,但却没有出现来提供支持时被开除;被公开批评要比被开除恐怖的多

 

2)      实施组发布程序上线是一个逐步的过程

a)        整体思路:测试通过后,产品质量基本有保证。即使有漏测的bug,只会影响很少量的用户。及时监控到问题。及时修复。

 

b)       Facebook大概有6万台服务器

 

c)       程序的发布有9个的规模级别,有几个级别的发布并不是集中式的。有三个阶段是集中部署的(阶段1 =内部发布,阶段2 = 小规模外部发布,阶段3 = 完整外部发布 )。其它6个阶段是辅助操作,包括内部工具部署,视频部署等。”

 

d)       最小层级的部署只涉及6台服务器,周二的新版本发布会从6台服务器开始(级别1),实施组观察这6台服务器,确保它们都能正常工作,才能推进到下一级别发布。

 

e)        如果发布过程中出现问题(例如,抛出错误信息等),发布会终止。提交这些导致错误的程序的程序员会被叫来修正问题。然后发布会重新从级别1开始。所以,发布有可能会反复重复几个级别: 1-2-3-修复。回退到 1. 1-2-3-4-5-修复。回退到 1.1-2-3-4-5-6-7-8-9。

 

f)        实施组的服务器测评是基于常见错误日志、负载&内存使用统计—包括用户行为统计。例如,如果新推出的发布导致了用户使用Facebook功能特征的百分比下降,实施组能在他们的统计工具里看到这种变化,他们会停止这一版的发布,调查其中的原因。

 

g)       发布过程中,实施组使用以IRC为基础的调度系统,用它可以在需要的时候通过Facebook,email,IRC,IM,以及短信找到相应的人。对实施组的呼叫不响应的会受到公开批评。

 

h)       一旦程序部署到级别9,稳定下来,这周的发布就是完成了

 

 

3)      如何培养新人

a)      第一周的周一,新来的工程师们在公司自助餐厅里和负责他们的导师(Mentor)吃完中饭后,为期六周的强制性训练营就拉开了序幕。每人会看到6封电子邮件,其中1封是欢迎信,另外5封介绍了他们将要执行的任务,包括修复Facebook网站上的错误。训练的目的很多,其中之一就是让新员工充分认识到,他们拥有直接改变Facebook网站的力量。

 

b)      头三周有很多课程要上。一般公司的COO(首席运营官),CPO(首席产品官),工程副总裁都会在第一周给新人们介绍各个部门概况,给大家一个全局的认识。第二周,重点在于公司各个重要产品,常用的技术框架和技术工具的介绍。第三周,集中在公司的运营(包括市场,销售等部门),商业模式(Facebook主要的广告模式和虚拟货币的盈利手段)和其他非产品技术部门的介绍。

 

c)       从第三周开始,新人们就开始接触很多相关的需要招人的组,和这些组的经理交流,了解这些组的产品,参加这些组的会议和讨论。一般要求在第三周的周末,新人要选出不多于三个组作为他们感兴趣的备选组。接下来每一周的事情就是进一步缩小目标范围,以达到在第六周时只剩备选组的目的。这个组当然就是新人最后要加入的组。

 

d)      从第一周到第六周,所有新人60%以上的时间,都需要花在修复代码错误上面。其他所有的事情应该在剩余的40%时间内完成。Facebook相信,让工程师融入公司最好的办法是通过代码的交流。毕竟,产生高质量的代码的确是所有工程师最主要的工作。

 

 

4) 招什么样的人?

     a) 高智商的人。经验丰富的10年以上的工程师可以可靠的完成事情,但是高智商的人,即使经验不丰富,但是他们会在很短的时间做到前者一直都做不到的事情,这才是Facebook最需要的人

 

     b) 对Facebook的事业有认同感。这样的人会真心付出!

     

5) 产品研发

     “我 们并不只注重单一用户的使用体验,而更关注其是否影响整个社区和产品,所以需要在产品开发的各个环节做取舍。例如用户的信息只分享给与之有联系的其他用 户,而不是所有的用户。取舍的度,那是靠直觉。直觉依赖于产品的目标,我们产品的目标是长期的使整个社区和用户群体的利益最大化”

 



 

 

文章摘自以下链接,感谢原作者的辛苦工作:

http://www.aqee.net/how-facebook-ships-code-facebook/

http://blog.jobbole.com/30278/

http://video.sina.com.cn/v/b/49752787-2036021381.html

http://blog.jobbole.com/29907/

 

 

格拉姆角场(GAF)实战:用Python实现时间序列图像化处理 本文深入解析了格拉姆角场(GAF)技术,这是一种将一维时间序列转化为二维图像特征的方法,以便利用卷积神经网络(CNN)等图像模型进行深度分析。文章通过Python实战代码,详细演示了GASF和GADF两种核心转换的实现过程,并探讨了其在时序数据分类任务中的应用,为故障预警、金融模式识别等场景提供了强大的图像驱动分析视角。 阅读详情

相关推荐

具身智能与空天具身智能:从理论到实践的AIBOX技术革命

本文深入探讨了具身智能从理论到实践的发展,重点介绍了AIBOX技术如何作为边缘智能计算模块,为无人机、机器人等无人系统提供可进化的“大脑”。文章通过空天具身智能等应用场景,阐述了AIBOX在实现感知、决策、行动一体化闭环中的核心作用,并展望了其在协同智能与规模化部署中的未来挑战与机遇。

lll78的博客 767

Facebook 的系统架构

来源:http://www.quora.com/What-is-Facebooks-architecture (由Micha?l Figuière回答) 根据我现有的阅读和谈话,我所理解的今天Facebook的架构如下: Web 前端是由 PHP 写的。Facebook 的 HipHop [1] 会把PHP转成 C++ 并用 g++编译,这样就可以为模板和Web逻贺业务层提供高

每天积累一点,一年后你会发现,自己变化很大 1298

计算机视觉:暗通道去雾算法的原理及python实现

在绝大多数非天空的局部区域中,某些像素总会至少有一个颜色通道的值很低。对于一幅图像J(x),其暗通道的数学定义表示如下:其中,Ω(x)表示以x为中心的局部区域,上标c表示RGB三个通道。该公式的意义用代码表达也很简单,首先求出每个像素RGB分量中的最小值,存入一副和原始图像大小相同的灰度图中,然后再对这幅灰度图进行最小值滤波,滤波的半径由窗口大小决定。

weixin_51998427的博客 1万+

刚收到了Facebook的Offer,我是这样为面试做准备的

我刚刚在硅谷的科技公司完成了7次现场面试,我收到了来自Facebook的软件工程师的职位Offer。下面分享一下我是怎么为面试做准备的,以及我在这个过程中学到的东西。(一)为了能到硅谷工作,我已准备多年当我还在澳大利亚的大学学习计算机科学的时候,我总是想象着未来能成为硅谷的一名软件工程师。我希望自己未来能够到科技行业的创新中心硅谷去工作。这个目标让我充满了动力,它也让我能够更加专注地准备面试。为了

java面试笔试 2710

STM32F407通过SMBus协议精准读取BQ40Z50电池电量

本文详细介绍了STM32F407通过SMBus协议精准读取BQ40Z50电池电量的实现方法。从硬件连接到软件驱动开发,再到通信异常排查,提供了完整的解决方案。重点解析了SMBus协议的特殊时序要求、GPIO模拟驱动的关键代码,以及实际调试中的常见问题与对策,帮助开发者高效完成电池管理系统开发。

weixin_29189003的博客 253

Petalinux 2021.2 下 Qt组件编译报错?手把手教你修改bb文件搞定qt3d/qtquickcontrols2

本文详细解析了Petalinux 2021.2环境下Qt组件(如qt3d、qtquickcontrols2)编译报错的解决方案。通过修改bb文件或使用bbappend文件覆盖,有效解决`petalinux-build --sdk`命令执行时的源码获取失败或哈希校验不匹配问题,并提供验证与调试技巧,帮助开发者快速修复构建流程中断问题。

weixin_29188997的博客 216

Facebook是如何管理员工队伍的?

Facebook的高管表示,Facebook的发展非常快,于是只好在“不学习就完蛋”的工作环境实施新的员工考评方式。   Facebook是一家超快速发展的公司,由名为新千年一代的员工组成,又恰恰为新千年一代的用户服务。对这家公司来说,每六个月一次的员工考评周期适应不了需要。   Facebook董事会主席DonGraham的女儿MollyGraham近日出席了在加利福尼...

weixin_33985679的博客 321

ABAP HANA BP主数据批导

SAPhana官方推荐的创建bp主数据的类是CL_MD_BP_MAINTAIN 客户的创建具体示例代码如下: DATA: LT_RETURN_MAP TYPE MDG_BS_BP_MSGMAP_T. DATA: LS_RETURN_MAP TYPE MDG_BS_BP_MSGMAP. DATA: LS_MESSAGE_MAP TYPE MDG_BS_BP_MSGMAP_KEY. DATA: LT_DATA TYPE CVIS_EI_EXTERN_.

IamRunjiang的博客 4143

产品读书《Facebook效应:看Facebook如何打造无与伦比的社交帝国》

电影:社交网络       这本书讲述了facebook从如何创建、到风靡全球,并结合facebook的网络效应讲述为什么facebook可以做到社交龙头。读这本书的时候想起了之前看的一部电影,算是对扎克伯格创立FB帝国的一个写照,觉得挺有意思,推荐看看,这里我从三方面分别介绍一下我的收获,一是从这本书中悟到的精髓,二是关于扎克伯格本人的做事风格和人格魅力,三我对FB公司发展史的了解来记录我的...

女王の专属领地 7803

【Bug已解决】Codex 切换 model_provider 后历史会话消失的解决方案

方案适用场景推荐指数切回原 provider 验证排查的第一步,确认数据是否真的丢失⭐⭐⭐⭐⭐查看本地会话文件进一步确认数据完整性⭐⭐⭐⭐⭐查阅跨 provider 恢复命令官方是否提供了对应功能⭐⭐⭐使用社区辅助工具需要频繁切换 provider 的场景⭐⭐⭐定期备份配置目录任何场景下的通用保险措施⭐⭐⭐⭐切换后历史会话"消失"的本质是客户端的会话列表展示逻辑受当前活跃 provider 状态过滤,而不是原始数据文件被真正删除。

一键难忘的博客 5999

华为 MetaERP 总账模块依托 “交易即核算” 的事件驱动架构,与 Oracle EBS 相比,更强调业务事件自动触发财务动作、实时数据同步和智能规则引擎,实现业务与财务的深度融合

华为MetaERP总账模块采用"交易即核算"架构,相比Oracle EBS实现了三大突破:1)业务事件自动触发财务动作,如采购收货自动生成暂估凭证;2)业务财务数据实时同步,支持即时分析;3)内置智能规则引擎,实现自动匹配、核销和结转。该模块覆盖采购、销售、资产、薪酬等全业务场景,支持多维核算和关联交易自动抵消,显著提升核算效率与准确性。其中采购暂估、销售结转等场景实现全自动化处理,较EBS减少80%手工操作。

金牌架构师 225

西瓜创客+Leangoo敏捷实践企业案例分享

西瓜创客是一家知名在线少儿编程教育公司,面向7-12岁的小朋友提供编程启蒙与思维训练,全面提升孩子的学习力与创造力。 西瓜创客的编程课自2017年4月在互联网上第一次亮相至今,已经获得了来自红杉和经纬等一线基金近亿元投资,成为全球六十多个国家十万个家庭和孩子的选择与热爱。西瓜创客80%的用户来自国内一线与新一线城市的高学历、高净值与高认知家庭,并且逐渐获得二、三线城市新中产家庭的追捧。 企业内...

1678

白话机器学习算法理论+实战番外篇之Xgboost

1. 写在前面 如果想从事数据挖掘或者机器学习的工作,掌握常用的机器学习算法是非常有必要的,在这简单的先捋一捋, 常见的机器学习算法: 监督学习算法:逻辑回归,线性回归,决策树,朴素贝叶斯,K近邻,支持向量机,集成算法Adaboost等 无监督算法:聚类,降维,关联规则, PageRank等 我前面已经尝试用最白话的语言完成了一个白话机器学习算法理论+实战系列,这个系列已经基本包含了上面这些算...

Miracle8070 1万+

《打造Facebook》

王淮的《打造Facebook》一书不厚,花半天时间轻松读完。书中没有大段的说教,只有近乎流水的陈述。正如作者所说,打造Facebook这本书由巴克伯格来写再合适不过。可惜他至少在近几年内没有这个打算。而王淮作为加入Facebook最早的员工之一,以工程师角度描述的视角恐怕更适合我们。 战略眼光很重要。在Facebook聚合了大量的用户以后,马克伯格在最早的时间决定将Facebo...

dashumao0228的博客 141

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

探索Facebook大胆创新之谜

作为全球最大的社交网站,Facebook却一直致力于各种看似与公司业务无直接关系的软件工具的开发。目前,仅Facebook设立的开源项目已经超过了200个。其中,包括React、GraphQL、ComponentKit和HHVM等在内的多个项目已经拥有独立的开源社区,改变了很多设计师思考和开发的方式。那么,究竟是什么原因使得Facebook设立并产生那么多新奇项目呢?React和GraphQL等多...

weixin_33796177的博客 134

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

以Facebook为案例剖析科技公司应有的工具文化

前言 前段时间和大众点评的CEO张涛聊天的时候碰到内部工具这个话题,我们都非常推崇一个优秀的技术公司应有有一个非常强势的工具文化。在工具上,我有很深的体会,我说那不如我把我的理解通过Facebook的一些实践例子来阐述一下,希望对科技公司有些帮助。 不断发展、改进公司的内部工具,可以极大提高每个员工的工作效率,可以减少运营人员的数目;这样既改善了整体协调,又减少了整体开支。 为了帮助工程师更

李志涛的专栏 1326

雷锋读图:一图读懂Facebook如何高速运转的

虽然Facebook自上市以来股价一直下跌,不到两个星期的时间股价已从开盘价的42.05美元跌至28美元左右,外界也开始纷纷对Facebook产生怀疑。在法国著名咨询公司faberNovel看来,虽然Facebook目前面临一些问题,但是从长远来看,Facebook依然还是一家很棒的创业公司。下面我们就通过一组图片和数据来更加直观地解读Facebook的伟大之处。 完整PDF下载...

java开发指南博客 【转载】 84

facebook的内部晋升

最近看了一部电影《社交网络》,主要讲述了Facebook的初期创业等等故事,至于其中的真与假我不晓得,但是还是觉得很不错的。无意中看到了这篇文章就看看觉得也很有道理。Facebook前工程总监黄易山(Yishan Wong)撰写了一系列文章,很好地总结了Facebook卓越研发文化中的宝贵经验。本刊将继续连载这一系列,本文是第三篇。建设一家健康长久的公司,“从公司内部提拔管理者”是一条

a376590153的专栏 656

全面解析杭州Facebook代运营公司排名及其服务优势

杭州的Facebook代运营公司在服务内容、地域优势、专业团队、定制化服务和高效沟通等方面具有显著的优势。企业在选择代运营公司时,除了参考这些优势外,还应根据自身的需求和预算,综合考虑公司的排名、客户评价和成功案例等因素。

xwjgg_的博客 1008

在创业公司工作不划算了!

金钱和福利对大多数人来说都是强大的驱动力,以至于由于大型科技公司的资源不断扩张,整个行业已经转型,而初创公司未能跟上大厂的步伐......作者 |zainamro译者 |王艳妮,责编...

优快云资讯 2848

Facebook(一)招聘是第一位的

Facebook:招聘是第一位的热4已有 100 次阅读  2011-03-26 20:17Facebook前工程总监黄易山(Yishan Wong)撰写了一系列文章,很好地总结了Facebook卓越研发文化中的宝贵经验。本刊将陆续连载这一系列,本文是第一篇。从2006年底到2009年初,我有幸在Facebook的工程部门先后担任了不同的管理职务

神叹的专栏 868

Facebook的内部晋升

文/黄易山 Facebook前工程总监黄易山(Yishan Wong)撰写了一系列文章,很好地总结了Facebook卓越研发文化中的宝贵经验。本刊将继续连载这一系列,本文是第三篇。建设一家健康长久的公司,“从公司内部提拔管理者”是一条广为人知的建议。这条建议也同样适用于规模较小、发展迅速的创业公司。 内部晋升的困难 对于超速发展的创业公司来说,秉持内部晋升的方针既非常有必要,同时又非常困难,具...

《程序员》官方BLOG 362

前 Facebook 工程总监黄易山的总结的 Facebook 五条工程管理经验

前 Facebook 工程总监黄易山的总结的 Facebook 五条工程管理经验:            招聘是第一位的;            让亲身实践者执行工作流程;            内部晋升;            工欲善其事,必先利其器;            技术型领导。 ====================================土豆的华丽分割线====

ylqmf的专栏 2671

TechCrunch:人人不是中国的Facebook

【搜狐IT消息】北京时间5月3日消息,人人公司将于本周四在美上市,发行价格区间从最初公布的9-11美元提高到了12-14美元,这意味着该公司融资规模可达7.43亿美元。 为此,著名科技博客Techcrunch对人人公司的优势与劣势进行了详细分析。 优势: 1. 它也许是中国拥有的和Facebook最相似的网站 人人网的创始名为“校内”,和最初的Facebook一样活跃于北京上海等著名大学的学生中。如果不算和Twitter类似的新浪微博,人人网也许是中国城市青年、大学生和毕业新人中的最流行的社交网站。 2.

sailcjy的专栏 758

覆盖全领域:Google、Facebook、Twitter等大师的优秀推荐

Dodgy Coder发布了一篇关于高访问量公司扩展经验的总结文章,内容主要是High Scalability Blog上关于Google、YouTube、Twitter、Amazon、Ebay、Facebook和Instagram博文的摘取。 在具体看每个公司之前,先看一下这7个公司中的通用思想: 让应用程序保持简单——在扩展过程中、复杂性总会一直出现。让所有事情都自动化——

Zonelan 1873

Facebook企业文化:工程师文化是创造力引擎

听到这里,你可能会说,黑客不是一个贬义词吗?事实上,黑客在程序员界本是一个褒义词,指的是动手能力极强的程序员,他们创造、实验、打破常规,可以让计算机做任何他想做的事儿,即使计算机本身不同意。但现在,黑客却和入侵电脑系统为非作歹的罪犯画上了等号。这个误解极深,以至于业界大神保罗 · 格雷厄姆(Paul Graham)专门写了一篇文章“

qq_33240556的博客 1236

Facebook收购史:四年14家公司旨在吸纳人才

自2007年Facebook完成第一笔收购交易后,在过去的四年中,Facebook已经收购了14家初创公司,每家几乎都斥资数百万美元,Facebook的创始人Zuckerbeg在斯坦福2010初创企业学校活动中曾表示,这并不是因为Facebook想要这些公司的技术,而是在于得到优秀的工程技术人才。以下便是国外网站总结的Facebook收购史。 1.Parakey 公司简介:Parakey打算成...

weixin_30401605的博客 239
上一篇: DAD(有纪律的敏捷交付)在不同类型交付的应用
下一篇: 敏捷实践-微软实施敏捷的经验
Andy_AgileDo
博客等级 码龄17年 69粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值