Google のソフトウェア開発 ― 2007年04月29日 19時41分
Google 技術講演会「Developing Software in the Real World」に行ってきました。講演者は Google 東京 R&D センター ソフトウェアエンジニアの南野朋之さん。その 1 週間前に行われた、Mozilla Corporation の Seth Bindernagel と Seth Spitzer との講演会 (Mozilla Party JP 8.0 とは別物) には参加できなかったので、リベンジ (?) という形になります。
南野さんはインターンを経て Google へ入社、Google マップでの写真表示を開発された方で、今回の公演内容は Google でのソフトウェア開発体制、および Photos on Google Maps 開発の舞台裏に関してでした。
Google でのソフトウェア開発体制
- OKR (Objectives and Key Results)
- 四半期ごとに目標 (長期、短期) を立て、成果を評価する。これが各エンジニア、個別チーム (5 ~ 6 人)、会社などさまざまなレベルで行われる。
- 百聞はデモに如かず
- 20% ルールでの成果など、とにかくデモを作る。それに対してチーム内外からフィードバックを受けられる。
- Design Doc
- 実際のコーディングへ移る前に、Why、How を書いておく。
- Weekly Snippets
- 週ごとに今週すること (したことだったかも) を書いておく。
- 強大なインフラ
- 数千台のクラスタ、ペタバイト規模のストレージ、Web データなどを (インターンでも) 自由に扱える。
- 何でも共有
- 全ソースコードは全エンジニアに共有される。Design Doc、Weekly Snippets など、誰が何をしているのかという情報も共有される。
Photos on Google Maps
- 機能概要
- Google マップでお店やホテルを検索した際、その店舗に関する写真をバルーン内に表示する。
- 最初のアイデア
- Web ページ中から住所情報などを元に関連する画像を取得する。
- ノイズの除去
- 複数ページで使われている画像は、サービスのロゴやボタンなどである可能性があるので取り除く。
- イメージ検索チームのシステムを利用してポルノ画像を取り除く。
- 精度の向上
- 住所情報だけでなく、店舗名とともに使われる特徴的な語も利用する。
- デモ
- 自前の HTTP サーバーと Greasemonkey 用スクリプトでデモを作成。
- 公開
- 2007 年 3 月 8 日に公開。海外では Slashdot.org にも取り上げられた (該当するトピックがわかりませんでした) が、日本では反応が薄かった。(私自身気づいてませんでした。m(_ _)m)
質疑応答
- Google をやめた人がソースコードを流出させる可能性について
- NDA により縛られている。また、Google の社訓
Don't Be Evil
には、そのようなマナーに反することをしなくても、良いソフトウェアは作れるという意味もある。さらに、ソースコードが手元にあっても、Google 外でそれを実行するのは難しい (数千大規模のクラスタを用意できないなど)。 - Google 内に外部ソースコードが混入する可能性について
- ソースコードのライセンス専門の担当者もいるはず。(中国語 IME の辞書問題に関しては残念。)
- Google 内で出たアイデアのうち、実際世の中に出るものの割合は?
- アイデアだけで終わるものもあるが、いったん走り出せば大体は世に出る。
- 日本語のメーリングリストもあるのか?
- メーリングリストなどはすべて英語。前述の Design Doc、Weekly Snippets なども英語。
- 個人情報に関して
- 通常のエンジニアはユーザーのアクセスログを閲覧できない。Google Suggest の開発など、特殊な場合は契約書にサインした上で閲覧できるが、それでも生の IP アドレスなどは取得できない (ハッシュ化されている)。メールの盗み見はできない。
感想
Google の強みというのは、強大なインフラと、広範囲からのフィードバックにあると感じました。やはり一人で作業していても煮詰まってしまうところ、Google なら共有されたソースコードを参考にすることもできれば、誰が何をしているのかがすぐわかるので専門の人に聞くことも簡単です。それから英語が重要。読み書きだけでなく会話もできないときつそうな雰囲気です。
しかし、いくら Google 内部で情報が共有されているといっても、外から見ればブラックボックスなので、オープンソースソフトウェアとの関係にどう折り合いをつけていくのか疑問が残ります。(このことについて質問しておけばよかった。)
コメント
トラックバック
このエントリのトラックバックURL: http://nanto.asablo.jp/blog/2007/04/29/1472377/tb
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※投稿には管理者が設定した質問に答える必要があります。