SlideShare a Scribd company logo
Dave Farley
http://www.davefarley.net
@davefarley77
http://www.continuous-delivery.co.uk
Taking Back
‘Software Engineering’
Craftsmanship is insufficient
(C)opyright Dave Farley 2017
(C)opyright Dave Farley 2017
(C)opyright Dave Farley 2017
(C)opyright Dave Farley 2017
(C)opyright Dave Farley 2017
(C)opyright Dave Farley 2017
(C)opyright Dave Farley 2017
Where is the Software Industry?
• Craft



• Mass Production



• Lean Production Techniques
(C)opyright Dave Farley 2017
Where is the Software Industry?
• Craft



• Mass Production



• Lean Production Techniques
(C)opyright Dave Farley 2017
Where is the Software Industry?
• Craft



• Mass Production



• Lean Production Techniques
We are here!
(C)opyright Dave Farley 2017
Where is the Software Industry?
• Craft



• Mass Production



• Lean Production Techniques
We are here!
We should be here!
The Impact of “Engineering” in Software
Source: “ Lianping Chen Paddy Power (http://www.sciencedirect.com/science/article/pii/S0164121217300353)
The Impact of “Engineering” in Software
90% lower
defect rate
Source: “ Lianping Chen Paddy Power (http://www.sciencedirect.com/science/article/pii/S0164121217300353)
The Impact of “Engineering” in Software
Source: “2014 State of DevOps report”, Jez Humble, Gene Kim, Nicole Forsgren Velasquez, Puppet Labs (2014)
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
The Impact of “Engineering” in Software
Source: “2017 State of DevOps report”, Jez Humble, Gene Kim, Nicole Forsgren Velasquez, Puppet Labs (2014)
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
The Impact of “Engineering” in Software
Source: “2017 State of DevOps report”, Jez Humble, Gene Kim, Nicole Forsgren Velasquez, Puppet Labs (2014)
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
The Impact of “Engineering” in Software
Source: “2017 State of DevOps report”, Jez Humble, Gene Kim, Nicole Forsgren Velasquez, Puppet Labs (2014)
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
The Impact of “Engineering” in Software
Source: “2017 State of DevOps report”, Jez Humble, Gene Kim, Nicole Forsgren Velasquez, Puppet Labs (2014)
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
The Impact of “Engineering” in Software
Source: “2014 State of DevOps report”, Jez Humble, Gene Kim, Nicole Forsgren Velasquez, Puppet Labs (2014)
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
(C)opyright Dave Farley 2017
All Engineering is not the same!
(C)opyright Dave Farley 2017
All Engineering is not the same!
(C)opyright Dave Farley 2017
All Engineering is not the same!
(C)opyright Dave Farley 2017
All Engineering is not the same!
(C)opyright Dave Farley 2017
All Engineering is not the same!
(C)opyright Dave Farley 2017
All Engineering is not the same!
(C)opyright Dave Farley 2017
What is ‘Engineering’?
(C)opyright Dave Farley 2017
What is ‘Engineering’?
(C)opyright Dave Farley 2017
What is ‘Engineering’?
(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!)
(C)opyright Dave Farley 2017
Fundamentals of an ‘Engineering’ Approach
• Iterative
• Employs Feedback
• Incremental
• Experimental
• Empirical
(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.”
(C)opyright Dave Farley 2017
Being Iterative Matters
Means we can learn, react and adapt
(C)opyright Dave Farley 2017
Being Iterative Matters
Means we can learn, react and adapt
(C)opyright Dave Farley 2017
Being Iterative Matters
Means we can learn, react and adapt
(C)opyright Dave Farley 2017
Being Iterative Matters
Means we can learn, react and adapt
(C)opyright Dave Farley 2017
Being Iterative Matters
Allows us to steer towards a goal
(C)opyright Dave Farley 2017
Being Iterative Matters
Allows us to steer towards a goal
(C)opyright Dave Farley 2017
Being Iterative Matters
Fundamental to a process of “Continual Improvement”
(C)opyright Dave Farley 2017
Being Iterative Matters
Fundamental to a process of “Continual Improvement”
(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
(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
(C)opyright Dave Farley 2017
Feedback
Feedback
From Wikipedia, the free encyclopaedia
Feedback is information about actions, returned to the source of
the actions.
(C)opyright Dave Farley 2017
Feedback Matters
Means we can observe the impact of our choices
(C)opyright Dave Farley 2017
Feedback Matters
Means we can observe the impact of our choices
Unit Test CodeIdea
Executable
spec.
Build Release
Feedback!!!
(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.
(C)opyright Dave Farley 2017
Incrementalism - Modular Systems
(C)opyright Dave Farley 2017
Incrementalism - Modular Systems
(C)opyright Dave Farley 2017
Incrementalism - Modular Systems
Earth to
Earth orbit
(C)opyright Dave Farley 2017
Incrementalism - Modular Systems
(C)opyright Dave Farley 2017
Incrementalism - Modular Systems
EarthOrbit
to
Earth
(C)opyright Dave Farley 2017
Incrementalism - Modular Systems
Earthto
M
oon,
M
oontoEarth
EarthOrbit
to
Earth
(C)opyright Dave Farley 2017
Incrementalism - Modular Systems
(C)opyright Dave Farley 2017
Incrementalism - Modular Systems
Moon
toMoon Orbit
(C)opyright Dave Farley 2017
Incrementalism - Modular Systems
Moon Orbit
to
Moon
Moon
toMoon Orbit
(C)opyright Dave Farley 2017
Iterative vs Incremental
Source: Jeff Patton
(C)opyright Dave Farley 2017
Iterative vs Incremental
Source: Jeff Patton
Iterative
(C)opyright Dave Farley 2017
Iterative vs Incremental
Source: Jeff Patton
Iterative
Incremental
(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.
(C)opyright Dave Farley 2017
Being Experimental - The Goal
(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)
(C)opyright Dave Farley 2017
Being Experimental - The Goal
(C)opyright Dave Farley 2017
Being Experimental - The Challenge
(C)opyright Dave Farley 2017
Being Experimental - The Challenge
(C)opyright Dave Farley 2017
The First “Software Engineer”
(C)opyright Dave Farley 2017
Being Experimental - Small Steps
(C)opyright Dave Farley 2017
Being Experimental - Small Steps
(C)opyright Dave Farley 2017
Being Experimental - Giant Leaps
(C)opyright Dave Farley 2017
Being Experimental - Giant Leaps
(C)opyright Dave Farley 2017
Being Experimental
(C)opyright Dave Farley 2017
Being Experimental
The Ranger Programme
(C)opyright Dave Farley 2017
Being Experimental
The Ranger Programme
‣ Ranger 1 - Launch Failure
(C)opyright Dave Farley 2017
Being Experimental
The Ranger Programme
‣ Ranger 1 - Launch Failure
‣ Ranger 2 - Launch Failure
(C)opyright Dave Farley 2017
Being Experimental
The Ranger Programme
‣ Ranger 1 - Launch Failure
‣ Ranger 2 - Launch Failure
‣ Ranger 3 - Missed!
(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
(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!
(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
(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!
(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!
(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!
(C)opyright Dave Farley 2017
Being Experimental
(C)opyright Dave Farley 2017
Being Experimental
(C)opyright Dave Farley 2017
Being Experimental
(C)opyright Dave Farley 2017
Being Experimental
(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.
(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.
(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.
(C)opyright Dave Farley 2017
Being Empirical Matters
Means we can be evidence based and data driven
(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!!!
(C)opyright Dave Farley 2017
Being Empirical Matters
Stand Back!
We are going to try
SCIENCE!!!
(C)opyright Dave Farley 2017
Being Empirical Matters
• We can never be certain of success
Stand Back!
We are going to try
SCIENCE!!!
(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!!!
(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!!!
(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!!!
(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!!!
(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!!!
(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”
(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
(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
(C)opyright Dave Farley 2017
Theory
Observation
Experiment
Prediction
(C)opyright Dave Farley 2017
(C)opyright Dave Farley 2017
Don’t be “like” Engineers
(C)opyright Dave Farley 2017
Be Engineers!
Q&A
http://www.continuous-delivery.co.uk
Dave Farley
http://www.davefarley.net
@davefarley77

More Related Content

Similar to Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019 (20)

PPTX
How to think smarter about software development
Nilanjan Bhattacharya
 
PDF
Continuous Improvement (GroupOn, Palo Alto 2013)
Noah Sussman
 
PDF
The Validation Attitude
DVClub
 
PDF
Empirical Methods in Software Engineering - an Overview
alessio_ferrari
 
PDF
The Rationale for Continuous Delivery
Perforce
 
PPTX
Creating an agile, adaptive, and forward thinking company
Paul Boocock
 
PDF
Ground rules
Lior Sion
 
PDF
Why Is Managing Software So Hard?
Michael Lamont
 
PPTX
Dealing with Software by being softaware
softaware
 
PDF
Google's Innovation Factory (ICST 2010)
Go Ku
 
PDF
Congress on Evolutionary Computation (CEC 2016) - Plenary Talk
Graham Kendall
 
PDF
The Edison In You: Simple Steps to Becoming a Great Engineer
arvindpdmn
 
PDF
Philosophies of Building the Workplace
Zsolt Fabok
 
PDF
Design Thinking for Developers
Matthew Banz
 
PDF
Neil.dennehy
NASAPMC
 
PDF
Neil.dennehy
NASAPMC
 
PPTX
Fostering creativity and inovation workshop
rekharajaseran
 
PDF
Why I Am a Software Engineer
Craig Saunders
 
PDF
Colwell validation attitude
Obsidian Software
 
PDF
Unlocking the Power of Iteration
Clement Ho
 
How to think smarter about software development
Nilanjan Bhattacharya
 
Continuous Improvement (GroupOn, Palo Alto 2013)
Noah Sussman
 
The Validation Attitude
DVClub
 
Empirical Methods in Software Engineering - an Overview
alessio_ferrari
 
The Rationale for Continuous Delivery
Perforce
 
Creating an agile, adaptive, and forward thinking company
Paul Boocock
 
Ground rules
Lior Sion
 
Why Is Managing Software So Hard?
Michael Lamont
 
Dealing with Software by being softaware
softaware
 
Google's Innovation Factory (ICST 2010)
Go Ku
 
Congress on Evolutionary Computation (CEC 2016) - Plenary Talk
Graham Kendall
 
The Edison In You: Simple Steps to Becoming a Great Engineer
arvindpdmn
 
Philosophies of Building the Workplace
Zsolt Fabok
 
Design Thinking for Developers
Matthew Banz
 
Neil.dennehy
NASAPMC
 
Neil.dennehy
NASAPMC
 
Fostering creativity and inovation workshop
rekharajaseran
 
Why I Am a Software Engineer
Craig Saunders
 
Colwell validation attitude
Obsidian Software
 
Unlocking the Power of Iteration
Clement Ho
 

More from Codemotion (20)

PDF
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Codemotion
 
PDF
Pompili - From hero to_zero: The FatalNoise neverending story
Codemotion
 
PPTX
Pastore - Commodore 65 - La storia
Codemotion
 
PPTX
Pennisi - Essere Richard Altwasser
Codemotion
 
PPTX
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Codemotion
 
PPTX
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Codemotion
 
PPTX
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Codemotion
 
PPTX
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Codemotion
 
PDF
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Codemotion
 
PDF
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Codemotion
 
PDF
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Codemotion
 
PDF
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Codemotion
 
PDF
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Codemotion
 
PDF
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Codemotion
 
PPTX
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Codemotion
 
PPTX
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
Codemotion
 
PDF
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Codemotion
 
PDF
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Codemotion
 
PDF
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Codemotion
 
PDF
Mike Kotsur - What can philosophy teach us about programming - Codemotion Ams...
Codemotion
 
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Codemotion
 
Pompili - From hero to_zero: The FatalNoise neverending story
Codemotion
 
Pastore - Commodore 65 - La storia
Codemotion
 
Pennisi - Essere Richard Altwasser
Codemotion
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Codemotion
 
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Codemotion
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Codemotion
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Codemotion
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Codemotion
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Codemotion
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Codemotion
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Codemotion
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Codemotion
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Codemotion
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Codemotion
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
Codemotion
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Codemotion
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Codemotion
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Codemotion
 
Mike Kotsur - What can philosophy teach us about programming - Codemotion Ams...
Codemotion
 
Ad

Recently uploaded (20)

PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PPTX
Q2 Leading a Tableau User Group - Onboarding
lward7
 
PPTX
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
July Patch Tuesday
Ivanti
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
Q2 Leading a Tableau User Group - Onboarding
lward7
 
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
July Patch Tuesday
Ivanti
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
Ad

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

  • 8. (C)opyright Dave Farley 2017 Where is the Software Industry? • Craft
 
 • Mass Production
 
 • Lean Production Techniques
  • 9. (C)opyright Dave Farley 2017 Where is the Software Industry? • Craft
 
 • Mass Production
 
 • Lean Production Techniques
  • 10. (C)opyright Dave Farley 2017 Where is the Software Industry? • Craft
 
 • Mass Production
 
 • Lean Production Techniques We are here!
  • 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. The Impact of “Engineering” in Software Source: “ Lianping Chen Paddy Power (http://www.sciencedirect.com/science/article/pii/S0164121217300353)
  • 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. The Impact of “Engineering” in Software Source: “2014 State of DevOps report”, Jez Humble, Gene Kim, Nicole Forsgren Velasquez, Puppet Labs (2014)
  • 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. The Impact of “Engineering” in Software Source: “2017 State of DevOps report”, Jez Humble, Gene Kim, Nicole Forsgren Velasquez, Puppet Labs (2014)
  • 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. The Impact of “Engineering” in Software Source: “2017 State of DevOps report”, Jez Humble, Gene Kim, Nicole Forsgren Velasquez, Puppet Labs (2014)
  • 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. The Impact of “Engineering” in Software Source: “2017 State of DevOps report”, Jez Humble, Gene Kim, Nicole Forsgren Velasquez, Puppet Labs (2014)
  • 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. The Impact of “Engineering” in Software Source: “2017 State of DevOps report”, Jez Humble, Gene Kim, Nicole Forsgren Velasquez, Puppet Labs (2014)
  • 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. The Impact of “Engineering” in Software Source: “2014 State of DevOps report”, Jez Humble, Gene Kim, Nicole Forsgren Velasquez, Puppet Labs (2014)
  • 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. (C)opyright Dave Farley 2017 All Engineering is not the same!
  • 27. (C)opyright Dave Farley 2017 All Engineering is not the same!
  • 28. (C)opyright Dave Farley 2017 All Engineering is not the same!
  • 29. (C)opyright Dave Farley 2017 All Engineering is not the same!
  • 30. (C)opyright Dave Farley 2017 All Engineering is not the same!
  • 31. (C)opyright Dave Farley 2017 All Engineering is not the same!
  • 32. (C)opyright Dave Farley 2017 What is ‘Engineering’?
  • 33. (C)opyright Dave Farley 2017 What is ‘Engineering’?
  • 34. (C)opyright Dave Farley 2017 What is ‘Engineering’?
  • 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. (C)opyright Dave Farley 2017 Fundamentals of an ‘Engineering’ Approach • Iterative • Employs Feedback • Incremental • Experimental • Empirical
  • 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. (C)opyright Dave Farley 2017 Being Iterative Matters Means we can learn, react and adapt
  • 39. (C)opyright Dave Farley 2017 Being Iterative Matters Means we can learn, react and adapt
  • 40. (C)opyright Dave Farley 2017 Being Iterative Matters Means we can learn, react and adapt
  • 41. (C)opyright Dave Farley 2017 Being Iterative Matters Means we can learn, react and adapt
  • 42. (C)opyright Dave Farley 2017 Being Iterative Matters Allows us to steer towards a goal
  • 43. (C)opyright Dave Farley 2017 Being Iterative Matters Allows us to steer towards a goal
  • 44. (C)opyright Dave Farley 2017 Being Iterative Matters Fundamental to a process of “Continual Improvement”
  • 45. (C)opyright Dave Farley 2017 Being Iterative Matters Fundamental to a process of “Continual Improvement”
  • 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. (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. (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. (C)opyright Dave Farley 2017 Feedback Matters Means we can observe the impact of our choices
  • 50. (C)opyright Dave Farley 2017 Feedback Matters Means we can observe the impact of our choices
  • 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. (C)opyright Dave Farley 2017 Incrementalism - Modular Systems
  • 54. (C)opyright Dave Farley 2017 Incrementalism - Modular Systems
  • 55. (C)opyright Dave Farley 2017 Incrementalism - Modular Systems Earth to Earth orbit
  • 56. (C)opyright Dave Farley 2017 Incrementalism - Modular Systems
  • 57. (C)opyright Dave Farley 2017 Incrementalism - Modular Systems EarthOrbit to Earth
  • 58. (C)opyright Dave Farley 2017 Incrementalism - Modular Systems Earthto M oon, M oontoEarth EarthOrbit to Earth
  • 59. (C)opyright Dave Farley 2017 Incrementalism - Modular Systems
  • 60. (C)opyright Dave Farley 2017 Incrementalism - Modular Systems Moon toMoon Orbit
  • 61. (C)opyright Dave Farley 2017 Incrementalism - Modular Systems Moon Orbit to Moon Moon toMoon Orbit
  • 62. (C)opyright Dave Farley 2017 Iterative vs Incremental Source: Jeff Patton
  • 63. (C)opyright Dave Farley 2017 Iterative vs Incremental Source: Jeff Patton Iterative
  • 64. (C)opyright Dave Farley 2017 Iterative vs Incremental Source: Jeff Patton Iterative Incremental
  • 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. (C)opyright Dave Farley 2017 Being Experimental - The Goal
  • 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. (C)opyright Dave Farley 2017 Being Experimental - The Goal
  • 69. (C)opyright Dave Farley 2017 Being Experimental - The Challenge
  • 70. (C)opyright Dave Farley 2017 Being Experimental - The Challenge
  • 71. (C)opyright Dave Farley 2017 The First “Software Engineer”
  • 72. (C)opyright Dave Farley 2017 Being Experimental - Small Steps
  • 73. (C)opyright Dave Farley 2017 Being Experimental - Small Steps
  • 74. (C)opyright Dave Farley 2017 Being Experimental - Giant Leaps
  • 75. (C)opyright Dave Farley 2017 Being Experimental - Giant Leaps
  • 76. (C)opyright Dave Farley 2017 Being Experimental
  • 77. (C)opyright Dave Farley 2017 Being Experimental The Ranger Programme
  • 78. (C)opyright Dave Farley 2017 Being Experimental The Ranger Programme ‣ Ranger 1 - Launch Failure
  • 79. (C)opyright Dave Farley 2017 Being Experimental The Ranger Programme ‣ Ranger 1 - Launch Failure ‣ Ranger 2 - Launch Failure
  • 80. (C)opyright Dave Farley 2017 Being Experimental The Ranger Programme ‣ Ranger 1 - Launch Failure ‣ Ranger 2 - Launch Failure ‣ Ranger 3 - Missed!
  • 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. (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. (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. (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. (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. (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. (C)opyright Dave Farley 2017 Being Experimental
  • 88. (C)opyright Dave Farley 2017 Being Experimental
  • 89. (C)opyright Dave Farley 2017 Being Experimental
  • 90. (C)opyright Dave Farley 2017 Being Experimental
  • 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. (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. (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. (C)opyright Dave Farley 2017 Being Empirical Matters Means we can be evidence based and data driven
  • 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. (C)opyright Dave Farley 2017 Being Empirical Matters Stand Back! We are going to try SCIENCE!!!
  • 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. (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. (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. (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. (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. (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. (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. (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. (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. (C)opyright Dave Farley 2017 Theory Observation Experiment Prediction
  • 108. (C)opyright Dave Farley 2017 Don’t be “like” Engineers
  • 109. (C)opyright Dave Farley 2017 Be Engineers!