Fast at eBay and Google Randy Shoup @randyshoup - - PowerPoint PPT Presentation

fast at ebay and google
SMART_READER_LITE
LIVE PREVIEW

Fast at eBay and Google Randy Shoup @randyshoup - - PowerPoint PPT Presentation

What I Learned About Going Fast at eBay and Google Randy Shoup @randyshoup linkedin.com/in/randyshoup GOTO Chicago, May 20 2014 Background CTO at KIXEYE Real-time strategy games for web and mobile Director of Engineering for Google App Engine


slide-1
SLIDE 1

What I Learned About Going Fast at eBay and Google

Randy Shoup

@randyshoup linkedin.com/in/randyshoup

GOTO Chicago, May 20 2014

slide-2
SLIDE 2

Background

CTO at KIXEYE

  • Real-time strategy games for web and mobile

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

infrastructure

slide-3
SLIDE 3

The Need For Velocity

Real-time strategy games are

  • Real-time
  • Spiky
  • Computationally-intensive
  • Constantly evolving
  • Constantly pushing

boundaries

slide-4
SLIDE 4

Why Are Organizations Slow?

People Organizational Culture Process

slide-5
SLIDE 5

Why Are Organizations Slow?

People Organizational Culture Process

slide-6
SLIDE 6

People: Hire and Retain the Best

Hire ‘A’ Players

  • In creative disciplines, top performers are 10x more

productive (!)

  • Smaller, more productive teams
  • Less management and coordination overhead

Confidence

  • A players bring A players
  • B players bring C players
slide-7
SLIDE 7

Google Hiring

Goal: Only hire top talent

  • False negatives are OK; false positives are not

Hiring Process

  • Famously challenging interviews
  • Very detailed interviewer feedback
  • Hiring committee decides whether to hire
  • Separately assign person to group

è Highly talented and engaged employees

slide-8
SLIDE 8

People: Differences

Most valuable asset

  • Treat people with care and respect
  • If the company values its people, people provide value

to the company

People are not interchangeable

  • Different skills, interests, capabilities
  • We are not cogs, not fungible

Create a *Symphony*, not a Factory

  • Beauty and richness comes from different instruments,

playing together

  • Compose teams to take advantage of differences
slide-9
SLIDE 9

eBay “Train Seats”

eBay’s development process (circa 2006)

  • Design and estimate project

(“Train Seat” == 2 engineer-weeks)

  • Assign engineers from common pool to implement tasks
  • Designer does not implement; implementers do not design

è Dysfunctional engineering culture

  • (-) Engineers treated as interchangeable “cogs”
  • (-) No regard for skill, interest, experience
  • (-) No pride of ownership in task implementation
  • (-) No long-term ownership of codebase
slide-10
SLIDE 10

Virtuous Cycle of People

Hire ¡‘A’ ¡ Players ¡ Treat ¡ Well ¡ Keep ¡ and ¡ Retain ¡ Results ¡

slide-11
SLIDE 11

Why Are Organizations Slow?

People Organizational Culture Process

slide-12
SLIDE 12

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 two
  • Users prefer one great feature instead of two

partially-completed features

slide-13
SLIDE 13

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

slide-14
SLIDE 14

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?
  • What could we have done better?

è Engineers compete to take personal responsibility (!)

slide-15
SLIDE 15

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 (!)

slide-16
SLIDE 16

Virtuous Cycle of Improvement

Honesty ¡ Learn ¡ Improve ¡ Results ¡

slide-17
SLIDE 17

Organization: Service Teams

  • Small, focused teams
  • Single service or set of related services
  • Minimal, well-defined “interface”
  • Clear “contract” between teams
  • Functionality
  • Service levels and performance
slide-18
SLIDE 18

Google Services

  • All engineering groups organized into

“services”

  • Gmail, App Engine, Bigtable, etc.
  • Self-sufficient and autonomous
  • Layered on one another

è Very small teams achieve great things

Cloud ¡ Datastore ¡ Megastore ¡ Bigtable ¡ Colossus ¡ Cluster ¡ manager ¡

slide-19
SLIDE 19

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
slide-20
SLIDE 20

KIXEYE Service Chassis

  • Goal: Produce a “chassis” for building scalable game

services

  • Minimal resources, minimal direction
  • 3 people x 1 month
  • Consider building on open source projects

è Team exceeded expectations

  • Co-developed chassis, transport layer, service template,

build pipeline, red-black deployment, etc.

  • Heavy use of Netflix open source projects
  • 15 minutes from no code to running service in AWS (!)
  • Plan to open-source several parts of this work
slide-21
SLIDE 21

Virtuous Cycle of Ownership

Autonomy ¡ MoBvaBon ¡ Efficiency ¡ Results ¡

slide-22
SLIDE 22

Organization: Collaboration

  • Act as one team across engineering, product,
  • perations, etc.
  • Solve problems instead of blaming and pointing

fingers

  • Leave politics to the politicians
  • Bureaucratic games are not as fun as real-time

strategy games J

slide-23
SLIDE 23

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
  • Coworkers are “Us”, not “Them”
  • Never occurred to us that other organizations were not “our

team”

slide-24
SLIDE 24

Why Are Organizations Slow?

People Organizational Culture Process

slide-25
SLIDE 25

Process: Experimentation

*Engineer* successes

  • Constant iteration
  • Launch is only the first step
  • A | B Testing needs to be a core competence

Many small experiments sum to big wins

slide-26
SLIDE 26

eBay Machine-Learned Ranking

Ranking function for search results

  • Which item should appear 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
  • Full year of steady, incremental improvements

è 2% increase in eBay revenue (~$120M)

slide-27
SLIDE 27

Virtuous Cycle of Experimentation

Experiment ¡ Learn ¡ Improve ¡ Results ¡

slide-28
SLIDE 28

Process: Quality Discipline

“Quality is a Priority-0 feature” 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

slide-29
SLIDE 29

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”

slide-30
SLIDE 30

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” 

slide-31
SLIDE 31

Virtuous Cycle of Quality

Engineering ¡ Discipline ¡ Solid ¡ FoundaBon ¡ Faster ¡and ¡ BeIer ¡ Results ¡

slide-32
SLIDE 32

Process: Technical Tradeoffs

Make Tradeoffs Explicit

  • Every decision is a tradeoff: X
  • r Y or Z
  • When you choose features and

a date, you implicitly choose a level of quality

è Be honest with yourself and your team when you are doing this (!)

Date ¡ Features ¡ Quality ¡

slide-33
SLIDE 33

Process: Technical Tradeoffs

Manage Technical Debt

  • Plan for how and when you will pay it off
  • Maintain sustainable and well-understood level of

debt

“Don’t have time to do it right” ?

  • WRONG – Don’t have time to do it twice (!)
slide-34
SLIDE 34

Vicious Cycle of Technical Debt

Technical ¡ Debt ¡ “No ¡Bme ¡ to ¡do ¡it ¡ right” ¡ Quick-­‑ and-­‑dirty ¡

slide-35
SLIDE 35

Virtuous Cycle of Technical Investment

Invest ¡ Solid ¡ FoundaBon ¡ Faster ¡and ¡ BeIer ¡ Results ¡

slide-36
SLIDE 36

Recap: How Can We Make Organizations Fast?

People Organizational Culture Process

slide-37
SLIDE 37

Come Join Us!

KIXEYE is hiring in SF, Seattle, Victoria, Brisbane, Amsterdam rshoup@kixeye.com @randyshoup linkedin.com/in/randyshoup slideshare.net/randyshoup