Five Whys - Devoxx UK 2014

90
@al94781 #5whys The Five “Whys” Andrew Harmel-Law @al94781 the-music-of-time.blogspot.com & scalaeyeforthejavaguy.blogspot.c om

description

The presentation I gave at Devoxx UK 2014, subtitled "Counter-Intuitive Solutions to (All-Too-Common) Problems

Transcript of Five Whys - Devoxx UK 2014

Page 1: Five Whys - Devoxx UK 2014

@al94781#5whys

The Five “Whys”

Andrew Harmel-Law@al94781 the-music-of-time.blogspot.com & scalaeyeforthejavaguy.blogspot.com

Page 2: Five Whys - Devoxx UK 2014

@al94781 #5whys

The Five “Whys”•Andrew Harmel-Law

[email protected]

•Dev Lead / Developer / OSS Advocate @ Capgemini UK

•We build complicated stuff for other people. (We’re hiring. Email me)

Page 3: Five Whys - Devoxx UK 2014

@al94781 #5whys

TL;DL

We’re engineering ourselves into a right mess;

but we can engineer ourselves out of it

Page 4: Five Whys - Devoxx UK 2014

@al94781 #5whys

Disclaimer:No “Hype Cycles”,

“Magic Quadrants” or “Technology Radars” were harmed (or consulted) in the course of preparing

this presentation

Page 5: Five Whys - Devoxx UK 2014

@al94781 #5whys

Page 6: Five Whys - Devoxx UK 2014

“… and they also fail in ways that are beyond the comprehension

of a single person.”

Page 7: Five Whys - Devoxx UK 2014

@al94781 #5whys

Page 8: Five Whys - Devoxx UK 2014

@al94781 #5whys

Page 9: Five Whys - Devoxx UK 2014

@al94781 #5whys

Page 10: Five Whys - Devoxx UK 2014

@al94781 #5whys

Page 11: Five Whys - Devoxx UK 2014

@al94781 #5whys

Page 12: Five Whys - Devoxx UK 2014

@al94781 #5whys

How Do We Cope?• Identify the problem. Then solve it.

Page 13: Five Whys - Devoxx UK 2014

@al94781 #5whys

How Can We Cope?• Identify the problem. Then solve it.• Identify the problem. Then solve it.

Page 14: Five Whys - Devoxx UK 2014

@al94781 #5whys

How Can We Cope?• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.

Page 15: Five Whys - Devoxx UK 2014

@al94781 #5whys

How Can We Cope?• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.

Page 16: Five Whys - Devoxx UK 2014

@al94781 #5whys

How Can We Cope?• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.

Page 17: Five Whys - Devoxx UK 2014

@al94781 #5whys

How Can We Cope?• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.

Page 18: Five Whys - Devoxx UK 2014

@al94781 #5whys

How Can We Cope?• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.

Page 19: Five Whys - Devoxx UK 2014

@al94781 #5whys

How Can We Cope?• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.

Page 20: Five Whys - Devoxx UK 2014

@al94781 #5whys

How Can We Cope?• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.

Page 21: Five Whys - Devoxx UK 2014

@al94781 #5whys

How Can We Cope?• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.

Page 22: Five Whys - Devoxx UK 2014

@al94781 #5whys

How Can We Cope?• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.

Page 23: Five Whys - Devoxx UK 2014

@al94781 #5whys

Page 24: Five Whys - Devoxx UK 2014

@al94781 #5whys

DOES THIS MEAN WE’RE ACTUALLY PART OF THE PROBLEM?

Page 25: Five Whys - Devoxx UK 2014

@al94781 #5whys

“?”

Page 26: Five Whys - Devoxx UK 2014

@al94781 #5whys

Page 27: Five Whys - Devoxx UK 2014

@al94781 #5whys

Page 28: Five Whys - Devoxx UK 2014

@al94781 #5whys

Page 29: Five Whys - Devoxx UK 2014

@al94781 #5whys

Page 30: Five Whys - Devoxx UK 2014

@al94781 #5whys

1. The Bakery and NoOps2. Anti-Fragility and the Simian Army3. Throw Everything Away4. The Church of Graphs5. Open Source (Almost) Everything

Page 31: Five Whys - Devoxx UK 2014

@YourTwitterHandle@al94781 #5whys

1. Th

e

Baker

y

and N

oOps

Page 32: Five Whys - Devoxx UK 2014

@al94781 #5whys

Page 33: Five Whys - Devoxx UK 2014

@al94781 #5whys

Page 34: Five Whys - Devoxx UK 2014

@al94781 #5whys

Page 35: Five Whys - Devoxx UK 2014

@al94781 #5whys

Page 36: Five Whys - Devoxx UK 2014

@al94781 #5whys

Immutability makes many things easier:

•Maintenance (e.g. SunRay)•Multi-Threading•Scaling (e.g. Pizza Boxes)•Caching•Development in general (e.g. “no changes in a Sprint”)

Page 37: Five Whys - Devoxx UK 2014

@al94781 #5whys

•What if you had immutable deployables?•And what if you deployed to immutable environments?

Page 38: Five Whys - Devoxx UK 2014

@al94781 #5whys

“Netflix is a developer oriented culture.”

http://perfcap.blogspot.co.uk/2012/03/ops-devops-and-noops-at-netflix.html

Page 39: Five Whys - Devoxx UK 2014

@al94781 #5whys

“Netflix is a developer oriented culture.”“We decided to leverage developer oriented tools such as Perforce for version control, Ivy for dependencies, Jenkins to automate the build process, Artifactory as the binary repository and to construct a “Bakery" that produces complete AMIs that contain all the code for a service.”

http://perfcap.blogspot.co.uk/2012/03/ops-devops-and-noops-at-netflix.html

Page 40: Five Whys - Devoxx UK 2014

@al94781 #5whys

“Netflix is a developer oriented culture.”“We decided to leverage developer oriented tools such as Perforce for version control, Ivy for dependencies, Jenkins to automate the build process, Artifactory as the binary repository and to construct a “Bakery" that produces complete AMIs that contain all the code for a service.”

“Several hundred development engineers use these tools to build code, run it in a test account in AWS, then deploy it to production themselves.”

http://perfcap.blogspot.co.uk/2012/03/ops-devops-and-noops-at-netflix.html

Page 41: Five Whys - Devoxx UK 2014

@al94781 #5whys

“[Your Company] is a developer oriented culture.”“We decided to leverage developer oriented tools such as Perforce for version control, Ivy for dependencies, Jenkins to automate the build process, Artifactory as the binary repository and to construct a “Bakery" that produces complete AMIs that contain all the code for a service.”

“Several hundred development engineers use these tools to build code, run it in a test account in AWS, then deploy it to production themselves.”

http://perfcap.blogspot.co.uk/2012/03/ops-devops-and-noops-at-netflix.html

Page 42: Five Whys - Devoxx UK 2014

@al94781 #5whys

http://www.infoq.com/presentations/Building-for-the-Cloud-at-Netflix

Page 43: Five Whys - Devoxx UK 2014

@al94781 #5whys

http://techblog.netflix.com/2012/06/asgard-web-based-cloud-management-and.html

Page 44: Five Whys - Devoxx UK 2014

@al94781 #5whys

http://techblog.netflix.com/2012/06/asgard-web-based-cloud-management-and.html

Page 45: Five Whys - Devoxx UK 2014

@YourTwitterHandle@al94781 #5whys

2. Ant

i-

Fragil

ity &

the S

imian

Army

Page 46: Five Whys - Devoxx UK 2014

@al94781 #5whys

Page 47: Five Whys - Devoxx UK 2014

@al94781 #5whys

(a)

Page 48: Five Whys - Devoxx UK 2014

@al94781 #5whys

(b)

Page 49: Five Whys - Devoxx UK 2014

@al94781 #5whys

“Put all your eggs in one basket,

and then watch that basket very

closely”(Andrew Carnegie) (b)

(c)

Page 50: Five Whys - Devoxx UK 2014

@al94781 #5whys

(b)

Page 51: Five Whys - Devoxx UK 2014

@al94781 #5whys

(b)

Page 52: Five Whys - Devoxx UK 2014

@al94781 #5whys

http://queue.acm.org/detail.cfm?id=2499552

Page 53: Five Whys - Devoxx UK 2014

@al94781 #5whys

(b)

Page 54: Five Whys - Devoxx UK 2014

@YourTwitterHandle@al94781 #5whys

3. Th

row

Ever

ythin

g

Away

Page 55: Five Whys - Devoxx UK 2014

@YourTwitterHandle@al94781 #5whys

3. Th

row

Ever

ythin

g

Away.

Ever

ythin

g?

Yes,

Ever

ythin

g. Oh,

& Do I

t

Regula

rly To

o

Page 56: Five Whys - Devoxx UK 2014

@al94781 #5whys

“Plan to throw one away”

Fred Brooks,The Mythical Man

Month(b)

Page 57: Five Whys - Devoxx UK 2014

@al94781 #5whys

(b)

Page 58: Five Whys - Devoxx UK 2014

@al94781 #5whys

•But little pieces at a time

•And then only the ASCII-file implementations

(b)

What if We Were Always Throwing

Away?

Page 59: Five Whys - Devoxx UK 2014

@al94781 #5whys

•The knowledge gained from writing the previous version

•The specs (executable preferentially) (b)

What Are We Not Throwing Away?

Page 60: Five Whys - Devoxx UK 2014

@al94781 #5whys

Page 61: Five Whys - Devoxx UK 2014

@YourTwitterHandle@al94781 #5whys

4. Th

e

Chur

ch of

Graph

s

Page 62: Five Whys - Devoxx UK 2014

@al94781 #5whys

(b)

Page 63: Five Whys - Devoxx UK 2014

@al94781 #5whys

(b)

Page 64: Five Whys - Devoxx UK 2014

@al94781 #5whys

(b)

Page 65: Five Whys - Devoxx UK 2014

@al94781 #5whys

(b)

Page 66: Five Whys - Devoxx UK 2014

@al94781 #5whys

“If Engineering at Etsy has a religion, it’s the Church of Graphs. If it moves, we track it.

Sometimes we’ll draw a graph of something that isn’t moving yet, just in case it decides to make a run for it.

In general, we tend to measure at three levels: network, machine, and application”

http://codeascraft.com/2011/02/15/measure-anything-measure-everything/

Page 67: Five Whys - Devoxx UK 2014

@al94781 #5whys

(b)

Page 68: Five Whys - Devoxx UK 2014

@al94781 #5whys

(b)

Page 69: Five Whys - Devoxx UK 2014

@al94781 #5whys

(b)

Page 70: Five Whys - Devoxx UK 2014

@al94781 #5whys

“Application metrics are usually the hardest, yet most important, of the three. They’re very specific to your business, and they change as your applications change (and Etsy changes a lot).

Instead of trying to plan out everything we wanted to measure, we decided to make it ridiculously simple for any engineer to get anything they can count or time into a graph with almost no effort.”

http://codeascraft.com/2011/02/15/measure-anything-measure-everything/

Page 71: Five Whys - Devoxx UK 2014

@al94781 #5whys

(b)http://code.flickr.net/2008/10/27/counting-timing/

Page 72: Five Whys - Devoxx UK 2014

@YourTwitterHandle#DVXFR14{session hashtag} @al94781 #5whys

5. Ope

n

Sour

ce

(Alm

ost)

Ever

ything

Page 73: Five Whys - Devoxx UK 2014

@al94781 #5whys

AUDIENCE POLL

- Who here uses Open Source?

- Who here contributes to Open Source?

- Who here creates Open Source?

(b)

Page 74: Five Whys - Devoxx UK 2014

@al94781 #5whys

AUDIENCE POLL

- Who here uses Open Source at Work?

(b)

Page 75: Five Whys - Devoxx UK 2014

@al94781 #5whys

AUDIENCE POLL

- Who here uses Open Source at Work?

- Who here contributes to Open Source at Work?

- Who here creates Open Source at Work?

(b)

Page 76: Five Whys - Devoxx UK 2014

@al94781 #5whys

(b)

Page 77: Five Whys - Devoxx UK 2014

@al94781 #5whys

•Great advertising•More work done, faster and

more cheaply•Attract talent•Best technical interview possible•Retain talent•Effortless modualrisation•Reduce duplication of effort

(b)

Why Bother to Open Source?

Page 78: Five Whys - Devoxx UK 2014

@al94781 #5whys

•Hire & retain top engineers•Good PR•Make Netflix solutions common

standards•Give back to the Apache OSS

community•Motivate•Peer pressure, code clean-up and

documentation

(b)

Why Should I Open Source?

Page 79: Five Whys - Devoxx UK 2014

@al94781 #5whys

AUDIENCE POLL

- Who here would like to use Open Source at Work?

- Who here would like to contribute to Open Source at Work?

- Who here would like to create Open Source at Work?

(b)

Page 80: Five Whys - Devoxx UK 2014

@al94781 #5whys

(b)

Page 81: Five Whys - Devoxx UK 2014

@al94781 #5whys

(b)

Page 82: Five Whys - Devoxx UK 2014

@YourTwitterHandle#DVXFR14{session hashtag} @al94781 #5whys

Any

Gener

al

Conclu

sion

s?

Page 83: Five Whys - Devoxx UK 2014

@al94781 #5whys

There are Some Themes (1)You don’t get any of this for free, so;

•Design for build-ability•Design for deploy- and undeploy-ability•Design for modularity•Design for monitor-ability•Design for automate-ability

(b)

Page 84: Five Whys - Devoxx UK 2014

@al94781 #5whys

There are Some Themes (2)•Reduce variation (or manage the sources of variation)

•Trust and enable developers to share and collaborate (inside and outside the firewall)

(b)

Page 85: Five Whys - Devoxx UK 2014

@al94781 #5whys

So, What About Us?We can’t apply all these ideas on all of

our projects

(b)

Page 86: Five Whys - Devoxx UK 2014

@al94781 #5whys

So, What About Us?We can’t apply all these ideas on all of

our projectsBut we could apply some of them on

some of our projects

(b)

Page 87: Five Whys - Devoxx UK 2014

@al94781 #5whys

Think: What’s the Effect?•On how we architect and design?•On how we build and test?•On how we deploy and run?•On how we structure our teams?•On how we interact with our customers?•On how we use and share code?

(b)

Page 88: Five Whys - Devoxx UK 2014

@al94781 #5whys

We Too Can Ask “Why?”•What else can we:

•challenge?•find that sucks, and then remove?•find that is good, and then amplify?•share, and get famous for?

(b)

Page 89: Five Whys - Devoxx UK 2014

@YourTwitterHandle#DVXFR14{session hashtag} @al94781 #5whys

Than

ks,

Q & A

Page 90: Five Whys - Devoxx UK 2014

@al94781 #5whys

Thanks / Creative Commons•Presentation Template — Guillaume LaForge

•The Queen — A prestigious heritage with some inspiration from The Sex Pistols and funny Devoxxians

•Girl with a Balloon — Banksy

•Tube — Michael Keen