鵜飼文敏さんの話(Google Developer Day 2007 (GDD07)レポート・其の二)

さてと、いまさらながらGDDレポの続きをつらつらメモっとくか。

Software Engineer in Google

Googleでは、一人の人が設計、開発、テストまで全部担当する。1チームはだいたい2〜6人。開発時は「Snippets」と呼ばれるコミュニケーションツールを使って、毎週自分が何をやったかをチームメンバー間で共有しているらしい。週報みたいなものか。で、こいつはコミュニケーションのためだけではなく、四半期ごとに行われる業務評価の際に、自分が何をやってきたのか確認するためにも使える。これは私も同意。私も、週報を出す義務は特に無いんですが、日々どのような仕事をこなしたかメモっておいて、評価のときに役立ててます。
で、テスト、i18n等と言った、どのプロジェクトでも共通して行われるような作業についてはプロジェクト間の壁はなく、別のチームが別のチームのプロダクトのテストに関わる、といったこともあるのだそうな(これを「intergrouplet」と呼ぶそうな)。
で、設計時には有名な「DesignDoc」を書くのですが、このとき「Why,How,Who」が重要なのだそうな。内容としては大まかなアーキテクチャから、テスト、モニタリングのプラン(障害時にどう対応するかのプラン等)、そしてセキュリティー、プライバシーに関する考察、などなど。だいたい1,2週間かけて書く。詳細に書く必要はなくコードに落とせるところは書かない、というスタンス。
レビューもかなり頻繁に行う。リーダビリティーテストといって、コーディングスタイルの統一を図るためのレビューもある。さらにプログラミング言語ごとの専任のレビュワーもいるのだそうな。鵜飼さんは週3〜5くらいレビューに出ているらしい。
鵜飼さんが、この一年で行ったパッチ作業の総計をグラフにしたものが紹介されたが、これによると3万件/年のパッチをあてているらしい。また、Googleの特徴としては、偉い人ほど大量のコードを書く傾向があるらしい。一般的な企業とは逆ですね。
テストについて。会社のトイレのドアの内側には「Testing on the tilet」ということで「テストの上手なやり方」みたいなメモが貼り付けてあるらしい。
ソースコード管理は、perforceを利用。perforceってまったく知らなかったんだけど、有償のソースコード管理ツールらしい。マージ・ユーティリティが激しく便利そう。

ソフトウェア構成管理(SCM)システム PERFORCE
http://www.toyo.co.jp/ss/perforce/

レビューは、社員であり、python生みの親のGuido van Rossumが作成したツールを使っているらしい。これは完全にinternalなツールっぽい。
職場環境としては、1部屋に2-4人が一緒に作業をしており、またMt.viewの本社ではほぼ毎日「TechTalk」とよばれる技術セミナーが行われている。で、鵜飼さんはだいたい「出社→メールチェック→メシ→コーディング→帰る」という毎日を送っているのだそうな。
20%ルールについては、毎日100%同じことばかりやっているとどんどん視野が狭まっていくので、すごく重要なのだとか。ふむふむ。

レセプションパーティー

すべてのセッションの終了後は、立食形式のパーティー。Google社員の方々をはじめ、いろんな人と話ができてかなり良かった(id:kasei_sanさん、お世話になりました!)。会場がホテル日航ということもあり、メシもかなりおいしかった。最後にお土産としてグーグルTシャツをもらって帰宅(これでTシャツ3枚目)!

  • -

以上メモでした。