qcon tokyo 2014 - virtuous cycles of velocity: what i learned about going fast at ebay and google

35
Virtuous Cycles of Velocity What I Learned About Going Fast at eBay and Google ベベベベベ ( ベベ ) ベベベベ ベベベベベベベベベベベベベ Google ベ eBay ベベベベベベ Randy Shoup @randyshoup linkedin.com/in/randyshoup

Upload: randy-shoup

Post on 23-Aug-2014

640 views

Category:

Internet


3 download

DESCRIPTION

eBay and Google operate some of the largest Internet sites on the planet, and each maintains its leadership through continuous innovation in infrastructure and products. While substantially different in their detailed approaches, both organizations sustain their feature velocity through a combination of organizational culture, process, and people. This session will explore how these large-scale sites do it, and will offer some concrete suggestions on how other organizations -- both large and small -- can do the same.

TRANSCRIPT

Page 1: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

Virtuous Cycles of VelocityWhat I Learned About Going Fast at

eBay and Googleベロシティ ( 速度 ) の好循環: 速く進むことの重要性に関して、 Google と eBay で学んだことRandy Shoup

@randyshouplinkedin.com/in/randyshoup

Page 2: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

Background 背景CTO at KIXEYE• Real-time strategy games for web and mobile

Web とモバイル用のリアルタイム戦略ゲームDirector of Engineering for Google App Engine• World’s largest Platform-as-a-Service世界最大のプラットフォーム・アズア サービス

Chief Engineer at eBay• Multiple generations of eBay’s real-time search

infrastructureeBayのリアルタイムサーチ・インフラ数世代分

Page 3: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

Why Are Organizations Slow?なぜ組織はスローなのかOrganizational Culture  組織とカルチャーProcess  プロセスPeople  ピープル

Page 4: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

Why Are Organizations Slow?Organizational Culture  組織とカルチャーProcess

People

Page 5: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

Organization: Quality over Quantity  組織:量よりも質Whole user / player experienceユーザー / プレーヤの全体経験• Think holistically about the full end-to-end experience of the

userユーザの最初から最後までの全経験を包括的に考えろ• UX, functionality, performance, bugs, etc.ユーザエクスピリエンス,機能、性能、バグ、その他

Less is more  小さいことはよいことだ• Solve 100% of one problem rather than 50% of two2つとも50%よりも、1つの問題を100%解くべし• Users prefer one great feature instead of two partially-

completed featuresユーザは中途半端な 2 機能よりも、凄い機能1つの方がよい

Page 6: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

Organization: Culture of Learning  組織:学習するカルチャーLearn from mistakes and improve失敗から学んで改善せよ

• What did you do -> What did you learn 何をしたか 何を学んだか• Take emotion and personalization out of it

そこから感情や個人的な思いを掴まえろEncourage iteration and velocity繰り返しとスピードを重視せよ• “Failure is not falling down but refusing to get back

up” – Theodore Roosevelt「失敗とは倒れること自体ではなく、起き上がるのを拒むこと」 セオドア・ルーズベルト

Page 7: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

Google Blame-Free Post-Mortems  グーグルの責めない振り返りPost-mortem After Every Incident全インシデント毎に振り返りを

• Document exactly what happened何か起こったのかを正確に文書化• What went right正しく進めたこと• What went wrong誤ってしまったこと

Open and Honest Discussion  オープンで正直な議論• What contributed to the incident?何がそのインシデントの原因だったのか• Engineers will compete to take responsibility (!)エンジニアは先を争って責任を取ろうとする

Page 8: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

Google Blame-Free Post-Mortems  グーグルの責めない振り返りAction Items アクション・アイテム

• How will we change process, technology, documentation, etc.どのようにしてプロセス、技術、文書化 等を変えるのか

• How could we have automated the problems away?どのように自動化して問題を取り除けるのか• How could we have diagnosed more quickly?どのようにしてもっと早く問題を見つけられるのか• How could we have restored service more quickly?どのようにしてもっと早くサービスを回復できるのか

Follow up (!) それらをきちんとフォローせよ

Page 9: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

Virtuous Cycle of Improvement  改善の好循環

Honesty正直

Learn学習Improve改善

Results結果

Page 10: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

Organization: Service Teams組織: サービスチーム• Small, focused teams目標の明確な小チーム• Single service or set of related services1つまたは関連する少数のサービス• Minimal, well-defined “interface”最小限の明確に定義された「インターフェース」

• Clear “contract” between teamsチーム間の明解な「契約」• Functionality  機能性• Service levels and performance サービスレベルと性能

Page 11: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

Google Services グーグルサービス• All engineering groups organized into “services”すべてのエンジニアリングチームは「サービス群」の単位で組織化される• Gmail, App Engine, Bigtable, etc.

• Self-sufficient and autonomous自己充足的かつ自律的• Layered on one another階層化されているResult: Very small teams achieve great things結果    極小のチーム群が偉大な成果を成し遂げる

Page 12: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

Organization: Ownership Culture 組織: 所有形態のカルチャー• Give teams autonomy チームに自律性を• Freedom to choose technology, methodology ,working

environment技術、手法、ツール環境を選択する自由• Responsibility for the results of those choicesこれらの選択によって生じた結果に対する責任

• Hold them accountable for *results*彼らに『結果』に関する説明責任を持たせなさい• Give a team a goal, not a solution各チームにはソリューションではなくゴールを与えなさい• Let team own the best way to achieve the goalそのゴールを達成するベストな方法は各チームに所有を任せなさい

Page 13: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

KIXEYE Service Chassis KIXEYE のサービスの胴体(シャーシ)• Goal: Produce a “chassis” for building scalable game servicesゴール: スケールするゲームサービス構築の胴体の製造• Minimal resources, minimal direction最小限のリソース、最小限の指示

• 3 people x 1 month  • Consider building on open source projectsオープンソースプロジェクトとして構築することを検討

• Results• Exceeded expectations: chassis, transport, servcie template,

autoscaled deployment, etc.期待を超える成果: シャーシ、トランスポート、サービス・テンプレート、自動スケールするディプロイ• 15 minutes from no code to running service in AWS (!)コードのない状態から 15 分でAWS上にサービスを運用開始できる!• Plan to open-source several parts of this workこの成果物の一部のオープンソース化を計画中

Page 14: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

Virtuous Cycle of Ownership所有形態の好循環Autonomy自律

Motivation意欲Efficiency効率

Results結果

Page 15: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

Organization: Collaboration組織: コラボレーション• One team across engineering,

product, operations, etc.エンジニアリング、製品、運用、…を通して 1チーム• Solve problems instead of pointing

fingers問題を指摘するのではなく問題を解決する

Page 16: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

Google Co-LocationグーグルのコロケーションMultiple Organizations 複数組織

• Engineering  エンジニアリング• Product  製品• Operations   運用• Support サポート• Different reporting structures to different VPs異なる組織長への異なるリポートライン構造

Virtual Team with Single Goal 単一ゴールの仮想チーム• All work to make Google App Engine successful

全員、 Google App Engine 成功のために働く• Coworkers are “Us”, not “Them”小ワーカーはみな「私たち」であって、「彼ら」ではない• Never occurred to us that other organizations were not “our team”他の組織は「我がチーム」ではない、といった問題は決して起こらない

Page 17: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

Why Are Organizations Slow?なぜ組織はスローなのかOrganizational Culture

Process  プロセスPeople

Page 18: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

Process: Experimentationプロセス: 実験*Engineer* successes エンジニア の成功• Constant iteration 定常的な反復• Launch is only the first stepローンチは最初の 1歩に過ぎない• A|B Testing needs to be a core competence ABテストを中核的に実施する必要性

Many small experiments sum to big wins多くの小さな実験の積み重ねが大きな成功に繋がる

Page 19: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

eBay Machine-Learned Ranking eBay の機械学習によるランキングRanking function for search results サーチ結果のランキング機能

• Which item should appear 1st, 10th, 100th, 1000th

1st, 10th, 100th, 1000th番目にどのアイテムを表示すべきか• Before: small number of hand-tuned factors以前: 手作業でチューニングした数個の因子• Goal: Thousands of factors目標: 何千もの因子

Experimentation Process  実験プロセス• Predictive models: query->view, view->purchase, etc.予測モデル:       クエリ -> ビュー、ビュー ->購入 など• Hundreds of parallel A|B tests  何百もの並列ABテスト• Full year of steady, incremental improvements

1年間の徹底した段階的改善プロセスによる安定化Result: 2% increase in eBay revenue (!) eBay収入2%向上

Page 20: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

Virtuous Cycle of Experimentation  実験の好循環

Experiment実験

Learn学習Improve改善

Results結果

Page 21: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

Process: Quality Disciplineプロセス: クオリティの原則“Quality is a Priority-0 feature”『クオリティは優先順位 0 の機能である』Automated Tests help you go faster自動テストは速く進むヘルプになる

• Tests have your back  テストはあなたの背中を支えてくれる• Confidence to break things, refactor mercilessly既存物を壊して容赦なくリファクタリングする自信を与えてくれる• Catch bugs earlier, fail fasterバグをより早くキャッチし、より速く失敗することを可能にする

Faster to run on solid ground than on quicksand砂地よりしっかりとした地面の方が速く走れる

Page 22: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

Process: Institutionalize Quality プロセス: クオリティの制度化Development Practices プラクティスの開発

• Code reviews コードレビュー• Continuous Testing 継続的テスト• Continuous Integration 継続的インテグレーション

Quality Automation  クオリティのオートメーション• Automated testing frameworks 自動テストフレームワーク• Canary releases to production  製品の試験リリース

“Make it easy to do the right thing, and hard to do the wrong thing”『正しいことが簡単にできるようにせよ、そして誤ったことをするのをむずかしくせよ』

Page 23: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

Google Engineering Disciplineグーグルのエンジニアリング原則Solid Development Practices 安定した開発プラクティス• Code reviews before submission サブミット前にコードレビューを• Automated tests for everything  すべてに自動化テストを• Single logical source repository   単一の論理的ソースリポジトリ

Result: Internal Open Source Model結果: 内部的なオープンソースモデル• Not “here is a bug report”  「はい、バグレポート」ではない• Instead “here is the bug; here are the code changes; here is the

test that verifies the changes” そうではなく、「これはバグで、これはコード変更で、これはその変更を検証するテストです」というモデル

Page 24: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

Virtuous Cycle of Qualityクオリティの好循環Engineering Disciplineエンジニアリング原則

Solid Foundation安定した基礎

Faster and Betterより速くより良く

Results結果

Page 25: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

Process: Manage Technical Debt  プロセス: 技術的負債の管理Make Explicit Tradeoffs  明示的トレードオフ

• Triangle: date vs. quality vs. featuresトライアングル: 期限 vs 品質 vs 機能• When you choose date and features, you implicitly choose a

level of quality期限と機能を選んだとき、品質レベルも暗黙に選んだことになるManage Your Debt  あなたの負債の管理

• Plan for how and when you will pay it offいつどうやって負債を返すかを計画せよ• Maintain a sustainable level of debt持続可能な負債のレベルを維持せよ

“Don’t have time to do it right” ? 正しくやってる時間がない?• WRONG – Don’t have time to do it twice (!)間違い ― 間違えることで 2度もやる時間を取ってしまう方が問題!

Page 26: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

Vicious Cycle of Technical Debt  技術的負債の悪循環

Technical Debt技術的負債

“No time to do it right”『正しく行う時間ない』

Quick-and-dirtyやっつけ仕事

Page 27: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

Virtuous Cycle of Technical Investment 技術的投資の好循環

Invest投資

Solid Foundation安定した基礎

Faster and Betterより速くより良く

Results結果

Page 28: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

Why Are Organizations Slow?なぜ組織はスローなのかOrganizational Culture

Process

People  ピープル

Page 29: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

People: Hire and Retain the Best  ピープル:良き人材を雇用し続けるHire ‘A’ Players  A人材を雇用する• In creative disciplines, top performers are

10x more productive (!) 創造的分野の原則では、トップ人材の生産性は通常人の 10倍を超えるConfidence  信頼の伝搬• A players bring A players  A人材はA人材をもたらす• B players bring C players  B人材はC人材をもたらす

Page 30: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

Google Hiring  グーグルの採用Goal: Only hire top talent  トップタレントのみ雇用

• False negatives are OK; false positives are not誤認識は (良いモノの排除 ) よしとする、偽陽性 (悪いモノの受容 ) はダメProcess  プロセス

• Famously challenging interviews 有名な挑戦的インタビュー• Very detailed interviewer feedback非常に詳細なインタビュアーからのフィードバック• Hiring committee decides whether to hire採用委員会が雇用するか否かを判断• Separately assign person to group個別に個人をグループにアサインする

Results: Highly talented and engaged employees結果: 才能を持った熱意のある従業員

Page 31: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

People: Respect Peopleピープル: 人を尊敬するPeople are not interchangeable 人は交換可能でない

• Different skills, interests, capabilities異なるスキル、関心、能力• Create a Symphony, not a Factory交響楽団を創るのであり、工場を作るわけではない

Most valuable and irreplaceable assetもっとも価値があって置き換えできない資産• Treat people with care and respect人を気遣いと尊敬をもって遇すること• If the company values its people, people will provide value to the

companyもし会社がその人の価値を評価するなら、人はその会社に価値をもたらすだろう

Page 32: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

eBay “Train Seats”  「列車席」eBay’s development process (circa 2006)  開発プロセス

• Design and estimate project  設計と見積りプロジェクト(“Train Seat” == 2 engineer-weeks)  列車席==2 エンジニア週

• Assign engineers from common pool to implement tasks  タスクの実装に共通プールからエンジニアをアサイン• Designer does not implement; implementers do not design  設計者は実装せず、実装者は設計しない

Many Problems  多くの問題• Engineers treated as interchangeable “cogs”エンジニアは交換可能な歯車の歯として扱われている• No regard for skill, interest, experienceスキル、関心、経験に対する敬意を払わない• No pride of ownership in task implementationタスクの実装におけるオーナーシップのプライドがない• No long-term ownership of codebaseコードベースの長期的なオーナーシップがない

Page 33: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

Vicious Cycle of People人の問題の悪循環Hire ‘B’ / ‘C’

playersBC クラスの人材の採用

Mediocre results平凡な結果

People leave人が離れていく

Need to hire moreもっと採用する必要

Page 34: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

Virtuous Cycle of People人の問題の好循環Hire ‘A’ PlayersAクラス人材の採用

Treat Well大切に扱うKeep and

Retainずっと残ってくれる

Resultsよい成果

Page 35: QCon Tokyo 2014 - Virtuous Cycles of Velocity: What I Learned About Going Fast at eBay and Google

Thank [email protected]

@randyshoup

linkedin.com/in/randyshoup