[GoogleAPI][event]Google Developer Day 2008 Tokyoに行ってきた - Googleのソフトウェアエンジニアの日常
2008年6月10日(火) 17:00-17:45
「Googleのソフトウェアエンジニアの日常」@パシフィコ横浜(会議センター) メインホール
グーグル株式会社 ソフトウェアエンジニア 藤島勇造氏
●カルチャー
・Clarity
*目標を明確に延べ、他人の協力を得る
・Transparency
*判断の元となったデータは何か?
どのようなプロセスでどのデータを使って、その判断に至ったのか?
という経緯を明確にする
・Democracy
*命令の連鎖ではなく、総意に基づいて意思を決定する
*社の移転についても、住んでいる場所から全員の総意で決定した
→実例
*20%の時間を使って、グループ横断活動で他エンジニアを支援
*新しく入ってきた人を助けるメンター制度
・Intiate
*問題があれば自分が直す
*責任を持って実現する
・Iterate
*完璧になるのを待つのではなく試してみる
*結果的には柔軟かつ迅速に対処出来る
・Scrappy
*今使えるものを使って目標を実現する
*安く効率的に実現する方法を考える
・Party
*周囲の人を楽しませる
・Celebrate
*地味な仕事、泥臭い仕事にも光を当てる
・Passion
→実例
*利益が出たらプールを作る
●ソフトウェア開発
・分散開発
*すべてのオフィスは対等
* 全世界でひとつのプロジェクトチーム、最も近いオフィスに行く
*複数のオフィスにプロジェクトメンバが分散
*コミュニケーションが鍵
* 時差が最大の問題
・プロジェクト
*多様なプロジェクトが多数ある
*ボトムアップ式で、アイデアがひらめいたら先ずは20%プロジェクトとして開始
・ソフトウェアエンジニアの仕事
*各エンジニアが開発のほとんどに関わる
* アイディア出しから開発、テスト、保守まですべてに関わる
*必要な文書は作るが、不要な文書を作るよりもデモを作ることの方が大切
*言語は主にC++, Java, Python, JavaScript
* 読みやすいコードを書くため、プログラム言語ごとにスタイルを全社で統一している
* スタイルにあったコードを各一を社内で認定
*コードの共有
* 1つのソースコードを全世界で共有
* どんなコードも同僚のチェックを受けなければサービスとしてアップ出来ない
●その他の仕事
・採用活動
*基本的には、ソフトウェアエンジニアは開発に集中
*重要な例外は採用活動への協力
*面接の内容
* コンピュータサイエンスの基礎
* 社風に合いそうか?一緒に働いてお互いにハッピーか?
・業績評価
*四半期ごとに目標の設定と評価
* 一緒に仕事をした人の業績を評価する
●遊び
・遊びは重要
*「遊びと仕事は両立する」という社風
・オフサイトイベント
*年に数回、オフィスを離れてチームビルディング
・部活動
*ジャグリング部
*ラーメン部
*マリオカート部
●私のケース
・入社動機
*優秀な人たちと一緒に、世界中の人に向けてソフトウェア開発がしたい
・入ってみたら
*人間的にも魅力のある人たちが本当に多かった
*想像以上に動きが速い
* やった仕事がすぐに世界に出て行く
* ソフトウェアツールがどんどん改善されていく
*誰が言ったのか?ではなく、その意見が本当に正しいか?が重視される
*エンジニアは尊重/信頼されている
*良いソフトウェアを開発するために、真剣に仕事に取り組んでおり、
必要なら泥臭いことも厭わない
●心がけていること
・分かり易いコードを書く
・他人のコードを尊重する
*全体としての生産性を重視する
・正確かつ簡潔なコミュニケーションをする
*文化が異なる人との、母国語以外でのやり取り
*受け手の負担を考える
・Easier To Ask Forgiveness Than Permission
・仮説立て/仮決定してとにかく進めてみる
・目先の仕事以外にも目を向ける
・良き仲間たれ
*結局これが一番重要
●Q&A
・Googleはどこに向かっているのですか?
→Googleのミッションは世界中の情報を整理し、どこからでもアクセス出来るようにすること
・公開されている他プロジェクトのソースコードは、共有されているだけでなく実際よく見られているのですか?
→関係する他プロジェクトのソースを見たり、新しいメンバが過去に書いたソースを見たり、
新しいプロジェクトに参考になりそうなソースを見たりと、結構な頻度で見ています
「Googleのソフトウェアエンジニアの日常」@パシフィコ横浜(会議センター) メインホール
グーグル株式会社 ソフトウェアエンジニア 藤島勇造氏
●カルチャー
・Clarity
*目標を明確に延べ、他人の協力を得る
・Transparency
*判断の元となったデータは何か?
どのようなプロセスでどのデータを使って、その判断に至ったのか?
という経緯を明確にする
・Democracy
*命令の連鎖ではなく、総意に基づいて意思を決定する
*社の移転についても、住んでいる場所から全員の総意で決定した
→実例
*20%の時間を使って、グループ横断活動で他エンジニアを支援
*新しく入ってきた人を助けるメンター制度
・Intiate
*問題があれば自分が直す
*責任を持って実現する
・Iterate
*完璧になるのを待つのではなく試してみる
*結果的には柔軟かつ迅速に対処出来る
・Scrappy
*今使えるものを使って目標を実現する
*安く効率的に実現する方法を考える
・Party
*周囲の人を楽しませる
・Celebrate
*地味な仕事、泥臭い仕事にも光を当てる
・Passion
→実例
*利益が出たらプールを作る
●ソフトウェア開発
・分散開発
*すべてのオフィスは対等
* 全世界でひとつのプロジェクトチーム、最も近いオフィスに行く
*複数のオフィスにプロジェクトメンバが分散
*コミュニケーションが鍵
* 時差が最大の問題
・プロジェクト
*多様なプロジェクトが多数ある
*ボトムアップ式で、アイデアがひらめいたら先ずは20%プロジェクトとして開始
・ソフトウェアエンジニアの仕事
*各エンジニアが開発のほとんどに関わる
* アイディア出しから開発、テスト、保守まですべてに関わる
*必要な文書は作るが、不要な文書を作るよりもデモを作ることの方が大切
*言語は主にC++, Java, Python, JavaScript
* 読みやすいコードを書くため、プログラム言語ごとにスタイルを全社で統一している
* スタイルにあったコードを各一を社内で認定
*コードの共有
* 1つのソースコードを全世界で共有
* どんなコードも同僚のチェックを受けなければサービスとしてアップ出来ない
●その他の仕事
・採用活動
*基本的には、ソフトウェアエンジニアは開発に集中
*重要な例外は採用活動への協力
*面接の内容
* コンピュータサイエンスの基礎
* 社風に合いそうか?一緒に働いてお互いにハッピーか?
・業績評価
*四半期ごとに目標の設定と評価
* 一緒に仕事をした人の業績を評価する
●遊び
・遊びは重要
*「遊びと仕事は両立する」という社風
・オフサイトイベント
*年に数回、オフィスを離れてチームビルディング
・部活動
*ジャグリング部
*ラーメン部
*マリオカート部
●私のケース
・入社動機
*優秀な人たちと一緒に、世界中の人に向けてソフトウェア開発がしたい
・入ってみたら
*人間的にも魅力のある人たちが本当に多かった
*想像以上に動きが速い
* やった仕事がすぐに世界に出て行く
* ソフトウェアツールがどんどん改善されていく
*誰が言ったのか?ではなく、その意見が本当に正しいか?が重視される
*エンジニアは尊重/信頼されている
*良いソフトウェアを開発するために、真剣に仕事に取り組んでおり、
必要なら泥臭いことも厭わない
●心がけていること
・分かり易いコードを書く
・他人のコードを尊重する
*全体としての生産性を重視する
・正確かつ簡潔なコミュニケーションをする
*文化が異なる人との、母国語以外でのやり取り
*受け手の負担を考える
・Easier To Ask Forgiveness Than Permission
・仮説立て/仮決定してとにかく進めてみる
・目先の仕事以外にも目を向ける
・良き仲間たれ
*結局これが一番重要
●Q&A
・Googleはどこに向かっているのですか?
→Googleのミッションは世界中の情報を整理し、どこからでもアクセス出来るようにすること
・公開されている他プロジェクトのソースコードは、共有されているだけでなく実際よく見られているのですか?
→関係する他プロジェクトのソースを見たり、新しいメンバが過去に書いたソースを見たり、
新しいプロジェクトに参考になりそうなソースを見たりと、結構な頻度で見ています
