Dave Farley
http://www.davefarley.net
@davefarley77
http://www.continuous-delivery.co.uk
The Rationale for
Continuous Deli...
The State of Software Development
The State of Software Development
Source: KPMG (New Zealand)
Date: 2010
In a study of project management practices:
1) 70%...
The State of Software Development
Source: KPMG (New Zealand)
Date: 2010
In a study of project management practices:
1) 70%...
The State of Software Development
Source: KPMG (New Zealand)
Date: 2010
In a study of project management practices:
1) 70%...
The State of Software Development
Source: KPMG (New Zealand)
Date: 2010
In a study of project management practices:
1) 70%...
If Software Projects Worked…
If Software Projects Worked…
Failure Success
If Software Projects Worked…
Failure Success
If Software Projects Worked…
The State of Software Development
Has Been Err…. Sub-Optimal
The State of Software Development
Has Been Err…. Sub-Optimal
The State of Software Development
Has Been Err…. Sub-Optimal
But there are signs of change…
What Have We Tried?
What Have We Tried?
What Have We Tried?
What Have We Tried?
What Have We Tried?
What Have We Tried?
What Have We Tried?
What Have We Tried?
What Have We Tried?
What Have We Tried?
What Have We Tried?
(C)opyright Dave Farley 2015
(C)opyright Dave Farley 2015
Waterfall - Precisely Where We Went Wrong
Managing The Development of Large Software Systems ...
(C)opyright Dave Farley 2015
Waterfall - Precisely Where We Went Wrong
Managing The Development of Large Software Systems ...
(C)opyright Dave Farley 2015
Waterfall - Precisely Where We Went Wrong
Managing The Development of Large Software Systems ...
(C)opyright Dave Farley 2015
Waterfall - Precisely Where We Went Wrong
Managing The Development of Large Software Systems ...
(C)opyright Dave Farley 2015
Waterfall - Precisely Where We Went Wrong
Managing The Development of Large Software Systems ...
(C)opyright Dave Farley 2015
“…the implementation described above is risky and invites failure.”
<snip>
“The testing phase...
(C)opyright Dave Farley 2015
Waterfall - Precisely Where We Went Wrong
Managing The Development of Large Software Systems ...
(C)opyright Dave Farley 2015
Waterfall - Precisely Where We Went Wrong
Managing The Development of Large Software Systems ...
(C)opyright Dave Farley 2015
Waterfall - Precisely Where We Went Wrong
Managing The Development of Large Software Systems ...
Learning From Our Mistakes
Learning From Our Mistakes
“Insanity is doing the
same thing over and
over again and
expecting different
results.”
Albert ...
What Do We Really Want?
Customer
Feedback
Business Idea
What Do We Really Want?
Customer
Feedback
Business Idea
Quickly
Cheaply
Reliably
A Question….
A Question….
What is the most successful
invention in human history?
A Question….
SCIENCE
The Scientific Method
Characterisation Make a guess based on experience and observation.
Hypothesis Propose an explanation....
What Works?
57%
14%
29%
Challenged
Successful
Failed
49%
42%
9%
Source: The CHAOS Manifesto, The Standish Group 2012
Agile...
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, ...
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, ...
Smart Automation - a repeatable, reliable process for releasing
software
Unit Test CodeIdea
Executable
spec.
Build Release...
Smart Automation - a repeatable, reliable process for releasing
software
Unit Test CodeIdea
Executable
spec.
Build Release...
Smart Automation - a repeatable, reliable process for releasing
software
Unit Test CodeIdea
Executable
spec.
Build Release...
Being Experimental - The Goal
Being Experimental - The Goal
“I believe that this nation should commit itself
to achieving the goal, before this decade i...
Being Experimental - The Goal
Being Experimental - The Challenge
Being Experimental - The Challenge
(C)opyright Dave Farley 2015
Being Experimental - Purpose
(C)opyright Dave Farley 2015
Being Experimental - Purpose
(C)opyright Dave Farley 2015
Being Experimental - Purpose
(C)opyright Dave Farley 2015
Being Experimental - Small Steps
(C)opyright Dave Farley 2015
(C)opyright Dave Farley 2015
Being Experimental - Small Steps
(C)opyright Dave Farley 2015
(C)opyright Dave Farley 2015
Being Experimental - Giant Leaps
(C)opyright Dave Farley 2015
Being Experimental - Giant Leaps
(C)opyright Dave Farley 2015
Being Experimental - The Reality
Inspired By: Russ Olsen’s Presentation “The Moon” at QCon Lo...
(C)opyright Dave Farley 2015
Being Experimental - The Reality
The Ranger Programme
Inspired By: Russ Olsen’s Presentation ...
(C)opyright Dave Farley 2015
Being Experimental - The Reality
The Ranger Programme
‣ Ranger 1 - Launch Failure
Inspired By...
(C)opyright Dave Farley 2015
Being Experimental - The Reality
The Ranger Programme
‣ Ranger 1 - Launch Failure
‣ Ranger 2 ...
(C)opyright Dave Farley 2015
Being Experimental - The Reality
The Ranger Programme
‣ Ranger 1 - Launch Failure
‣ Ranger 2 ...
(C)opyright Dave Farley 2015
Being Experimental - The Reality
The Ranger Programme
‣ Ranger 1 - Launch Failure
‣ Ranger 2 ...
(C)opyright Dave Farley 2015
Being Experimental - The Reality
The Ranger Programme
‣ Ranger 1 - Launch Failure
‣ Ranger 2 ...
(C)opyright Dave Farley 2015
Being Experimental - The Reality
The Ranger Programme
‣ Ranger 1 - Launch Failure
‣ Ranger 2 ...
(C)opyright Dave Farley 2015
Being Experimental - The Reality
The Ranger Programme
‣ Ranger 1 - Launch Failure
‣ Ranger 2 ...
(C)opyright Dave Farley 2015
Being Experimental - The Reality
The Ranger Programme
‣ Ranger 1 - Launch Failure
‣ Ranger 2 ...
(C)opyright Dave Farley 2015
Being Experimental - The Reality
The Ranger Programme
‣ Ranger 1 - Launch Failure
‣ Ranger 2 ...
(C)opyright Dave Farley 2015
Being Experimental - Works!
(C)opyright Dave Farley 2015
Being Experimental - Works!
Build the tallest free-standing tower you can, that will support ...
(C)opyright Dave Farley 2015
Being Experimental - Works!
Source: Tom Wujec (http://marshmallowchallenge.com)
(C)opyright Dave Farley 2015
Being Experimental - Works!
Source: Tom Wujec (http://marshmallowchallenge.com)
(C)opyright Dave Farley 2015
Being Experimental - Works!
Source: Tom Wujec (http://marshmallowchallenge.com)
(C)opyright Dave Farley 2015
Being Experimental
(C)opyright Dave Farley 2015
Being Experimental
(C)opyright Dave Farley 2015
Being Experimental
(C)opyright Dave Farley 2015
Being Experimental
(C)opyright Dave Farley 2015
Being Experimental - Fast & Slow Thinking
(C)opyright Dave Farley 2015
Being Experimental - Fast & Slow Thinking
2 + 2
(C)opyright Dave Farley 2015
Being Experimental - Fast & Slow Thinking
2 + 2
17 x 24
(C)opyright Dave Farley 2015
Being Experimental - Fast & Slow Thinking
(C)opyright Dave Farley 2015
Being Experimental - Fast & Slow Thinking
(C)opyright Dave Farley 2015
Being Experimental - Fast & Slow Thinking
Source: fMRI Brain-scans by Dr. Gerald Huther, Pres...
(C)opyright Dave Farley 2015
Being Experimental - Fast & Slow Thinking
System 1 Thinking - Fast
System 2 Thinking - Slow
S...
(C)opyright Dave Farley 2015
Being Experimental
• Is Hard Work - Literally!
• We are Programmed to avoid it
• We Will Jump...
(C)opyright Dave Farley 2015
Being Experimental - Solves These Problems
• Confirmation Bias
• Biased Search for Information...
Cycle-Time
103 days
Typical Traditional Cycle Time
10 days
64 days
Cycle-Time
Commit Stage
Compile
Unit test
Analysis
Build Installers
Automated
acceptance
testing
Automated
performance
tes...
What Is Continuous Delivery?
“Our highest priority is to satisfy the customer through early
and continuous delivery of val...
The Principles of Continuous Delivery
Create a repeatable, reliable process for releasing software.
Automate almost everyt...
The Principles of Continuous Delivery
Create a repeatable, reliable process for releasing software.
Automate almost everyt...
Example Continuous Delivery Process
Local Dev. Env.
Source
Repository
Example Continuous Delivery Process
Local Dev. Env.
Source
Repository
Example Continuous Delivery Process
Local Dev. Env. Commit
Source
Repository
Example Continuous Delivery Process
Local Dev. Env. Commit
Source
Repository
Example Continuous Delivery Process
Artifact
Repository
Local Dev. Env. Commit
Source
Repository
Example Continuous Delivery Process
Artifact
Repository
Local Dev. Env. Commit
Commit
Source
Repository
Example Continuous Delivery Process
Artifact
Repository
Local Dev. Env.
Acceptance
Commit
Commit
Source
Repository
Example Continuous Delivery Process
Artifact
Repository
Local Dev. Env.
Acceptance
Commit
Commit
Source
Repository
Example Continuous Delivery Process
Artifact
Repository
Local Dev. Env.
Acceptance
Commit
Commit
Acceptance
Source
Reposit...
Example Continuous Delivery Process
Artifact
Repository
Local Dev. Env.
Acceptance
Commit
Commit
Acceptance
Source
Reposit...
Example Continuous Delivery Process
Artifact
Repository
Local Dev. Env.
Acceptance
Commit
Commit
Acceptance
Source
Reposit...
Example Continuous Delivery Process
Artifact
Repository
Local Dev. Env.
Acceptance
Commit
Commit
Acceptance
Manual
Source
...
Example Continuous Delivery Process
Artifact
Repository
Local Dev. Env.
Acceptance
Commit
Component
Performance
Commit
Acc...
Example Continuous Delivery Process
Artifact
Repository
Local Dev. Env.
Acceptance
Commit
Component
Performance
Commit
Acc...
Example Continuous Delivery Process
Artifact
Repository
Local Dev. Env.
Acceptance
Commit
Component
Performance
Commit
Acc...
Example Continuous Delivery Process
Artifact
Repository
Local Dev. Env.
Acceptance
Commit
Component
Performance
System
Per...
Example Continuous Delivery Process
Artifact
Repository
Local Dev. Env.
Acceptance
Commit
Component
Performance
System
Per...
Example Continuous Delivery Process
Artifact
Repository
Local Dev. Env.
Acceptance
Commit
Component
Performance
System
Per...
Example Continuous Delivery Process
Artifact
Repository
Local Dev. Env.
Acceptance
Commit
Component
Performance
System
Per...
Example Continuous Delivery Process
Artifact
Repository
Local Dev. Env.
Acceptance
Commit
Component
Performance
System
Per...
Example Continuous Delivery Process
Artifact
Repository
Local Dev. Env.
Acceptance
Commit
Component
Performance
System
Per...
Example Continuous Delivery Process
Artifact
Repository
Local Dev. Env.
Acceptance
Commit
Component
Performance
System
Per...
Example Continuous Delivery Process
Artifact
Repository
Local Dev. Env.
Acceptance
Commit
Component
Performance
System
Per...
Example Continuous Delivery Process
Artifact
Repository
Local Dev. Env.
Acceptance
Commit
Component
Performance
System
Per...
Example Continuous Delivery Process
Artifact
Repository
Local Dev. Env.
Deployment Pipeline
Acceptance
Commit
Component
Pe...
“This may work for small projects but can’t possibly scale”
“This may work for small projects but can’t possibly scale”
The Google Build Process
• Single Monolithic Repository
• Cont...
“This is too risky, releasing all the time is a recipe for disaster”
“This is too risky, releasing all the time is a recipe for disaster”
The Amazon Build Process
• Mean time between deployme...
“This may work for simple web sites but my
technology is too complex”
“This may work for simple web sites but my
technology is too complex”
• Transformation of Development Approach for all Las...
HP LaserJet Firmware Team
10% Code Integration
20% Detailed Planning
25% Porting Code
25% Product Support
15% Manual Testi...
The Results
A Practical Approach to Large scale Agile Development (Gruver, Young and Fulgrhum)
• Overall development costs...
The Effect on Business - Part 1
• Continuous Delivery changes the economics of software
delivery.
• 87% of companies whose...
The Effect on Business - Part 2
• “Firms with high-performing IT organizations were twice as likely
to exceed their profita...
Who Practices CD?
Who Practices CD?
Who Practices CD?
Q&A
http://www.continuous-delivery.co.uk
Dave Farley
http://www.davefarley.net
@davefarley77
Nächste SlideShare
Wird geladen in …5
×

DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

6.552 Aufrufe

Veröffentlicht am

Many people working in software development spend their careers without seeing what good looks like. Our history is littered with inefficient processes creating poor quality output, too late to capitalise on the expected business value. How have we got to this state? How do we get past it? What does good really look like?
Continuous Delivery changes the economics of software development, find out how and why.

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

DevDay 2016: Dave Farley - The Rationale for Continuous Delivery

  1. 1. Dave Farley http://www.davefarley.net @davefarley77 http://www.continuous-delivery.co.uk The Rationale for Continuous Delivery Or What Does ‘Good’ Look Like?
  2. 2. The State of Software Development
  3. 3. The State of Software Development Source: 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.
  4. 4. The State of Software Development Source: 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.
  5. 5. The State of Software Development Source: 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.
  6. 6. The State of Software Development Source: 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.
  7. 7. If Software Projects Worked…
  8. 8. If Software Projects Worked…
  9. 9. Failure Success If Software Projects Worked…
  10. 10. Failure Success If Software Projects Worked…
  11. 11. The State of Software Development Has Been Err…. Sub-Optimal
  12. 12. The State of Software Development Has Been Err…. Sub-Optimal
  13. 13. The State of Software Development Has Been Err…. Sub-Optimal But there are signs of change…
  14. 14. What Have We Tried?
  15. 15. What Have We Tried?
  16. 16. What Have We Tried?
  17. 17. What Have We Tried?
  18. 18. What Have We Tried?
  19. 19. What Have We Tried?
  20. 20. What Have We Tried?
  21. 21. What Have We Tried?
  22. 22. What Have We Tried?
  23. 23. What Have We Tried?
  24. 24. What Have We Tried?
  25. 25. (C)opyright Dave Farley 2015
  26. 26. (C)opyright Dave Farley 2015 Waterfall - Precisely Where We Went Wrong Managing The Development of Large Software Systems - Dr Winston W. Royce (1970)
  27. 27. (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!
  28. 28. (C)opyright Dave Farley 2015 Waterfall - Precisely Where We Went Wrong Managing The Development of Large Software Systems - Dr Winston W. Royce (1970)
  29. 29. (C)opyright Dave Farley 2015 Waterfall - Precisely Where We Went Wrong Managing The Development of Large Software Systems - Dr Winston W. Royce (1970)
  30. 30. (C)opyright Dave Farley 2015 Waterfall - Precisely Where We Went Wrong Managing The Development of Large Software Systems - Dr Winston W. Royce (1970)
  31. 31. (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)
  32. 32. (C)opyright Dave Farley 2015 Waterfall - Precisely Where We Went Wrong Managing The Development of Large Software Systems - Dr Winston W. Royce (1970)
  33. 33. (C)opyright Dave Farley 2015 Waterfall - Precisely Where We Went Wrong Managing The Development of Large Software Systems - Dr Winston W. Royce (1970)
  34. 34. (C)opyright Dave Farley 2015 Waterfall - Precisely Where We Went Wrong Managing The Development of Large Software Systems - Dr Winston W. Royce (1970)
  35. 35. Learning From Our Mistakes
  36. 36. Learning From Our Mistakes “Insanity is doing the same thing over and over again and expecting different results.” Albert Einstein
  37. 37. What Do We Really Want? Customer Feedback Business Idea
  38. 38. What Do We Really Want? Customer Feedback Business Idea Quickly Cheaply Reliably
  39. 39. A Question….
  40. 40. A Question…. What is the most successful invention in human history?
  41. 41. A Question…. SCIENCE
  42. 42. 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!
  43. 43. What Works? 57% 14% 29% Challenged Successful Failed 49% 42% 9% Source: The CHAOS Manifesto, The Standish Group 2012 AgileWaterfall
  44. 44. 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
  45. 45. 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
  46. 46. Smart Automation - a repeatable, reliable process for releasing software Unit Test CodeIdea Executable spec. Build Release What Really Works?
  47. 47. Smart Automation - a repeatable, reliable process for releasing software Unit Test CodeIdea Executable spec. Build Release What Really Works?
  48. 48. 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?
  49. 49. Being Experimental - The Goal
  50. 50. 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)
  51. 51. Being Experimental - The Goal
  52. 52. Being Experimental - The Challenge
  53. 53. Being Experimental - The Challenge
  54. 54. (C)opyright Dave Farley 2015 Being Experimental - Purpose
  55. 55. (C)opyright Dave Farley 2015 Being Experimental - Purpose
  56. 56. (C)opyright Dave Farley 2015 Being Experimental - Purpose
  57. 57. (C)opyright Dave Farley 2015 Being Experimental - Small Steps (C)opyright Dave Farley 2015
  58. 58. (C)opyright Dave Farley 2015 Being Experimental - Small Steps (C)opyright Dave Farley 2015
  59. 59. (C)opyright Dave Farley 2015 Being Experimental - Giant Leaps
  60. 60. (C)opyright Dave Farley 2015 Being Experimental - Giant Leaps
  61. 61. (C)opyright Dave Farley 2015 Being Experimental - The Reality Inspired By: Russ Olsen’s Presentation “The Moon” at QCon London 2015
  62. 62. (C)opyright Dave Farley 2015 Being Experimental - The Reality The Ranger Programme Inspired By: Russ Olsen’s Presentation “The Moon” at QCon London 2015
  63. 63. (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
  64. 64. (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
  65. 65. (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
  66. 66. (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
  67. 67. (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
  68. 68. (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
  69. 69. (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
  70. 70. (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
  71. 71. (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
  72. 72. (C)opyright Dave Farley 2015 Being Experimental - Works!
  73. 73. (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
  74. 74. (C)opyright Dave Farley 2015 Being Experimental - Works! Source: Tom Wujec (http://marshmallowchallenge.com)
  75. 75. (C)opyright Dave Farley 2015 Being Experimental - Works! Source: Tom Wujec (http://marshmallowchallenge.com)
  76. 76. (C)opyright Dave Farley 2015 Being Experimental - Works! Source: Tom Wujec (http://marshmallowchallenge.com)
  77. 77. (C)opyright Dave Farley 2015 Being Experimental
  78. 78. (C)opyright Dave Farley 2015 Being Experimental
  79. 79. (C)opyright Dave Farley 2015 Being Experimental
  80. 80. (C)opyright Dave Farley 2015 Being Experimental
  81. 81. (C)opyright Dave Farley 2015 Being Experimental - Fast & Slow Thinking
  82. 82. (C)opyright Dave Farley 2015 Being Experimental - Fast & Slow Thinking 2 + 2
  83. 83. (C)opyright Dave Farley 2015 Being Experimental - Fast & Slow Thinking 2 + 2 17 x 24
  84. 84. (C)opyright Dave Farley 2015 Being Experimental - Fast & Slow Thinking
  85. 85. (C)opyright Dave Farley 2015 Being Experimental - Fast & Slow Thinking
  86. 86. (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
  87. 87. (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
  88. 88. (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
  89. 89. (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
  90. 90. Cycle-Time 103 days Typical Traditional Cycle Time 10 days 64 days
  91. 91. 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 Time 10 days 64 days
  92. 92. 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!
  93. 93. The Principles of Continuous Delivery Create 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.
  94. 94. The Principles of Continuous Delivery Create 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
  95. 95. Example Continuous Delivery Process Local Dev. Env. Source Repository
  96. 96. Example Continuous Delivery Process Local Dev. Env. Source Repository
  97. 97. Example Continuous Delivery Process Local Dev. Env. Commit Source Repository
  98. 98. Example Continuous Delivery Process Local Dev. Env. Commit Source Repository
  99. 99. Example Continuous Delivery Process Artifact Repository Local Dev. Env. Commit Source Repository
  100. 100. Example Continuous Delivery Process Artifact Repository Local Dev. Env. Commit Commit Source Repository
  101. 101. Example Continuous Delivery Process Artifact Repository Local Dev. Env. Acceptance Commit Commit Source Repository
  102. 102. Example Continuous Delivery Process Artifact Repository Local Dev. Env. Acceptance Commit Commit Source Repository
  103. 103. Example Continuous Delivery Process Artifact Repository Local Dev. Env. Acceptance Commit Commit Acceptance Source Repository
  104. 104. Example Continuous Delivery Process Artifact Repository Local Dev. Env. Acceptance Commit Commit Acceptance Source Repository Manual Test Env. Deployment App.
  105. 105. Example Continuous Delivery Process Artifact Repository Local Dev. Env. Acceptance Commit Commit Acceptance Source Repository Manual Test Env. Deployment App.
  106. 106. Example Continuous Delivery Process Artifact Repository Local Dev. Env. Acceptance Commit Commit Acceptance Manual Source Repository Manual Test Env. Deployment App.
  107. 107. Example Continuous Delivery Process Artifact Repository Local Dev. Env. Acceptance Commit Component Performance Commit Acceptance Manual Source Repository Manual Test Env. Deployment App.
  108. 108. Example Continuous Delivery Process Artifact Repository Local Dev. Env. Acceptance Commit Component Performance Commit Acceptance Manual Source Repository Manual Test Env. Deployment App.
  109. 109. Example Continuous Delivery Process Artifact Repository Local Dev. Env. Acceptance Commit Component Performance Commit Acceptance Manual Perf1 Source Repository Manual Test Env. Deployment App.
  110. 110. Example Continuous Delivery Process Artifact Repository Local Dev. Env. Acceptance Commit Component Performance System Performance Commit Acceptance Manual Perf1 Source Repository Manual Test Env. Deployment App.
  111. 111. Example Continuous Delivery Process Artifact Repository Local Dev. Env. Acceptance Commit Component Performance System Performance Commit Acceptance Manual Perf1 Source Repository Manual Test Env. Deployment App.
  112. 112. Example Continuous Delivery Process Artifact Repository Local Dev. Env. Acceptance Commit Component Performance System Performance Commit Acceptance Manual Perf1 Perf2 Source Repository Manual Test Env. Deployment App.
  113. 113. Example Continuous Delivery Process Artifact Repository Local Dev. Env. Acceptance Commit Component Performance System Performance Commit Acceptance Manual Perf1 Perf2 Source Repository Manual Test Env. Deployment App. Data Migration
  114. 114. Example Continuous Delivery Process Artifact Repository Local Dev. Env. Acceptance Commit Component Performance System Performance Commit Acceptance Manual Perf1 Perf2 Source Repository Manual Test Env. Deployment App. Data Migration
  115. 115. Example Continuous Delivery Process Artifact Repository Local Dev. Env. Acceptance Commit Component Performance System Performance Commit Acceptance Manual Perf1 Perf2 Staged Source Repository Manual Test Env. Deployment App. Data Migration
  116. 116. Example Continuous Delivery Process Artifact Repository Local Dev. Env. Acceptance Commit Component Performance System Performance Production Env. Deployment App. Commit Acceptance Manual Perf1 Perf2 Staged Source Repository Manual Test Env. Deployment App. Data Migration
  117. 117. Example Continuous Delivery Process Artifact Repository Local Dev. Env. Acceptance Commit Component Performance System Performance Production Env. Deployment App. Commit Acceptance Manual Perf1 Perf2 Staged Source Repository Manual Test Env. Deployment App. Data Migration
  118. 118. Example Continuous Delivery Process Artifact Repository Local Dev. Env. Acceptance Commit Component Performance System Performance Production Env. Deployment App. Commit Acceptance Manual Perf1 Perf2 Staged Production Source Repository Manual Test Env. Deployment App. Data Migration
  119. 119. Example Continuous Delivery Process Artifact Repository Local Dev. Env. Deployment Pipeline Acceptance Commit Component Performance System Performance Production Env. Deployment App. Commit Acceptance Manual Perf1 Perf2 Staged Production Source Repository Manual Test Env. Deployment App. Data Migration
  120. 120. “This may work for small projects but can’t possibly scale”
  121. 121. “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.
  122. 122. “This is too risky, releasing all the time is a recipe for disaster”
  123. 123. “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
  124. 124. “This may work for simple web sites but my technology is too complex”
  125. 125. “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
  126. 126. 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
  127. 127. 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
  128. 128. 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)
  129. 129. 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)
  130. 130. Who Practices CD?
  131. 131. Who Practices CD?
  132. 132. Who Practices CD?
  133. 133. Q&A http://www.continuous-delivery.co.uk Dave Farley http://www.davefarley.net @davefarley77

×