YOU ARE DOWNLOADING DOCUMENT

Please tick the box to continue:

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/


Related Documents