40
Go Faster: Tech, Process, & Organization Fred George fredgeorge@acm.org @fgeorge52 Copyright © 2015 by Fred George. All rights reserved. 1

Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

Go Faster:Tech, Process, & Organization

Fred George

[email protected]

@fgeorge52

Copyright © 2015 by Fred George. All rights reserved. 1

Page 2: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

Fred George

Copyright © 2015 by Fred George. All rights reserved. 3

Consulting Roles

• Change Agent

• Disruptor

• “Hand grenade I am throwing

into development”

• CTO describing Fred to his Vice

President

Page 3: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

Industry “Hot” Topics

Copyright © 2015 by Fred George. All rights reserved. 4

MicroServices

Cloud

Docker

Dev/Ops Full-stack

developerAgile

Lean startupCassandra

Event busMVP (minimum

viable product

Programmer

anarchy

No-SQL

Page 4: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

Why: New Problem Domains: The Cynefin Framework

Copyright © 2015 by Fred George. All rights reserved. 5

Simple

ComplicatedComplex

ChaoticCause a Effect

Cause aaa Effect

Effect? Cause?

Cause ? Effect

Disorder

Page 5: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

Why: Competition is coming

Copyright © 2015 by Fred George. All rights reserved. 6

• Enablement through technologies

• Cloud computing

• Ubiquitous, high bandwidth

• Languages (and supporting frameworks)

• Recognition of business opportunities

• Silicon Valley innovators as role models

• Accelerating business needs

• Few inhibitors for global competitors

• Reduction of entry barriers for niche competitors

• Micro-marketing to specific customer niches

Page 6: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

How Fast Can You Go?

Copyright © 2015 by Fred George. All rights reserved. 7

Page 7: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

Iteration Length in Agile Age

Copyright © 2015 by Fred George. All rights reserved. 8

1 mo.

20152000 2005 2010

3 wks.

2 wks.

1 wk.

1 day

XP

XP

XP

XP

SCRUM* *2-3 months

Page 8: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

Project Delivery Cycles

Copyright © 2015 by Fred George. All rights reserved. 9

5 yrs.

1980 1990 2000

1 mon.

1 week

1 day

2010

1 year

Pro

ject D

ura

tio

n (

log) Waterfall

Waterfall

Agile

Agile

A2

A2

Waterfall

w OO

Page 9: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

How Fast Can You Go?

Copyright © 2015 by Fred George. All rights reserved. 10

Deployment to Production Every 3.5 minutes

Page 10: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

Inhibitors

Copyright © 2015 by Fred George. All rights reserved. 11

Page 11: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

•Cloud exploitation

•Specialized databases

•New programming languages

•Open source frameworks (users and creators)

•Continuous releases

“Valley Tech”

Copyright © 2015 by Fred George. All rights reserved. 12

Page 12: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

Hardware Lead Times

Copyright © 2015 by Fred George. All rights reserved. 13

6 mo.

1990 1995 2005

30 min.

1 week

1 day

2015

1 mo.

2000 2010

5 min.

5 sec.Ord

er

lead

tim

es (

log)

Data Center

Virtual

Machines

Docker

Commercial

CloudCapacity planning?

Dedicated ops team?

Page 13: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

Copyright © 2015 by Fred George. All rights reserved. 14

10

1

1000

10

0

100,0001 10 100 1000 10,000

Size (loc)

Num

be

r of S

erv

ices MicroServices

Rails / Java Zone

SO

A

Workshop

Forward

Netflix

Services Impact

Page 14: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

0MQ

0MQ 0MQ

0MQ 0MQ 0MQ

Copyright © 2015 by Fred George. All rights reserved. 15

Kafka

Service

Emerging: Event Bus

Page 15: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

New Architecture Patterns

Copyright © 2015 by Fred George. All rights reserved. 16

Bus

ServiceService

Service

Need

Need

Need

Sol’n’sSol’n

•Variants easy

•Graceful degradation

Choose

Sol’n

Page 16: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

Incremental Applications

Copyright © 2015 by Fred George. All rights reserved. 17

Event Bus

Rental

offers

Car

rent

Legacy

server

Brand

offersLocation

offers

Segmentation

Membership

CarRent.com Login

Sally

A B

Page 17: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

Databases:Holy Grail or Ball-and-Chain?

• Fortune 100 view:

• Entity-oriented; consistency essential

• As few as possible

• MicroService view:

• Shift to Event Bus, plus

• DB per MicroService (if persistence needed)

• Poly-glot (various NoSQL, SQL) + event buses

• Few (10%) writable; even fewer transactional

Copyright © 2015 by Fred George. All rights reserved. 18

Page 18: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

Copyright © 2015 by Fred George. All rights reserved. 19

Rental

offers

Car

rent

Legacy

server

Brand

offersLocation

offers

Segmentation

Membership

CarRent.com Login

Sally

A B Rental

offers

Event

publishingSolution

collecting

300ms

responder

Redis

Page 19: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

Copyright © 2015 by Fred George. All rights reserved. 20

Rental

offers

Car

rent

Legacy

server

Brand

offersLocation

offers

Segmentation

Membership

CarRent.com Login

Sally

A B

Membership

enrichmentETL Key-value

Page 20: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

Open Source: Netflix

Copyright © 2015 by Fred George. All rights reserved. 21

Page 21: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

Open Source: Docker

Copyright © 2015 by Fred George. All rights reserved. 22

Page 22: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

Disruptive Technology: Functional Languages

Copyright © 2015 by Fred George. All rights reserved. 23

•Middleware exploiting:

• Kafka written in Scala

• RabbitMQ written in Erlang

•Case study: MailOnline page rendering

• Legacy system: 130K loc Java/JSP’s

• Replacement: 4,000 loc Clojure

Page 23: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

Mitigate Process Inhibitors

Copyright © 2015 by Fred George. All rights reserved. 24

Page 24: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

Understand Your Problem

Copyright © 2015 by Fred George. All rights reserved. 25

Complex

Simple

Complicated

ChaoticCause a Effect

Cause aaa Effect

Effect? Cause?

Cause ? Effect

Disorder

Page 25: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

Copyright © 2015 by Fred George. All rights reserved. 26

Requirements

Trying ideas

“Experimentation

drives Innovation”

New Vision of “What” to Build

Page 26: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

Copyright © 2015 by Fred George. All rights reserved. 27

Task

Story

Feature

Project

Initiative

Co-Credit: Greg Reiser, ThoughtWorks

Re-think Interactions

Page 27: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

• Bad metrics:

• Lines of code

• Development stages and milestones met

•Business success metrics:

• Sales, clicks, registrations, customer retention, etc.

Measure What Matters

Copyright © 2015 by Fred George. All rights reserved. 28

Page 28: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

Mitigate Organization Inhibitors

Copyright © 2015 by Fred George. All rights reserved. 29

Page 29: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

Over-Specialization

Copyright © 2015 by Fred George. All rights reserved.

•Theory:

• Specialist are more productive

•Practice:

• Overhead of communication is under-estimated

• Unbalanced workload creates delays

30

Page 30: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

Specialization Institutionalized with Titles

Copyright © 2015 by Fred George. All rights reserved. 31

Case Study:

•50 IT professionals

•25+ titles

•0 people understanding projects

Page 31: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

Solution: Fix the Titles

Copyright © 2015 by Fred George. All rights reserved. 32

Step 1: Define competence in key technologies

Strategic Technologies• Ruby

• Java

• iOS

• Android

• DB (SQL and non-SQL)

• Testing

• OO Design

• Node.js

• HTML/CSS/JavaScript

• …

Page 32: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

New Titles for New Projects

Copyright © 2015 by Fred George. All rights reserved. 33

Not competent in a

key technology

Competent in a key

technology

Expert in a key

technology

Competent in 5-7

key technologies

Expert in 3-5 key

technologies

Page 33: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

“Fix the Furniture”*

Copyright © 2015 by Fred George. All rights reserved. 34*Kent Beck, XP Explained

Page 34: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

Non-dedicated Leadership

Copyright © 2015 by Fred George. All rights reserved. 35

Page 35: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

Bring Work to the Team…

Copyright © 2015 by Fred George. All rights reserved. 36

Not musical

chairs for each

small project

Page 36: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

Reinforcing Movements

Copyright © 2015 by Fred George. All rights reserved. 39

MicroServices

Cloud

Docker

Dev/Ops Full-stack

developerAgile

Lean startupCassandra

Event busMVP (minimum

viable product

Programmer

anarchy

No-SQL

Page 37: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

Project Delivery Cycles

Copyright © 2015 by Fred George. All rights reserved. 40

NRK

NRK

5 yrs.

1980 1990 2000

1 mon.

1 week

1 day

2010

1 year

Pro

ject D

ura

tio

n (

log) Waterfall

Waterfall

Agile

AgileWaterfall

w OO

Page 38: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

Acknowledgements

Copyright © 2015 by Fred George. All rights reserved. 41

•Neil Hutchinson – Founder of Forward

• Adopting a “Fail Fast” culture

•Carl Gaywood

• Former programmer who wanted to Go Faster

•Paul Ingles and Mike Jones

• Implementers of “Experimentation drives innovation”

Page 39: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

More Information…

•Google:

• MicroService Architecture for videos

• MicroXchg 2015 conference

• Programmer Anarchy for managerless teams

• Docker for latest container deployment

Copyright © 2015 by Fred George. All rights reserved. 42

Page 40: Go Faster - slides.yowconference.com · MicroServices Rails / Java Zone SO A Workshop Forward Netflix Services Impact. 0MQ 0MQ 0MQ 0MQ 0MQ 0MQ ... •RabbitMQ written in Erlang •Case

Go Faster:Tech, Process, & Organization

Fred George

[email protected]

@fgeorge52

Copyright © 2015 by Fred George. All rights reserved. 43