• Facebook的工程师文化——《打造facebook》读后感


    在今年北京的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的黑客文化。

  • 相关阅读:
    JavaScript是单线程的
    JavaScript异步
    对象和文本间的转换
    json注意事项
    什么是 JSON?
    定义 Teacher() 构造器函数
    给每一个缩略图添加点击处理器
    新的事件触发机制被定义在 Document Object Model (DOM) Level 2 Events Specification,
    事件在浏览器窗口中
    在代码中做决定 — 条件在任何程序语言中
  • 原文地址:https://www.cnblogs.com/kingzzm/p/3321694.html
Copyright © 2020-2023  润新知