Top Banner
FAIL FAST, FAIL OFTEN Gordon Haff @ghaff, Technology Evangelist William Henry @ipbabble, DevOps Strategy Lead 13 July 2016
33

Fail Fast, Fail Often

Feb 17, 2017

Download

Technology

Gordon Haff
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Fail Fast, Fail Often

FAIL FAST, FAIL OFTEN

Gordon Haff @ghaff, Technology EvangelistWilliam Henry @ipbabble, DevOps Strategy Lead13 July 2016

Page 2: Fail Fast, Fail Often

FAILURE

2

Page 3: Fail Fast, Fail Often

3

FAILURE

Page 4: Fail Fast, Fail Often

4

FAILURE

Page 5: Fail Fast, Fail Often

ALSO FAILURE

5

Page 6: Fail Fast, Fail Often

FAILURES HAVE CONSEQUENCES

6

Page 7: Fail Fast, Fail Often

THE INESCAPABLE CONCLUSION?

7

Page 8: Fail Fast, Fail Often

DON’TFAIL

8

Page 9: Fail Fast, Fail Often

DON’TFAIL

9

Page 10: Fail Fast, Fail Often

FAILWELL

10

Page 11: Fail Fast, Fail Often

11

Experiment by Peter Skillman, former VP of design at Palm

Page 12: Fail Fast, Fail Often

12

WHAT HE LEARNED

• Kindergarteners do not spend 15 minutes in a bunch of status transactions trying to figure out who is going to be CEO of Spaghetti Corporation.

• They don’t sit around talking about the problem. They just start building to determine what works and what doesn’t.

Page 13: Fail Fast, Fail Often

SOFTWARE = GREAT MATCH FOR

FAILING WELL

13

Page 14: Fail Fast, Fail Often

14

FIVE PRINCIPLES:

THE RIGHT

scopeapproachworkflowincentivesculture

Page 15: Fail Fast, Fail Often

15

THE RIGHT SCOPEConstrain the impact of failure

• Enable experimentation

• Stop cascading of failures

• Make deployments incremental, frequent, and routine events

• Generally decouple activities and decisions from each other

• Small, autonomous, bounded context services

Page 16: Fail Fast, Fail Often

16

SMALL

• “Two pizza teams”

• Well-defined functional units

• Organized around business capabilities (Conway's Law)

Page 17: Fail Fast, Fail Often

17

AUTONOMOUS

• Implementation changes can happen independently of other services

• Data and functionality exposed only through service calls over the network

• Designed to be externalizable

• No back-doors

Page 18: Fail Fast, Fail Often

18

THE RIGHT APPROACHContinuously experiment, iterate, and improve

• It’s about the process

• Identify mistakes early

• Establish safety nets

• Fail and move on

Page 19: Fail Fast, Fail Often

19

THE PROCESSInvolves people and communication

• The most effective process have continuous communication - think scrums and kanban

• Allows for collaboration that can identify failures before they happen

• Allows for feedback to continuously improve and cultivate growth

• Provides transparency

Page 20: Fail Fast, Fail Often

20

DEV LESSONS: BREAKING CODE VIOLENTLYBuild in violent failures to highlight issues

• C/C++ lessons:

• Sanity check using assertions

• Invariant checks

• If ever I’m here in the code and these conditions aren’t met, then I have no business being here. Something is wrong and I should fail violently.

• Involves tracing through the failure

Page 21: Fail Fast, Fail Often

21

AUTOMATED REGRESSION TESTING

• As products and services evolve we discovered that maintaining and incrementally adding new tests became valuable

• These tests were/are most often based on experienced failures and bugs

• Scripts were developed to run nightly builds against various developer changes to test for regression

• Testing tools evolved - proprietary and open source

Page 22: Fail Fast, Fail Often

22

OPS LESSONS: CHAOS MONKEYTest robustness of recovery using failure

• Platform should provide uninterrupted services to the customer

• Therefore:

• Should always recover in acceptable amount of time

• We should have random failures to ensure that changes have not regressed or caused new recovery problems

http://understeer.hatenablog.com/entry/2012/02/29/224629

Page 23: Fail Fast, Fail Often

23

THE RIGHT WORKFLOWRepeatably automate for consistency

• Goal is repeatable automation

• Toyota’s yellow cord

• Initially pipelines may be very different

• Different tools

• Traditional vs. “cloud native”

• It’s a journey• Consolidation evolves naturally

Page 24: Fail Fast, Fail Often

24

DESIRABLE ENTERPRISE CI/CD WORKFLOW

myRepo ProjectRepo

CI

Commit Push

Pass/Fail

Local Test

BuildRepo

CD

ReleaseRepo

Monitor

Build Test Review/Appr Deliver Deploy

3rd Party

Page 25: Fail Fast, Fail Often

25

CI/CD PIPELINE TOOLSET

CI/CD Workflow UI

gerrit

Page 26: Fail Fast, Fail Often

26

OPS LESSONS: RED/GREENConfiguration as code has built in failure

Continuous Integration / Continuous Deployment

Image & Package &Metadata Repository

src repo

Dev./Build QA Productionin OHC

Events

Page 27: Fail Fast, Fail Often

27

THE RIGHT INCENTIVESAlign rewards and behavior with desirable outcomes

• Incentives (advancement, money, recognition) need to reward trust, cooperation, and innovation

• Peer reward systems also valuable

• Individual has control over their own success

• But people still have responsibility for their actions

Page 28: Fail Fast, Fail Often

28

THE RIGHT CULTUREBuild systems and organizations that allow for failing well

• Transparency

• Even good decisions can have bad outcomes

• Innovation inherently risky• Cut losses (avoid sunk cost fallacy)

This is why open source is so successful!

Page 29: Fail Fast, Fail Often

29

Page 30: Fail Fast, Fail Often

30

BUT CULTURE ISN’T SOMETHING YOU JUST CHANGE

• Lack of agreed-to model of what “right” culture looks like

• Different organizations require different behaviors

• Culture change is difficult to measure and quantify

• Culture is very hard to impose

• Culture is an output, not an input

Page 31: Fail Fast, Fail Often

31

CULTURE IS:

emergentpervasivethe keystone

Page 32: Fail Fast, Fail Often

plus.google.com/+RedHat

linkedin.com/company/red-hat

youtube.com/user/RedHatVideos

facebook.com/redhatinc

twitter.com/RedHatNews

THANK YOU

Page 33: Fail Fast, Fail Often

CREDITS

33

Tacoma Narrows Bridge: Barney Elliott; The Camera Shop - Screenshot taken from 16MM Kodachrome motion picture film by Barney Elliott.

Time cover: Time, Inc.

Wipeout, Flickr/CC: https://www.flickr.com/photos/andymorffew/15843725192

Marshmallow challenge: http://marshmallowchallenge.com/Welcome.html

Linux Collaboration Summit: Linux Foundation.

Two pizzas: Flickr/CC https://www.flickr.com/photos/dongkwan/283076601

Frog: Kathy CC/Flickr https://flic.kr/p/b9fFV

Square peg Flickr/CC: https://www.flickr.com/photos/epublicist/3546059144/