Download - Five Whys - Devoxx UK 2014
@al94781#5whys
The Five “Whys”
Andrew Harmel-Law@al94781 the-music-of-time.blogspot.com & scalaeyeforthejavaguy.blogspot.com
@al94781 #5whys
The Five “Whys”•Andrew Harmel-Law
•Dev Lead / Developer / OSS Advocate @ Capgemini UK
•We build complicated stuff for other people. (We’re hiring. Email me)
@al94781 #5whys
TL;DL
We’re engineering ourselves into a right mess;
but we can engineer ourselves out of it
@al94781 #5whys
Disclaimer:No “Hype Cycles”,
“Magic Quadrants” or “Technology Radars” were harmed (or consulted) in the course of preparing
this presentation
@al94781 #5whys
“… and they also fail in ways that are beyond the comprehension
of a single person.”
@al94781 #5whys
@al94781 #5whys
@al94781 #5whys
@al94781 #5whys
@al94781 #5whys
@al94781 #5whys
How Do We Cope?• Identify the problem. Then solve it.
@al94781 #5whys
How Can We Cope?• Identify the problem. Then solve it.• Identify the problem. Then solve it.
@al94781 #5whys
How Can We Cope?• Identify the problem. Then solve it.• Identify the problem. Then solve it.• Identify the problem. Then solve it.
@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.
@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.
@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.
@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.
@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.
@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.
@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.
@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.
@al94781 #5whys
@al94781 #5whys
DOES THIS MEAN WE’RE ACTUALLY PART OF THE PROBLEM?
@al94781 #5whys
“?”
@al94781 #5whys
@al94781 #5whys
@al94781 #5whys
@al94781 #5whys
@al94781 #5whys
1. The Bakery and NoOps2. Anti-Fragility and the Simian Army3. Throw Everything Away4. The Church of Graphs5. Open Source (Almost) Everything
@YourTwitterHandle@al94781 #5whys
1. Th
e
Baker
y
and N
oOps
@al94781 #5whys
@al94781 #5whys
@al94781 #5whys
@al94781 #5whys
@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”)
@al94781 #5whys
•What if you had immutable deployables?•And what if you deployed to immutable environments?
@al94781 #5whys
“Netflix is a developer oriented culture.”
http://perfcap.blogspot.co.uk/2012/03/ops-devops-and-noops-at-netflix.html
@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
@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
@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
@al94781 #5whys
http://www.infoq.com/presentations/Building-for-the-Cloud-at-Netflix
@al94781 #5whys
http://techblog.netflix.com/2012/06/asgard-web-based-cloud-management-and.html
@al94781 #5whys
http://techblog.netflix.com/2012/06/asgard-web-based-cloud-management-and.html
@YourTwitterHandle@al94781 #5whys
2. Ant
i-
Fragil
ity &
the S
imian
Army
@al94781 #5whys
@al94781 #5whys
(a)
@al94781 #5whys
(b)
@al94781 #5whys
“Put all your eggs in one basket,
and then watch that basket very
closely”(Andrew Carnegie) (b)
(c)
@al94781 #5whys
(b)
@al94781 #5whys
(b)
@al94781 #5whys
http://queue.acm.org/detail.cfm?id=2499552
@al94781 #5whys
(b)
@YourTwitterHandle@al94781 #5whys
3. Th
row
Ever
ythin
g
Away
@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
@al94781 #5whys
“Plan to throw one away”
Fred Brooks,The Mythical Man
Month(b)
@al94781 #5whys
(b)
@al94781 #5whys
•But little pieces at a time
•And then only the ASCII-file implementations
(b)
What if We Were Always Throwing
Away?
@al94781 #5whys
•The knowledge gained from writing the previous version
•The specs (executable preferentially) (b)
What Are We Not Throwing Away?
@al94781 #5whys
@YourTwitterHandle@al94781 #5whys
4. Th
e
Chur
ch of
Graph
s
@al94781 #5whys
(b)
@al94781 #5whys
(b)
@al94781 #5whys
(b)
@al94781 #5whys
(b)
@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/
@al94781 #5whys
(b)
@al94781 #5whys
(b)
@al94781 #5whys
(b)
@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/
@al94781 #5whys
(b)http://code.flickr.net/2008/10/27/counting-timing/
@YourTwitterHandle#DVXFR14{session hashtag} @al94781 #5whys
5. Ope
n
Sour
ce
(Alm
ost)
Ever
ything
@al94781 #5whys
AUDIENCE POLL
- Who here uses Open Source?
- Who here contributes to Open Source?
- Who here creates Open Source?
(b)
@al94781 #5whys
AUDIENCE POLL
- Who here uses Open Source at Work?
(b)
@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)
@al94781 #5whys
(b)
@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?
@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?
@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)
@al94781 #5whys
(b)
@al94781 #5whys
(b)
@YourTwitterHandle#DVXFR14{session hashtag} @al94781 #5whys
Any
Gener
al
Conclu
sion
s?
@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)
@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)
@al94781 #5whys
So, What About Us?We can’t apply all these ideas on all of
our projects
(b)
@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)
@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)
@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)
@YourTwitterHandle#DVXFR14{session hashtag} @al94781 #5whys
Than
ks,
Q & A
@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