在今年北京的QCon大会上听了facebook早期中国籍工程师王淮的演讲,受益匪浅,主题是如何打造高效能团队,主要介绍他在facebook的一些经历和管理上的经验分享。现在的他是一名天使投资人,投资的领域有移动互联,支付,云应用等。他还写了《打造facebook》一书,讲了facebook的公司文化和他在其中的开发管理等经历。

工具文化

这本书给我印象最深的一点是facebook的”工具文化”。为帮助工程师更好的进行产品开发,facebook对内部工具Tools是非常关注的。facebook极力强调,要将最好的工程师放到工具开发这一块,因为工具做好了,可以达到事半功倍的效果,所有人的效率都可以提高,而不仅仅是工程师。还有通过工具来解决流程上面的问题,比如公司在推广一些规范性的规则,传统的方法是反复强调,另一种是开发出好用的工具,将这些东西固定在工具里面,借助工具进行强制性推广。不断的更新和完善公司自己的工具,并将公司的企业文化也融入到工具之中,有时候比找到一个伟大的创意更重要。

facebook研发的工具有很多,比如新人刚加入facebook时,需要分配自己的开发服务器,facebook就有一个工具来管理公司的开发机器。在这个工具上,你可以看到所有机器的详细信息,包括分配给什么人,什么时间分配的,机器的配置信息等。在还未申请的机器上面,只需要点击一个按钮就会帮你安装好开发服务器,非常方便和简单。对于我们开发人员来说工作主要是写代码,facebook针对代码管理业开发了很多工具。比如有一款工具是在开发人员提交代码之前对代码进行检查,如果代码不符合代码规范或者没有写测试案例,工具会发出警告并交给开发人员修改。还有一款code review的工具叫Phabricator,开发人员可以在上面针对每一行代码进行讨论,如果代码有问题,代码审查者可以提问题,或者让代码提交者修改等,只有代码明确接受后,才可以提交到服务器的代码库中。这些工具的理念是将重复性的劳动交给电脑来执行,以”Don’t Make Me Think”的方式来推广好习惯。

黑客文化

facebook一直强调公司的黑客文化,总部基地建有”黑客广场”,公司内部随处可见的黑客标志,facebook还会定期举行黑客马拉松(Hackathon)。像Google 允许员工用工作时间的20%来做自己喜欢的东西一样,Hackathon也是facebook让员工保持创造力,避免工作枯燥而失去工作激情的一种方式,在这个过程中,也催生了很多伟大的作品,比如timeline(时间轴),全屏照片视图等。参加Hackathon虽然是自愿的,但facebook强烈建议每个员工都去参加Hackahton,甚至有的工程师因为要安排产品上线而无法参加Hackathon,公司会调整产品的上线时间来让工程师去参加Hackathon。

facebook的CEO 扎克伯格本身就是一个黑客,看过《社交网络》的朋友都会记得电影开始的那一段场景,扎克伯格做了一个哈佛版美女评选网站(Facemash),为了得到更多女同学的照片,他黑进了当时学生宿舍里面每个学生的电脑去获取他们同学的照片。扎克伯格想打造独一无二的企业文化和管理方式,他将公司的这种文化称之为”黑客之道”(Hacker Wiay),他诠释说,黑客文化是一种持续改进的做事方法,黑客迅速发布小规模的更新,然后从中获取到经验,在下一次更新中更好的改进,直到产品完成(有点敏捷开发的意思)。Done is better than prefect(完成胜于完美),这是facebook对这种黑客精神的诠释。

facebook的黑客文化还包括一种亲身实践,积极进取的精神。Code Wins Arguments(代码胜于雄辩),在facebook的产品开发过程中,经常会有一个工程师站出来说,给我2天的时间我做个demo出来,证明我的想法是可行的。facebook不会有那种长达几天的马拉松会议,工程师们会开发出产品原型来证明是否行得通,在facebook每个工程师都是顶尖的人才,他们具有这样一种快速开发的能力。

书中除了谈到上面所讲的这些点外,还谈到了作者在facebook中的项目管理经验,适合做项目管理的同学参考借鉴,最后希望大家也喜欢facebook的黑客文化。

Facebook的工程师文化——《打造facebook》读后感的更多相关文章

  1. 只有好的棋手才会走运-《打造Facebook》读后感

    王淮的<打造Facebook>一书不厚,花半天时间轻松读完.书中没有大段的说教,只有近乎流水的陈述.正如作者所说,打造Facebook这本书由巴克伯格来写再合适不过.可惜他至少在近几年内没 ...

  2. fir.im Weekly - 如何打造真正的工程师文化

    好的工程师,无法忍受低效且无趣的工作.优秀的技术团队应该自上而下的地推进技术平台化建设.DevOps.自动化构建.测试和部署流程,积极采用合适的第三方工具或创造工具,进行周期性的前沿技术分享等等. 先 ...

  3. 《打造Facebook》

    王淮的<打造Facebook>一书不厚,花半天时间轻松读完.书中没有大段的说教,只有近乎流水的陈述.正如作者所说,打造Facebook这本书由巴克伯格来写再合适不过.可惜他至少在近几年内没 ...

  4. 然爸读书笔记(2013-4)----打造facebook

    扎克伯格的真实一面 (1)在公司内部知无不言,扎克伯格在公司内部问答时间.尽可能回答员工的任何问题,保持足够的透明度. (2)员工只有做到对外守口如瓶,我们才能做到对内知无不言. (3)faceboo ...

  5. Facebook资深工程师带你学Python核心技术

    人工智能时代下,Python毫无疑问是最热的编程语言.在推开Python的大门后却发现,Python入门容易但精通却不易. 想要精通这门语言,必须真正理解知识概念,比如适当从源码层面深化认知,然后熟悉 ...

  6. 什么是工程师文化?各位工程师是为什么活的?作为一个IT或互联网公司为什么要工程师文化?

    为什么要工程师文化? 看看最近二十年来社会的发展,计算机和互联网已经渗透到了这个社会的每一个角落,各式各样的计算机技术成为了整个世界发展的强大引擎,各式各样的创新,无论是业务创新还是技术创新,都是依托 ...

  7. 揭秘FaceBook Puma演变及发展——FaceBook公司的实时数据分析平台是建立在Hadoop 和Hive的基础之上,这个根能立稳吗?hive又是sql的Map reduce任务拆分,底层还是依赖hbase和hdfs存储

    在12月2日下午的“大数据技术与应用”分论坛的第一场演讲中,来自全球知名互联网公司——FaceBook公司的软件工程师.研发经理邵铮就带来了一颗重磅炸弹,他将为我们讲解FaceBook公司的实时数据处 ...

  8. 再谈IT行业工程师文化

    为什么是再呢?因为“工程师文化”这种说法网上很多,各种理解,各种版 本,我只是简单说说我的认识,说的不对的地方敬请各位大牛,高手,高高手多多指教,我本身也是个技术人员,不过只是技术不怎么样而已.写这个 ...

  9. 发布到FaceBook试玩广告,FaceBook要求要一个Html文件

    Facebook 试玩广告具体要求: 试玩广告参数是创建试玩广告素材时要满足的要求. 试玩素材应为 HTML5 格式. 试玩广告素材不应使用 mraid.js 格式. 包含所有素材的试玩广告的单个 H ...

随机推荐

  1. scrapy-redis分布式爬虫

    简介 Scrapy-Redis则是一个基于Redis的Scrapy分布式组件.它利用Redis对用于爬取的请求(Requests)进行存储和调度(Schedule), 并对爬取产生的项目(items) ...

  2. 【手机自动化测试】monkey测试

    1             概述 Monkey测试是Android自动化测试的一种手段.Monkey测试本身非常简单,就是模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常. 当Mon ...

  3. ViewPager添加小圆点

    ViewPager添加小圆点很简单,但是如果是网络图片可能就不太好做了,所以我这里给出一种方法,当然你也可以用其他的 1.主界面xml <?xml version="1.0" ...

  4. Openstack(六)RabbitMQ集群

    各组件通过消息发送与接收是实现组件之间的通信: 6.1安装RabbitMQ 6.1.1安装RabbitMQ # yum install rabbitmq-server –y # systemctl s ...

  5. word安装mathtype

    1:window版本的mathtype:https://pan.baidu.com/s/1Yn8kPG9Y9nBPGaotFJaL2Q  ,密码spwm 2:点击exe安装   (安装到c盘,将不会出 ...

  6. 跟我学Makefile(三)

    紧接着跟我学Makefile(二)继续学习:变量高级用法 (1)变量值的替换 :替换变量中的共有的部分,其格式是“$(var:a=b)”或是“${var:a=b}”,把变量“var”中所有以“a”字串 ...

  7. STL学习笔记--序列式容器

    1.vector vector是一个线性顺序结构.相当于数组,但其大小可以不预先指定,并且自动扩展.故可以将vector看作动态数组. 在创建一个vector后,它会自动在内存中分配一块连续的内存空间 ...

  8. TCP三次握手和四次挥手详解

    背景描述通过上一篇中网络模型中的IP层的介绍,我们知道网络层,可以实现两个主机之间的通信.但是这并不具体,因为,真正进行通信的实体是在主机中的进程,是一个主机中的一个进程与另外一个主机中的一个进程在交 ...

  9. Bootstrap风格zTree树形菜单插件

    这是一款bootstrap风格jQuery zTree树形菜单插件,支持自定义编辑.添加列表菜单.删除列表等功能的jQuery树形菜单代码.在线演示 具体代码实现: <!DOCTYPE html ...

  10. bzoj1617 / P2904 [USACO08MAR]跨河River Crossing

    P2904 [USACO08MAR]跨河River Crossing 显然的dp 设$f[i]$表示运走$i$头奶牛,木筏停在未过河奶牛一侧所用的最小代价 $s[i]$表示一次运$i$头奶牛到对面的代 ...