133
Dave Farley http://www.davefarley.net @davefarley77 http://www.continuous-delivery.co.uk The Rationale for Continuous Delivery Or What Does ‘Good’ Look Like?

DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Embed Size (px)

Citation preview

Page 1: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Dave Farley http://www.davefarley.net @davefarley77

http://www.continuous-delivery.co.uk

The Rationale for Continuous DeliveryOr

What Does ‘Good’ Look Like?

Page 2: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

The State of Software Development

Page 3: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

The State of Software DevelopmentSource: KPMG (New Zealand) Date: 2010

In a study of project management practices:

1) 70% of organizations have suffered at least one project failure in the last 12 months

2) 50% of respondents indicated that their projects consistently failed to achieve what they set out to achieve.

Page 4: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

The State of Software DevelopmentSource: KPMG (New Zealand) Date: 2010

In a study of project management practices:

1) 70% of organizations have suffered at least one project failure in the last 12 months

2) 50% of respondents indicated that their projects consistently failed to achieve what they set out to achieve.

Source: KPMG – Global IT Management Survey Date: 2005

In a survey of 600 projects worldwide:

1) 49% of organisations had suffered a project failure in the past 12 months

2) 2% of organisations reported that all of their projects achieved their desired benefits.

Page 5: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

The State of Software DevelopmentSource: KPMG (New Zealand) Date: 2010

In a study of project management practices:

1) 70% of organizations have suffered at least one project failure in the last 12 months

2) 50% of respondents indicated that their projects consistently failed to achieve what they set out to achieve.

Source: KPMG – Global IT Management Survey Date: 2005

In a survey of 600 projects worldwide:

1) 49% of organisations had suffered a project failure in the past 12 months

2) 2% of organisations reported that all of their projects achieved their desired benefits.

Source: Logica Management Consulting Date: 2008

In a survey of 380 senior execs in Western Europe:

1) 35% of organisations abandoned a major project in the last 3years

2) 37% of business change programmes fail to deliver benefits.

Page 6: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

The State of Software DevelopmentSource: KPMG (New Zealand) Date: 2010

In a study of project management practices:

1) 70% of organizations have suffered at least one project failure in the last 12 months

2) 50% of respondents indicated that their projects consistently failed to achieve what they set out to achieve.

Source: KPMG – Global IT Management Survey Date: 2005

In a survey of 600 projects worldwide:

1) 49% of organisations had suffered a project failure in the past 12 months

2) 2% of organisations reported that all of their projects achieved their desired benefits.

Source: Logica Management Consulting Date: 2008

In a survey of 380 senior execs in Western Europe:

1) 35% of organisations abandoned a major project in the last 3years

2) 37% of business change programmes fail to deliver benefits.

Source: The McKinsey Group with Oxford University Date: 2012

In a study of 5,400 large scale projects (> $15m):

1) 17% of projects go so badly that they threaten the existence of the company performing them.

2) On average large projects run 45% over budget and 7% over time while delivering 56% less value than predicted.

Page 7: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

If Software Projects Worked…

Page 8: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

If Software Projects Worked…

Page 9: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Failure Success

If Software Projects Worked…

Page 10: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Failure Success

If Software Projects Worked…

Page 11: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

The State of Software Development Has Been Err…. Sub-Optimal

Page 12: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

The State of Software Development Has Been Err…. Sub-Optimal

Page 13: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

The State of Software Development Has Been Err…. Sub-Optimal

But there are signs of change…

Page 14: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

What Have We Tried?

Page 15: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

What Have We Tried?

Page 16: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

What Have We Tried?

Page 17: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

What Have We Tried?

Page 18: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

What Have We Tried?

Page 19: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

What Have We Tried?

Page 20: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

What Have We Tried?

Page 21: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

What Have We Tried?

Page 22: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

What Have We Tried?

Page 23: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

What Have We Tried?

Page 24: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

What Have We Tried?

Page 25: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Page 26: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Waterfall - Precisely Where We Went Wrong Managing The Development of Large Software Systems - Dr Winston W. Royce (1970)

Page 27: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Waterfall - Precisely Where We Went Wrong Managing The Development of Large Software Systems - Dr Winston W. Royce (1970)

The IEEE has a lot to answer for!

Page 28: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Waterfall - Precisely Where We Went Wrong Managing The Development of Large Software Systems - Dr Winston W. Royce (1970)

Page 29: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Waterfall - Precisely Where We Went Wrong Managing The Development of Large Software Systems - Dr Winston W. Royce (1970)

Page 30: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Waterfall - Precisely Where We Went Wrong Managing The Development of Large Software Systems - Dr Winston W. Royce (1970)

Page 31: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

“…the implementation described above is risky and invites failure.”

<snip>

“The testing phase which occurs at the end of the development cycle is the first event for which timing, storage, input/output

transfers, etc., are experienced as distinguished from analysed. These phenomena are not precisely analysable.”

Waterfall - Precisely Where We Went Wrong Managing The Development of Large Software Systems - Dr Winston W. Royce (1970)

Page 32: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Waterfall - Precisely Where We Went Wrong Managing The Development of Large Software Systems - Dr Winston W. Royce (1970)

Page 33: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Waterfall - Precisely Where We Went Wrong Managing The Development of Large Software Systems - Dr Winston W. Royce (1970)

Page 34: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Waterfall - Precisely Where We Went Wrong Managing The Development of Large Software Systems - Dr Winston W. Royce (1970)

Page 35: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Learning From Our Mistakes

Page 36: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Learning From Our Mistakes

“Insanity is doing the same thing over and over again and expecting different results.” Albert Einstein

Page 37: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

What Do We Really Want?

Customer

Feedback

Business Idea

Page 38: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

What Do We Really Want?

Customer

Feedback

Business Idea

Quickly Cheaply Reliably

Page 39: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

A Question….

Page 40: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

A Question….

What is the most successful invention in human history?

Page 41: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

A Question….

SCIENCE

Page 42: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

The Scientific Method

Characterisation Make a guess based on experience and observation. Hypothesis Propose an explanation. Deduction Make a prediction from the hypothesis. Experiment Test the prediction.

Repeat!

Page 43: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

What Works?

57%14%

29%

ChallengedSuccessfulFailed

49%42%

9%

Source: The CHAOS Manifesto, The Standish Group 2012

AgileWaterfall

Page 44: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

What Works? - More Data

30%

64%

6% 21%

72%

7% 28%

65%

7%

35%

50%

15%32%

49%

18%

Source: Scott Ambler, Dr. Dobbs Journal, Feb 2014 (http://www.drdobbs.com/architecture-and-design/the-non-existent-software-crisis-debunki/240165910)

Agile Lean Iterative

Ad-Hoc Traditional

Page 45: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

What Works? - More Data

30%

64%

6% 21%

72%

7% 28%

65%

7%

35%

50%

15%32%

49%

18%

Source: Scott Ambler, Dr. Dobbs Journal, Feb 2014 (http://www.drdobbs.com/architecture-and-design/the-non-existent-software-crisis-debunki/240165910)

Agile Lean Iterative

Ad-Hoc Traditional

Lean Thinking …

• Deliver Fast • Build Quality In • Optimise the Whole • Eliminate Waste

• Unnecessary Variations (Mura) • Overburden (Muri) • Wasteful activities (Muda)

• Amplify Learning • Decide Late • Empower the Team

Page 46: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Smart Automation - a repeatable, reliable process for releasing software

Unit Test CodeIdea Executable spec. Build Release

What Really Works?

Page 47: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Smart Automation - a repeatable, reliable process for releasing software

Unit Test CodeIdea Executable spec. Build Release

What Really Works?

Page 48: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Smart Automation - a repeatable, reliable process for releasing software

Unit Test CodeIdea Executable spec. Build Release

“It doesn’t matter how intelligent you are, if you guess and that guess cannot be backed up by experimental evidence – then it is still a guess!” - Richard Feynman

What Really Works?

Page 49: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Being Experimental - The Goal

Page 50: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Being Experimental - The Goal

“I believe that this nation should commit itself to achieving the goal, before this decade is out, of landing a man on the moon and returning him safely to the earth” - John F. Kennedy (1961)

Page 51: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Being Experimental - The Goal

Page 52: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Being Experimental - The Challenge

Page 53: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Being Experimental - The Challenge

Page 54: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental - Purpose

Page 55: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental - Purpose

Page 56: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental - Purpose

Page 57: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental - Small Steps

(C)opyright Dave Farley 2015

Page 58: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental - Small Steps

(C)opyright Dave Farley 2015

Page 59: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental - Giant Leaps

Page 60: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental - Giant Leaps

Page 61: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental - The Reality

Inspired By: Russ Olsen’s Presentation “The Moon” at QCon London 2015

Page 62: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental - The Reality

The Ranger Programme

Inspired By: Russ Olsen’s Presentation “The Moon” at QCon London 2015

Page 63: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental - The Reality

The Ranger Programme

‣ Ranger 1 - Launch Failure

Inspired By: Russ Olsen’s Presentation “The Moon” at QCon London 2015

Page 64: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental - The Reality

The Ranger Programme

‣ Ranger 1 - Launch Failure‣ Ranger 2 - Launch Failure

Inspired By: Russ Olsen’s Presentation “The Moon” at QCon London 2015

Page 65: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental - The Reality

The Ranger Programme

‣ Ranger 1 - Launch Failure‣ Ranger 2 - Launch Failure‣ Ranger 3 - Missed!

Inspired By: Russ Olsen’s Presentation “The Moon” at QCon London 2015

Page 66: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental - The Reality

The Ranger Programme

‣ Ranger 1 - Launch Failure‣ Ranger 2 - Launch Failure‣ Ranger 3 - Missed!‣ Ranger 4 - Impact, systems failed

Inspired By: Russ Olsen’s Presentation “The Moon” at QCon London 2015

Page 67: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental - The Reality

The Ranger Programme

‣ Ranger 1 - Launch Failure‣ Ranger 2 - Launch Failure‣ Ranger 3 - Missed!‣ Ranger 4 - Impact, systems failed‣ Ranger 5 - Missed!

Inspired By: Russ Olsen’s Presentation “The Moon” at QCon London 2015

Page 68: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental - The Reality

The Ranger Programme

‣ Ranger 1 - Launch Failure‣ Ranger 2 - Launch Failure‣ Ranger 3 - Missed!‣ Ranger 4 - Impact, systems failed‣ Ranger 5 - Missed!‣ Ranger 6 - Impact, cameras failed

Inspired By: Russ Olsen’s Presentation “The Moon” at QCon London 2015

Page 69: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental - The Reality

The Ranger Programme

‣ Ranger 1 - Launch Failure‣ Ranger 2 - Launch Failure‣ Ranger 3 - Missed!‣ Ranger 4 - Impact, systems failed‣ Ranger 5 - Missed!‣ Ranger 6 - Impact, cameras failed‣ Ranger 7 - Success!

Inspired By: Russ Olsen’s Presentation “The Moon” at QCon London 2015

Page 70: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental - The Reality

The Ranger Programme

‣ Ranger 1 - Launch Failure‣ Ranger 2 - Launch Failure‣ Ranger 3 - Missed!‣ Ranger 4 - Impact, systems failed‣ Ranger 5 - Missed!‣ Ranger 6 - Impact, cameras failed‣ Ranger 7 - Success!‣ Ranger 8 - Success!

Inspired By: Russ Olsen’s Presentation “The Moon” at QCon London 2015

Page 71: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental - The Reality

The Ranger Programme

‣ Ranger 1 - Launch Failure‣ Ranger 2 - Launch Failure‣ Ranger 3 - Missed!‣ Ranger 4 - Impact, systems failed‣ Ranger 5 - Missed!‣ Ranger 6 - Impact, cameras failed‣ Ranger 7 - Success!‣ Ranger 8 - Success!‣ Ranger 9 - Success!

Inspired By: Russ Olsen’s Presentation “The Moon” at QCon London 2015

Page 72: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental - Works!

Page 73: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental - Works!

Build the tallest free-standing tower you can, that will support a marshmallow, with just spaghetti, tape and string

Page 74: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental - Works!

Source: Tom Wujec (http://marshmallowchallenge.com)

Page 75: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental - Works!

Source: Tom Wujec (http://marshmallowchallenge.com)

Page 76: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental - Works!

Source: Tom Wujec (http://marshmallowchallenge.com)

Page 77: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental

Page 78: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental

Page 79: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental

Page 80: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental

Page 81: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental - Fast & Slow Thinking

Page 82: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental - Fast & Slow Thinking

2 + 2

Page 83: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental - Fast & Slow Thinking

2 + 217 x 24

Page 84: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental - Fast & Slow Thinking

Page 85: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental - Fast & Slow Thinking

Page 86: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental - Fast & Slow Thinking

Source: fMRI Brain-scans by Dr. Gerald Huther, Presented at ‘Production Systems 2009 Conference’ via Mike Rother

Page 87: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental - Fast & Slow Thinking

System 1 Thinking - Fast

System 2 Thinking - Slow

Source: fMRI Brain-scans by Dr. Gerald Huther, Presented at ‘Production Systems 2009 Conference’ via Mike Rother

Page 88: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental

• Is Hard Work - Literally!

• We are Programmed to avoid it

• We Will Jump to Conclusions

• We Can Only Combat this Through a Deliberate Act of Will and Practice

Page 89: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

(C)opyright Dave Farley 2015

Being Experimental - Solves These Problems

• Confirmation Bias • Biased Search for Information • Biased Interpretation • Biased Memory

• Polarisation of Opinion • Persistence of Discredited Beliefs • Preference for Early Information • Illusory Association Between Events

Page 90: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Cycle-Time

103 days

Typical Traditional Cycle Time10 days

64 days

Page 91: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Cycle-Time

Commit Stage Compile Unit test Analysis

Build Installers

Automated acceptance

testing

Automated performance

testing

Manual testing

Release

57 mins

3 mins 20 mins

20 mins

30 mins

4 mins

Typical CD Cycle Time

103 days

Typical Traditional Cycle Time10 days

64 days

Page 92: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

What Is Continuous Delivery?“Our highest priority is to satisfy the customer through early

and continuous delivery of valuable software.”

The first principle of the agile manifesto.

The logical extension of continuous integration.

A holistic approach to development.

Every commit creates a release candidate.

Finished means released into production!

Page 93: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

The Principles of Continuous DeliveryCreate a repeatable, reliable process for releasing software. Automate almost everything. Keep everything under version control. If it hurts, do it more often – bring the pain forward. Build quality in. Done means released. Everybody is responsible for the release process. Improve continuously.

Page 94: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

The Principles of Continuous DeliveryCreate a repeatable, reliable process for releasing software. Automate almost everything. Keep everything under version control. If it hurts, do it more often – bring the pain forward. Build quality in. Done means released. Everybody is responsible for the release process. Improve continuously.

“If Agile software development was the opening act to a great

performance, Continuous Delivery is the headliner.”

Forrester Research 2013

Page 95: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Example Continuous Delivery Process

Local Dev. Env.

Source Repository

Page 96: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Example Continuous Delivery Process

Local Dev. Env.

Source Repository

Page 97: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Example Continuous Delivery Process

Local Dev. Env. Commit

Source Repository

Page 98: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Example Continuous Delivery Process

Local Dev. Env. Commit

Source Repository

Page 99: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Example Continuous Delivery Process

Artifact Repository

Local Dev. Env. Commit

Source Repository

Page 100: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Example Continuous Delivery Process

Artifact Repository

Local Dev. Env. Commit

Commit

Source Repository

Page 101: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Example Continuous Delivery Process

Artifact Repository

Local Dev. Env.

Acceptance

Commit

Commit

Source Repository

Page 102: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Example Continuous Delivery Process

Artifact Repository

Local Dev. Env.

Acceptance

Commit

Commit

Source Repository

Page 103: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Example Continuous Delivery Process

Artifact Repository

Local Dev. Env.

Acceptance

Commit

CommitAcceptance

Source Repository

Page 104: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Example Continuous Delivery Process

Artifact Repository

Local Dev. Env.

Acceptance

Commit

CommitAcceptance

Source Repository

Manual Test Env.

Deployment App.

Page 105: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Example Continuous Delivery Process

Artifact Repository

Local Dev. Env.

Acceptance

Commit

CommitAcceptance

Source Repository

Manual Test Env.

Deployment App.

Page 106: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Example Continuous Delivery Process

Artifact Repository

Local Dev. Env.

Acceptance

Commit

CommitAcceptance

Manual

Source Repository

Manual Test Env.

Deployment App.

Page 107: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Example Continuous Delivery Process

Artifact Repository

Local Dev. Env.

Acceptance

Commit

Component Performance

CommitAcceptance

Manual

Source Repository

Manual Test Env.

Deployment App.

Page 108: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Example Continuous Delivery Process

Artifact Repository

Local Dev. Env.

Acceptance

Commit

Component Performance

CommitAcceptance

Manual

Source Repository

Manual Test Env.

Deployment App.

Page 109: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Example Continuous Delivery Process

Artifact Repository

Local Dev. Env.

Acceptance

Commit

Component Performance

CommitAcceptance

Manual

Perf1

Source Repository

Manual Test Env.

Deployment App.

Page 110: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Example Continuous Delivery Process

Artifact Repository

Local Dev. Env.

Acceptance

Commit

Component Performance

System Performance

CommitAcceptance

Manual

Perf1

Source Repository

Manual Test Env.

Deployment App.

Page 111: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Example Continuous Delivery Process

Artifact Repository

Local Dev. Env.

Acceptance

Commit

Component Performance

System Performance

CommitAcceptance

Manual

Perf1

Source Repository

Manual Test Env.

Deployment App.

Page 112: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Example Continuous Delivery Process

Artifact Repository

Local Dev. Env.

Acceptance

Commit

Component Performance

System Performance

CommitAcceptance

Manual

Perf1Perf2

Source Repository

Manual Test Env.

Deployment App.

Page 113: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Example Continuous Delivery Process

Artifact Repository

Local Dev. Env.

Acceptance

Commit

Component Performance

System Performance

CommitAcceptance

Manual

Perf1Perf2

Source Repository

Manual Test Env.

Deployment App.

Data Migration

Page 114: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Example Continuous Delivery Process

Artifact Repository

Local Dev. Env.

Acceptance

Commit

Component Performance

System Performance

CommitAcceptance

Manual

Perf1Perf2

Source Repository

Manual Test Env.

Deployment App.

Data Migration

Page 115: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Example Continuous Delivery Process

Artifact Repository

Local Dev. Env.

Acceptance

Commit

Component Performance

System Performance

CommitAcceptance

Manual

Perf1Perf2

Staged

Source Repository

Manual Test Env.

Deployment App.

Data Migration

Page 116: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Example Continuous Delivery Process

Artifact Repository

Local Dev. Env.

Acceptance

Commit

Component Performance

System Performance

Production Env.

Deployment App.

CommitAcceptance

Manual

Perf1Perf2

Staged

Source Repository

Manual Test Env.

Deployment App.

Data Migration

Page 117: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Example Continuous Delivery Process

Artifact Repository

Local Dev. Env.

Acceptance

Commit

Component Performance

System Performance

Production Env.

Deployment App.

CommitAcceptance

Manual

Perf1Perf2

Staged

Source Repository

Manual Test Env.

Deployment App.

Data Migration

Page 118: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Example Continuous Delivery Process

Artifact Repository

Local Dev. Env.

Acceptance

Commit

Component Performance

System Performance

Production Env.

Deployment App.

CommitAcceptance

Manual

Perf1Perf2

Staged

Production

Source Repository

Manual Test Env.

Deployment App.

Data Migration

Page 119: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Example Continuous Delivery Process

Artifact Repository

Local Dev. Env.

Deployment Pipeline

Acceptance

Commit

Component Performance

System Performance

Production Env.

Deployment App.

CommitAcceptance

Manual

Perf1Perf2

Staged

Production

Source Repository

Manual Test Env.

Deployment App.

Data Migration

Page 120: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

“This may work for small projects but can’t possibly scale”

Page 121: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

“This may work for small projects but can’t possibly scale”

The Google Build Process

• Single Monolithic Repository

• Continuous Build & Test on Commit For: • > 60 Million builds per year and growing exponentially.

• > 100 Million lines of code.

• All tests are run on every commit, (>20 commits per minute).

• > 100 Million test cases executed per day.

Page 122: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

“This is too risky, releasing all the time is a recipe for disaster”

Page 123: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

“This is too risky, releasing all the time is a recipe for disaster”

The Amazon Build Process

• Mean time between deployment - 11.6 seconds

• Mean hosts simultaneously receiving a deployment - 10,000

• 75% reduction in outages triggered by deployment between 2006 and 2011

• 90% reduction in outage minutes triggered by deployment

• ~0.001% of deployments cause an outage

• Instantaneous rollback

• Reduction in complexity

Page 124: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

“This may work for simple web sites but my technology is too complex”

Page 125: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

“This may work for simple web sites but my technology is too complex”

•Transformation of Development Approach for all LaserJet Firmware Products

•Large Complex Project•Multiple Products•Four Year Timeframe•10x Developer Productivity Increase

HP Laserjet Firmware Team Experience

Page 126: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

HP LaserJet Firmware Team

10% Code Integration 20% Detailed Planning 25% Porting Code 25% Product Support 15% Manual Testing ~5% Innovation

2% Continuous Integration 5% Agile Planning 15% Architectural Integrity 10% Unified Support 5% Automated Testing 3% Improving Tools 10% Writing Tests ~40% Innovation

2008 2011

Page 127: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

The Results

A Practical Approach to Large scale Agile Development (Gruver, Young and Fulgrhum)

• Overall development costs reduced by ~40% • Programs under development increased by ~140% • Development cost per program down by 70% • Resources now driving innovation increased by 5x

Page 128: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

The Effect on Business - Part 1• Continuous Delivery changes the economics of software

delivery.

• 87% of companies whose development & operations functions were rated as “excellent” saw revenue growth > 10% in 20131

• In contrast, 13% of companies whose development & operations functions were rated “average” or worse saw similar growth.

• 8x more frequent production deployments

• 8000x faster deployment lead times (i.e., time required from “code committed” to “successfully running in production”)

• 50% lower change failure rates

Source: 1"DevOps and Continuous Delivery: Ten Factors Shaping the Future of Application Delivery.”, Enterprise Management Associates’ Report (2014)

Page 129: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

The Effect on Business - Part 2• “Firms with high-performing IT organizations were twice as likely

to exceed their profitability, market share and productivity goals”2

• Higher throughput2

• Higher reliability2

• 12x faster service restoration times when something went wrong (i.e., MTTR)

• “Organizational culture is one of the strongest predictors of both IT performance and overall performance of the organization”2

• “We can now assert with confidence that high IT performance correlates with strong business performance, helping to boost productivity, profitability and market share.”2

Source: 2“2014 State of DevOps report”, Jez Humble, Gene Kim, Nicole Forsgren Velasquez, Puppet Labs (2014)

Page 130: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Who Practices CD?

Page 131: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Who Practices CD?

Page 132: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Who Practices CD?

Page 133: DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

Q&A

http://www.continuous-delivery.co.uk

Dave Farley http://www.davefarley.net @davefarley77