转:Facebook是如何发布代码的
Yee Lee(Skype的一位产品经理)整理了大量笔记,详细描述了Facebook是如何发布代码的。Facebook采用的是开发者驱动的文化,它由两支大的团队组成:工程师与运维。Facebook里经理与工程师的比率平均在1-7到1-10之间。所有工程师都要经历新人训练营,期间他们修复错误,参加高级工程师的讲座。
一位工程师说到“产品经理在这里其实没什么用。”工程师可以在中期修改需求说明、重新安排项目中的工作,任何时间都可以注入新特性[...],很明显,Facebook的文化很包容产品管理实践,因此产品管理的角色并没有被忽略或是省略掉。
就Yee看来,Facebook公司的文化就是这样,每个人都感觉对产品负有责任。要有影响力的关键是和工程经理搞好关系。
工程师自己处理全部功能,从JavaScript到数据库代码。工程师还要负责测试、修正错误、对自己的工作进行上线后的维护。Facebook也有QA,但不是正式团队。实际上,所有的变更都强制要求做代码审查。一个Facebook的员工补充到:
大多数工程师都有能力写出没有错误的代码,只是在大多数公司里他们没有这个动力,当有QA部门时,只要把简单地代码扔给它们去找错误就好了。
Facebook采用的是每周发布,代码最终要发布到Facebook的60,000+台服务器上,发布分为9个阶段,从第一阶段6台服务器开始。
项目都是自愿参与的,有人说服大家来实现他的想法,工程师会决定是否参与。
运维对Facebook的成功是至关重要的。
运维团队训练有素、受人尊敬,而且很有商业意识。他们的服务器度量指标远不止常用错误日志、负载&内存利用状态,还包含了用户行为。
Facebook是当今最具可扩展性的Web平台之一,访问量超过400亿页/天。如果没有好的机遇和那工程师驱动的文化,这一切都是不可能的。
查看英文原文:How Facebook Ships Code