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 内で出たアイデアのうち、実際世の中に出るものの割合は?
- アイデアだけで終わるものもあるが、いったん走り出せば大体は世に出る。
- 日本語のメーリングリストもあるのか?
- メーリングリストなどはすべて英語。前述の
セコメントをする