Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019

18 views

Published on

Would you fly in a plane designed by a craftsman or would you prefer your aircraft to be designed by engineers? We are learning that science and empiricism works in software development, maybe now is the time to redefine what “Software Engineering” really means. Software isn't bridge-building, it is not car or aircraft development either, but then neither is Chemical Engineering. Engineering is different in different disciplines. Maybe it is time for us to begin thinking about retrieving the term "Software Engineering" maybe it is time to define what our "Engineering" discipline should be.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019

  1. 1. Dave Farley http://www.davefarley.net @davefarley77 http://www.continuous-delivery.co.uk Taking Back ‘Software Engineering’ Craftsmanship is insufficient
  2. 2. (C)opyright Dave Farley 2017
  3. 3. (C)opyright Dave Farley 2017
  4. 4. (C)opyright Dave Farley 2017
  5. 5. (C)opyright Dave Farley 2017
  6. 6. (C)opyright Dave Farley 2017
  7. 7. (C)opyright Dave Farley 2017
  8. 8. (C)opyright Dave Farley 2017 Where is the Software Industry? • Craft
 
 • Mass Production
 
 • Lean Production Techniques
  9. 9. (C)opyright Dave Farley 2017 Where is the Software Industry? • Craft
 
 • Mass Production
 
 • Lean Production Techniques
  10. 10. (C)opyright Dave Farley 2017 Where is the Software Industry? • Craft
 
 • Mass Production
 
 • Lean Production Techniques We are here!
  11. 11. (C)opyright Dave Farley 2017 Where is the Software Industry? • Craft
 
 • Mass Production
 
 • Lean Production Techniques We are here! We should be here!
  12. 12. The Impact of “Engineering” in Software Source: “ Lianping Chen Paddy Power (http://www.sciencedirect.com/science/article/pii/S0164121217300353)
  13. 13. The Impact of “Engineering” in Software 90% lower defect rate Source: “ Lianping Chen Paddy Power (http://www.sciencedirect.com/science/article/pii/S0164121217300353)
  14. 14. The Impact of “Engineering” in Software Source: “2014 State of DevOps report”, Jez Humble, Gene Kim, Nicole Forsgren Velasquez, Puppet Labs (2014)
  15. 15. The Impact of “Engineering” in Software Source: “2014 State of DevOps report”, Jez Humble, Gene Kim, Nicole Forsgren Velasquez, Puppet Labs (2014) 8000x faster deployment lead times
  16. 16. The Impact of “Engineering” in Software Source: “2017 State of DevOps report”, Jez Humble, Gene Kim, Nicole Forsgren Velasquez, Puppet Labs (2014)
  17. 17. The Impact of “Engineering” in Software Source: “2017 State of DevOps report”, Jez Humble, Gene Kim, Nicole Forsgren Velasquez, Puppet Labs (2014) 21% Less time spent on unplanned work and rework
  18. 18. The Impact of “Engineering” in Software Source: “2017 State of DevOps report”, Jez Humble, Gene Kim, Nicole Forsgren Velasquez, Puppet Labs (2014)
  19. 19. The Impact of “Engineering” in Software Source: “2017 State of DevOps report”, Jez Humble, Gene Kim, Nicole Forsgren Velasquez, Puppet Labs (2014) 44% More time on new work
  20. 20. The Impact of “Engineering” in Software Source: “2017 State of DevOps report”, Jez Humble, Gene Kim, Nicole Forsgren Velasquez, Puppet Labs (2014)
  21. 21. The Impact of “Engineering” in Software Source: “2017 State of DevOps report”, Jez Humble, Gene Kim, Nicole Forsgren Velasquez, Puppet Labs (2014) 50% lower change-failure rates
  22. 22. The Impact of “Engineering” in Software Source: “2017 State of DevOps report”, Jez Humble, Gene Kim, Nicole Forsgren Velasquez, Puppet Labs (2014)
  23. 23. The Impact of “Engineering” in Software Source: “2017 State of DevOps report”, Jez Humble, Gene Kim, Nicole Forsgren Velasquez, Puppet Labs (2014) 50% Less time spent fixing security issues
  24. 24. The Impact of “Engineering” in Software Source: “2014 State of DevOps report”, Jez Humble, Gene Kim, Nicole Forsgren Velasquez, Puppet Labs (2014)
  25. 25. The Impact of “Engineering” in Software Source: “2014 State of DevOps report”, Jez Humble, Gene Kim, Nicole Forsgren Velasquez, Puppet Labs (2014) 50% Higher Market cap growth over 3 years
  26. 26. (C)opyright Dave Farley 2017 All Engineering is not the same!
  27. 27. (C)opyright Dave Farley 2017 All Engineering is not the same!
  28. 28. (C)opyright Dave Farley 2017 All Engineering is not the same!
  29. 29. (C)opyright Dave Farley 2017 All Engineering is not the same!
  30. 30. (C)opyright Dave Farley 2017 All Engineering is not the same!
  31. 31. (C)opyright Dave Farley 2017 All Engineering is not the same!
  32. 32. (C)opyright Dave Farley 2017 What is ‘Engineering’?
  33. 33. (C)opyright Dave Farley 2017 What is ‘Engineering’?
  34. 34. (C)opyright Dave Farley 2017 What is ‘Engineering’?
  35. 35. (C)opyright Dave Farley 2017 What is ‘Engineering’? Engineering is the application of an empirical, scientific approach to finding efficient solutions to practical problems.
 
 (Dave Farley - Just Now!)
  36. 36. (C)opyright Dave Farley 2017 Fundamentals of an ‘Engineering’ Approach • Iterative • Employs Feedback • Incremental • Experimental • Empirical
  37. 37. (C)opyright Dave Farley 2017 Iterative Iterative From Wikipedia, the free encyclopaedia Iteration is the act of repeating a process, either to generate an unbounded sequence of outcomes, or with the aim of approaching a desired goal, target or result.”
  38. 38. (C)opyright Dave Farley 2017 Being Iterative Matters Means we can learn, react and adapt
  39. 39. (C)opyright Dave Farley 2017 Being Iterative Matters Means we can learn, react and adapt
  40. 40. (C)opyright Dave Farley 2017 Being Iterative Matters Means we can learn, react and adapt
  41. 41. (C)opyright Dave Farley 2017 Being Iterative Matters Means we can learn, react and adapt
  42. 42. (C)opyright Dave Farley 2017 Being Iterative Matters Allows us to steer towards a goal
  43. 43. (C)opyright Dave Farley 2017 Being Iterative Matters Allows us to steer towards a goal
  44. 44. (C)opyright Dave Farley 2017 Being Iterative Matters Fundamental to a process of “Continual Improvement”
  45. 45. (C)opyright Dave Farley 2017 Being Iterative Matters Fundamental to a process of “Continual Improvement”
  46. 46. (C)opyright Dave Farley 2017 Being Iterative Matters Allowing us to refine our processes and get better at what we do through practice and repetition
  47. 47. (C)opyright Dave Farley 2017 Being Iterative Matters Allowing us to refine our processes and get better at what we do through practice and repetition
  48. 48. (C)opyright Dave Farley 2017 Feedback Feedback From Wikipedia, the free encyclopaedia Feedback is information about actions, returned to the source of the actions.
  49. 49. (C)opyright Dave Farley 2017 Feedback Matters Means we can observe the impact of our choices
  50. 50. (C)opyright Dave Farley 2017 Feedback Matters Means we can observe the impact of our choices
  51. 51. Unit Test CodeIdea Executable spec. Build Release Feedback!!!
  52. 52. (C)opyright Dave Farley 2017 Incremental Incremental From Wikipedia, the free encyclopaedia Evolutionary design, Continuous design, Evolutive design, or "Incremental design" is directly related to any modular design application, in which components can be freely substituted if someone improved can ensure better performance.
  53. 53. (C)opyright Dave Farley 2017 Incrementalism - Modular Systems
  54. 54. (C)opyright Dave Farley 2017 Incrementalism - Modular Systems
  55. 55. (C)opyright Dave Farley 2017 Incrementalism - Modular Systems Earth to Earth orbit
  56. 56. (C)opyright Dave Farley 2017 Incrementalism - Modular Systems
  57. 57. (C)opyright Dave Farley 2017 Incrementalism - Modular Systems EarthOrbit to Earth
  58. 58. (C)opyright Dave Farley 2017 Incrementalism - Modular Systems Earthto M oon, M oontoEarth EarthOrbit to Earth
  59. 59. (C)opyright Dave Farley 2017 Incrementalism - Modular Systems
  60. 60. (C)opyright Dave Farley 2017 Incrementalism - Modular Systems Moon toMoon Orbit
  61. 61. (C)opyright Dave Farley 2017 Incrementalism - Modular Systems Moon Orbit to Moon Moon toMoon Orbit
  62. 62. (C)opyright Dave Farley 2017 Iterative vs Incremental Source: Jeff Patton
  63. 63. (C)opyright Dave Farley 2017 Iterative vs Incremental Source: Jeff Patton Iterative
  64. 64. (C)opyright Dave Farley 2017 Iterative vs Incremental Source: Jeff Patton Iterative Incremental
  65. 65. (C)opyright Dave Farley 2017 Experimental Experimental From Wikipedia, the free encyclopaedia An experiment is a procedure carried out to support, refute, or validate a hypothesis. Experiments provide insight into cause- and-effect by demonstrating what outcome occurs when a particular factor is manipulated.
  66. 66. (C)opyright Dave Farley 2017 Being Experimental - The Goal
  67. 67. (C)opyright Dave Farley 2017 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)
  68. 68. (C)opyright Dave Farley 2017 Being Experimental - The Goal
  69. 69. (C)opyright Dave Farley 2017 Being Experimental - The Challenge
  70. 70. (C)opyright Dave Farley 2017 Being Experimental - The Challenge
  71. 71. (C)opyright Dave Farley 2017 The First “Software Engineer”
  72. 72. (C)opyright Dave Farley 2017 Being Experimental - Small Steps
  73. 73. (C)opyright Dave Farley 2017 Being Experimental - Small Steps
  74. 74. (C)opyright Dave Farley 2017 Being Experimental - Giant Leaps
  75. 75. (C)opyright Dave Farley 2017 Being Experimental - Giant Leaps
  76. 76. (C)opyright Dave Farley 2017 Being Experimental
  77. 77. (C)opyright Dave Farley 2017 Being Experimental The Ranger Programme
  78. 78. (C)opyright Dave Farley 2017 Being Experimental The Ranger Programme ‣ Ranger 1 - Launch Failure
  79. 79. (C)opyright Dave Farley 2017 Being Experimental The Ranger Programme ‣ Ranger 1 - Launch Failure ‣ Ranger 2 - Launch Failure
  80. 80. (C)opyright Dave Farley 2017 Being Experimental The Ranger Programme ‣ Ranger 1 - Launch Failure ‣ Ranger 2 - Launch Failure ‣ Ranger 3 - Missed!
  81. 81. (C)opyright Dave Farley 2017 Being Experimental The Ranger Programme ‣ Ranger 1 - Launch Failure ‣ Ranger 2 - Launch Failure ‣ Ranger 3 - Missed! ‣ Ranger 4 - Impact, systems failed
  82. 82. (C)opyright Dave Farley 2017 Being Experimental The Ranger Programme ‣ Ranger 1 - Launch Failure ‣ Ranger 2 - Launch Failure ‣ Ranger 3 - Missed! ‣ Ranger 4 - Impact, systems failed ‣ Ranger 5 - Missed!
  83. 83. (C)opyright Dave Farley 2017 Being Experimental 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
  84. 84. (C)opyright Dave Farley 2017 Being Experimental 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!
  85. 85. (C)opyright Dave Farley 2017 Being Experimental 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!
  86. 86. (C)opyright Dave Farley 2017 Being Experimental 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!
  87. 87. (C)opyright Dave Farley 2017 Being Experimental
  88. 88. (C)opyright Dave Farley 2017 Being Experimental
  89. 89. (C)opyright Dave Farley 2017 Being Experimental
  90. 90. (C)opyright Dave Farley 2017 Being Experimental
  91. 91. (C)opyright Dave Farley 2017 Empirical Empirical From Oxford Dictionaries Based on, concerned with, or verifiable by observation or experience rather than theory or pure logic.
  92. 92. (C)opyright Dave Farley 2017 Empirical Empirical From Oxford Dictionaries Based on, concerned with, or verifiable by observation or experience rather than theory or pure logic.
  93. 93. (C)opyright Dave Farley 2017 Empirical Empirical From Oxford Dictionaries Based on, concerned with, or verifiable by observation or experience rather than theory or pure logic.
  94. 94. (C)opyright Dave Farley 2017 Being Empirical Matters Means we can be evidence based and data driven
  95. 95. (C)opyright Dave Farley 2017 Being Empirical Matters Means we can be evidence based and data driven Stand Back! We are going to try SCIENCE!!!
  96. 96. (C)opyright Dave Farley 2017 Being Empirical Matters Stand Back! We are going to try SCIENCE!!!
  97. 97. (C)opyright Dave Farley 2017 Being Empirical Matters • We can never be certain of success Stand Back! We are going to try SCIENCE!!!
  98. 98. (C)opyright Dave Farley 2017 Being Empirical Matters • We can never be certain of success • Progress only comes when we risk failure Stand Back! We are going to try SCIENCE!!!
  99. 99. (C)opyright Dave Farley 2017 Being Empirical Matters • We can never be certain of success • Progress only comes when we risk failure • We learn most when reality does NOT match our predictions Stand Back! We are going to try SCIENCE!!!
  100. 100. (C)opyright Dave Farley 2017 Being Empirical Matters • We can never be certain of success • Progress only comes when we risk failure • We learn most when reality does NOT match our predictions • Production will ALWAYS surprise us Stand Back! We are going to try SCIENCE!!!
  101. 101. (C)opyright Dave Farley 2017 Being Empirical Matters • We can never be certain of success • Progress only comes when we risk failure • We learn most when reality does NOT match our predictions • Production will ALWAYS surprise us • …and it should! Stand Back! We are going to try SCIENCE!!!
  102. 102. (C)opyright Dave Farley 2017 Being Empirical Matters • We can never be certain of success • Progress only comes when we risk failure • We learn most when reality does NOT match our predictions • Production will ALWAYS surprise us • …and it should! • All of our design choices, all of our coding efforts all of our tests are only… Stand Back! We are going to try SCIENCE!!!
  103. 103. (C)opyright Dave Farley 2017 Being Empirical Matters • We can never be certain of success • Progress only comes when we risk failure • We learn most when reality does NOT match our predictions • Production will ALWAYS surprise us • …and it should! • All of our design choices, all of our coding efforts all of our tests are only… Stand Back! We are going to try SCIENCE!!! “Our best theory to explain things so far”
  104. 104. (C)opyright Dave Farley 2017 • Short Feedback Cycles • Test Driven Development • Automation • Hypothesis Driven • Tests as a Falsification Mechanism Continuous Delivery as an Engineering Discipline
  105. 105. (C)opyright Dave Farley 2017 • Short Feedback Cycles • Test Driven Development • Automation • Hypothesis Driven • Tests as a Falsification Mechanism Continuous Delivery as an Engineering Discipline Unit Test CodeIdea Executable spec. Build Release
  106. 106. (C)opyright Dave Farley 2017 Theory Observation Experiment Prediction
  107. 107. (C)opyright Dave Farley 2017
  108. 108. (C)opyright Dave Farley 2017 Don’t be “like” Engineers
  109. 109. (C)opyright Dave Farley 2017 Be Engineers!
  110. 110. Q&A http://www.continuous-delivery.co.uk Dave Farley http://www.davefarley.net @davefarley77

×