Facebookのエンジニア絶対主義ともいうべき文化とコードリリースのプロセスを書いた貴重なブログエントリ。Facebook内部の人間の修正も入っている。面白い!
新人のブートキャンプが4-6週間も続くのか。ここで10%が落ちこぼれるそう。ブートキャンプを終えたエンジニアなら誰もがどのコードにも触れられて、コミットすることができるのだそうだ。たぶん一つの巨大リポジトリなんだろうな。後ででてくるけれどsvnを使っているようだ。QA部門はそれ自体ないそう。気づいた人が誰でもQAになるという方式みたい。ただ、svnにコミットするときに、一人以上のコードレビューをするそうだ。ザッカーバーグもニュースフィードに関しては未だにコードレビューしているそうだ。エンジニアはフロントからエンド、QAにいたるまで全ての仕事をこなすそうだ。
プロダクトマネージャーはあまりリスペクトされていないし、それほど権限があるわけではないので、自分のプロダクトの開発エンジニアを集めるには、エンジニアに魅力的に見えるように努力しなきゃいけないんだって。仕事はエンジニアの方から選ぶことできて、UIよりもバックエンドの難しい仕事のほうがリスペクトされるそう。
リリースは毎週火曜日の「ウィークリープッシュ」だそう。超巨大サイトなのに全体リリースを毎週するのか…すげえ。このウィークリープッシュが一大イベントで、その前までにできているルートリポジトリにあるプロダクトを、9つのステージングを経ながらリリースするそうだ。リリースの時は、自分がそのリポジトリにコミットしたエンジニアなら固唾を飲んで「オンサイト」で見守っているそう。どこかのステージで問題がおきたらすぐにオペエンジニアがIRCやメッセージングツールで問題を起こしたエンジニアを呼び出し、修正を要求するそう。修正する方も2000人以上の衆人環視の中で晒しあげられながら修正させられるから、極度の緊張感と使命感そして自分の名誉と能力をかけて対応するそう。これはコエエエ…。多分、この一週間リリースという長短期サイクルが、Facebookの超プロダクティビティを生んでいるんだね。
オペエンジニアはムチャクチャ一流のエンジニアでビジネスも理解している人間が揃っていて、皆から尊敬されているそう。
また超プロダクティブな環境だけれど、バグを生んだという理由でクビになったり、サービスダウンをさせたからいう理由でクビになるような文化ではなく、ミスはある程度寛容に受け止められているそう。でも、エンジニアとしては、衆人環視の中で自分のプライドと能力をかけて作業をするので、エンジニア全体の学習効果が高いそうだ。
そうか、留まるところを知らないFacebookの快進撃は、このようなエンジニア絶対主義という文化、ウィークリープッシュという超短期サイクルの強制成果排出機構によるんだね。
だからfacebookのUIが残念系なのか
(via kushii)