Google社の社内開発体制について紹介しているページ。世界的なWebサービス企業の開発体制はどうなってるんでしょうか。気になりますね。
印象に残った点はいろいろありますが、意外に普通というか、半分は驚くほどユニークなわけではない感じ。ただ良いといわれている手法はきっちり取り入れているということと、ドキュメント・評価、お金関係などについてはユニークで印象的です。
- 社内にグローバルなリポジトリが1つある
- 少人数チーム制
- ボトムアップ開発
- 上司もエンジニア(上司の上司とかそのまた上司はどうなってるんだろう)
- ドキュメントはwikiやGoogle Docsなどで共有
- コードレビューとユニットテストが必須
- チームは地理的に離れていることが普通(IMやMLで情報交換)
- 売れるかどうかより使ってもらえるかどうかを重視
- 業務の20%の時間を自由なプロジェクトに使ってよい
- その他
概ね昔から良いといわれている手法を取り入れている感じです。今までいろいろなところで実践してきて実績のある方法のショーケース的な印象とユニークな手法の組み合わせですね。
チーム構成については、僕はいまだに"外科医チーム"的チーム構成がいいと思っている人。リーダを中心に数人の少人数チームで各人役割分担する構成。ただ驚いたのチームが地理的に離れるのが普通であるということ。どうやってうまく運営するのか興味があります。時差もあるでしょうし、オープンソース開発の体制に近い感じなんでしょうか。リリース期限の管理なんかも自主的?なんでしょうかね。
あとドキュメントやアクティビティの報告も義務的なものではなく、実際に役に立つもの、同僚の評価を受けれるものでなくてはいけないと思っているので、wikiやなんかでドキュメント共有するのはいいですね。
もう一つ。エンジニアの上司はやはりちゃんと評価できる人でないと意味がないので、全くエンジニアでない人がするのは間違いだと思っているところ。ただし、上に行けば行くほど、いずれは経営やマネージメント専門の人間と交わるので、そのあたりがどうなっているのかが興味あります。
まあ、お金よりトラフィックというのはWeb企業ということが関係しているのか、余裕のある会社だから出来る体制なのでしょうね。なかなかいい手法を取り入れられない会社では"Google"でもこうやってる!と上司を説得する材料にできるかもしれません。特に優秀な人に力を発揮してもらうにはやはり自由と自主性が重要なんですね。このあたりは日本の企業が苦手とするところです。