Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

Google Developer Day 2010 Japan: Google エンジニアの日常 (山内 知昭)

on

  • 3,623 views

Google のソフトウェアエンジニアがどのような環境でサービスの開発を行っているかを紹介します。

Google のソフトウェアエンジニアがどのような環境でサービスの開発を行っているかを紹介します。

Statistics

Views

Total Views
3,623
Views on SlideShare
2,901
Embed Views
722

Actions

Likes
2
Downloads
24
Comments
0

10 Embeds 722

http://googledevjp.blogspot.com 550
http://googledevjp.blogspot.jp 158
http://static.slidesharecdn.com 4
http://amazedkoumei.posterous.com 3
http://googledevjp.blogspot.de 2
http://atgapps.appspot.com 1
http://googledevjp.blogspot.kr 1
http://googledevjp.blogspot.nl 1
http://googledevjp.blogspot.fr 1
http://googledevjp.blogspot.com.es 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Google Developer Day 2010 Japan: Google エンジニアの日常 (山内 知昭) Google Developer Day 2010 Japan: Google エンジニアの日常 (山内 知昭) Presentation Transcript

  • Life of a Google engineer グーグルエンジニアの日常 Revised v4Presenter Tomoaki Yamauchi Sep 28, 2010
  • 自己紹介と今日の内容 Revised v4Presenter
  • 今日の内容 どんな仕事をしているの? どうやって仕事をしているの? 好きな仕事ができるの? 仕事以外の職場環境は? ワークライフバランスってどうなの? どうやったらグーグルエンジニアになれるの? ケーススタディ View slide
  • 仕事内容 Revised v4Presenter View slide
  • どんな仕事をしているの? SWE (Software Engineer) Googleの製品・サービスを作る人 PM (Product Manager) ユーザーとSWEの架け橋になる人 SRE (Site Reliability Engineer) Googleのサービスを動かし続ける人 SWE in Test / Test Engineer Googleの製品・サービスの信頼性を高める人 Ops Googleの社内システムを動かす人
  • SWEはどんな仕事をしているの? idea design implement launch 最初から最後まで
  • どんな製品・サービスがあるの?
  • 仕事の環境 Revised v4Presenter
  • どんなマシンを使っているの? 専有 ラップトップ デスクトップ データセンター上のVirtual Workstationを代わりに 持つこともできる 大きなディスプレイ - 30 inch 共有 世界中のデータセンター
  • コードやデータはどう管理しているの? ソースコード 基本的に全世界・全プロジェクト共通のリポジトリ オープンソース・プロジェクトなどの特殊なものは別 VCSのコマンドを直接実行することは少ない さまざまなラッパーや補助システムがある コードレビューが必須 データ ホームを含むさまざまなディレクトリがNFS どの端末でも同じホームで作業できる どの端末でも同じコマンドが実行できる ジョブの入出力などの大容量データはGFS
  • ビルド・ジョブ実行 ビルド 内製のビルドツール 自動的に分散ビルド・分散テスト ジョブ実行 世界中のデータセンターの計算クラスタが自由に使える クォータの制限はあるが、かなり大きい 同じバイナリをローカルでも実行可能 テスト実行で便利 他のプロジェクトの生成ファイルにもアクセスできる 中間処理の終わったWebページなど
  • 仕事の進め方 Revised v4Presenter
  • どんな体制で開発しているの? 世界中から開発に参加
  • 分散しすぎてて効率悪いんじゃ? プロダクト単位のコアチームの構成 ある程度地理的な配置を考慮 VCでつないでチームミーティング 時差12時間もあるとさすがにしんどい 個々のプロジェクト 少人数(1~数人) face to faceコミュニケーションは重要 必要に応じて出張して開発 その他 メールが中心。チャットを使う人も。 グループウェア(カレンダーやバグトラッカーなど)
  • 英語ですか? 英語です。 日本人同士なら日本語で話しますが、 読み書きはそれでも英語です。 ただし、ブロークンな英語でもわりと許してくれます。 (SWEの場合。他の職種はわかりません) でも、話すのはともかく、聞けないのはしんどいかも。
  • ローンチプロセスとかは? 製品・サービスによって詳細は違いますが・・・ クォリティは大丈夫? インパクトは十分? セキュリティは? リソースは足りてる? メンテナンスできるの? 法律に違反してないよね? 関連チームへの確認はOK? などなど エンジニアが主体的に関わっていく範囲は広い エンジニアへからインプット エンジニアへのフィードバック
  • 個人と組織 Revised v4Presenter
  • 好きな仕事ができるの? 半分Yesで半分No Noの理由 コアメンバーになるにはコアチームがいないと難しい 他のエンジニアからのサポートがないとしんどい Yesの理由 20% Projectなら比較的自由にプロジェクトを選べる Full-time projectでも課題発見・解決は裁量の範囲 親切な人や使えるリソースが多い
  • 仕事以外の職場環境は? オフィスに来るのが楽しくなる仕掛け 朝・昼・晩の食事。お菓子や飲み物。(無料) オフィスデコレーション、遊具、マッサージ  各種クラブ チームの絆を深める仕掛け 仕事中のおしゃべりはOK 休憩時間とかは決まっていない 各種イベント - オンサイト・オフサイト ランチタイムのミニトーク ハッカソン Funイベント
  • ワークライフバランスはどう? 仕事が好きそうな人が多いけど、みんな大丈夫かな・・・? 仕事時間の裁量は自由度が高い 有給のほかに疾病休暇(有給)もあり 病気の時のために有給を残しておくとか考えない 1週間位まとめて休んで家族旅行とか普通 子供の病気とかで当日の朝連絡して休むのも普通 子供が生まれたら、 父親は育休(4週間は有給)をとるのが普通 母親の産休(16週間は有給)をとることができる 14週間(法定) + 2週間 少なくともとりにくい雰囲気はないはず
  • 採用活動 Revised v4Presenter
  • どうやったらグーグルエンジニアになれるの? エンジニアの採用は、エンジニアの大事な仕事 まずはレジュメ エンジニアが見て「これは!」と思えば、面接へ 電話面接。オンサイト面接。 人事や管理職ではなく、現場のエンジニアが面接 技術力を問う質問が中心 ホワイトボードにコードを書くことも 面接官は、面接の後、合否の判断とその客観的な理由を書 いたレポートを提出 合否の決定 何人も面接したレポートを元に、会議で決定
  • だから、具体的にどうすればいいの? 英語 全然できないと入った後しんどい 英語のAPIドキュメントを読んで理解できて、 海外に個人旅行ができる程度の英語力があれば、 とりあえずは大丈夫だと思う 技術 さまざまな分野を知っているほうがいい CPUの仕組みからソフトウェアデザインまで 表層的でない理解が求められる。「なぜそうなのか?」 人に指示する力ではなく、自分で作れる力を重視 きれいなコードをすばやく書けると好印象
  • ケーススタディ:私の場合 Revised v4Presenter
  • 経歴 大学 特に情報科学や情報工学ではない 文学部:言語学 工学部:工学系基礎、経営学 院進学しないで就職 プログラミングとの出会いは21歳のとき 職歴 大手SIでオープン系のインフラ構築支援のエンジニア 中堅ソフトウェアメーカーでソフトウェア開発エンジニア
  • グーグルに入社した経緯 グーグルの検索広告でエンジニアを募集していることを知る 転職フェアにグーグルが来るというので話を聞きにいく とりあえずレジュメを送ってと言われたのでだめもとで送る なぜか面接の連絡が来て、なぜか1次面接に受かる 2次面接はカリフォルニアで、といわれて焦る 会社を休んでマウンテンビューへ
  • グーグルに入社した経緯(続き) 期待して結果を待つが、落ちる ショックだったが、惜しかったからまたチャレンジして、と言われ て1年後の再戦を勝手に誓う 1年間、情報科学の勉強を、仕事の傍ら、独学する 1年後、再度応募して、今度は受かる (今度はカリフォルニア旅行はなし!) 晴れてグーグルエンジニアに
  • 平日の過ごし方(一例) 7時 起床。重要なメールの確認 8時半 家を出る 10時 オフィスに到着 10~11時 メールの処理を終える 11~12時 コアチームとビデオ会議 12~13時 昼ごはん。雑談 13~16時ごろ なんとなく集中 16時から30分位 マッサージチェアでリラックス 16:30~18:40 お菓子を食べながら、もうひと頑張り 18:45 会社を出る 20:15ごろ 家に到着 24時ごろ 就寝
  • 他の会社と違うとところ どのオフィスに所属しても、エンジニアとしては対等 時差や規模などがハンディでないわけではない コードレビューが必須 プロジェクトのコアメンバー プログラミング言語毎の認定エンジニア エンジニアがエンジニアを評価 採用でも人事評価でも 豊富なリソース 計算機、コードだけでない 実際に使える
  • ご静聴ありがとうございました Revised v4Presenter