
Dave Farley
Co-Author
"Continuous Delivery"
location_on United Kingdom
Member since 5 years
Dave Farley
Specialises In
Dave Farley is a thought-leader in the field of Continuous Delivery, DevOps and Software Development in general. He is co-author of the Jolt-award winning book ‘Continuous Delivery’ a popular conference speaker and blogger and one of the authors of the Reactive Manifesto.
Dave has been having fun with computers for over 35 years has worked on most types of software, from firmware, through tinkering with operating systems and device drivers, to writing games, and commercial applications of all shapes and sizes. He started working in large scale distributed systems about 25 years ago, doing research into the development of loose-coupled, message-based systems – a forerunner of MicroService architectures.
Dave has a wide range of experience leading the development of complex software in teams, both large and small, in the UK and USA. Dave was an early adopter of agile development techniques, employing iterative development, continuous integration and significant levels of automated testing on commercial projects from the early 1990s.
Dave is the former Head of Software development at LMAX Ltd, home of the OSS Disruptor, a company that are well known for the excellence of their code and the exemplary nature of their development process.
Dave is now an independent software developer and consultant, and founder and director of Continuous Delivery Ltd.
-
keyboard_arrow_down
Optimising Continuous Delivery
90 Mins
Workshop
Intermediate
The deployment pipeline is a central idea in Continuous Delivery. It represents the channel through which ideas inside your business flow to the outside world so that they can be delivered to your users in the form of working software. First steps in creating a working deployment pipeline are very rewarding. They help to improve the quality of the software that you create and usually lead to happier users.
As teams mature in their adoption of Continuous Delivery though, the pipeline often begins to slow. We have more tests, we are testing more complex things, our software becomes more complex and more difficult to deploy.How do we address these growing pains? What are the next steps, beyond the CD beginner’s basic automation? How do we optimise our pipelines to meet our needs as these needs grow?This workshop will explore the growing pains in Continuous Delivery and describe some strategies to cope with them. -
keyboard_arrow_down
Scaling Up!
45 Mins
Keynote
Intermediate
As Fred Brooks so famously said in "The Mythical Man Month" "You can't make a baby in a month with 9 women" so how do we scale software development?
What does it take to build complex systems on a massive scale? What should we scale and what shouldn't we?
Spoiler, the answer is not bigger, more complex procedures and processes, stand aside SAFe! This stuff is about applying information theory and engineering principles to software development.
-
keyboard_arrow_down
Advanced Deployment Pipeline Techniques
480 Mins
Workshop
Intermediate
The Deployment Pipeline is a central concept in Continuous Delivery. It represents an effective, controlled channel through which all changes destined for production pass.
A defining objective in CD is to work so that our software is always in a "releasable state." By applying high levels of automation to our development process, in the form of a Deployment Pipeline, we pass all changes to our production systems through this channel and evaluate them prior to release. This means that the pipeline quickly becomes a strategic resource.
As our use of this important tool grows, the performance of the pipeline, in terms of the rapidity with which it can give valuable feedback on the quality of your work, becomes a central concern.
-
keyboard_arrow_down
Engineering for Software
45 Mins
Keynote
Beginner
How to Amplify Creativity
In most disciplines "Engineering" means the stuff that works, an application of scientific reasoning to solving practical problems. In Software, depending on your background, it either means something bureaucratic that doesn't work, or it is just another name for software development. So what are the ideas that we can use as tools to give real, practical advantage in our work in the way that other disciplines achieve? What ideas should we treat as "the tools of our trade" whatever the technology or problem before us? This presentation explores two "tools" that we can use, Testability & Speed.
-
keyboard_arrow_down
The Rationale for Continuous Delivery
50 Mins
Talk
Advanced
The production of software is a complex, collaborative process that stretches our ability as human beings to cope with its demands.
Many people working in software development spend their careers without seeing what good really 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 into this state? How do we get past it? What does good really look like?
Continuous Delivery changes the economics of software development for some of the biggest companies in the world, whatever the nature of their software development, find out how and why.
KEYWORDS
Continuous Delivery, DevOps, Software Engineering, Quality
-
keyboard_arrow_down
The Rationale for Continuous Delivery
50 Mins
Talk
Advanced
The production of software is a complex, collaborative process that stretches our ability as human beings to cope with its demands.
Many people working in software development spend their careers without seeing what good really 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 into this state? How do we get past it? What does good really look like?
Continuous Delivery changes the economics of software development for some of the biggest companies in the world, whatever the nature of their software development, find out how and why.
KEYWORDS
Continuous Delivery, DevOps, Software Engineering, Quality
-
keyboard_arrow_down
The Rationale for Continuous Delivery
50 Mins
Talk
Advanced
The production of software is a complex, collaborative process that stretches our ability as human beings to cope with its demands.
Many people working in software development spend their careers without seeing what good really 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 into this state? How do we get past it? What does good really look like?
Continuous Delivery changes the economics of software development for some of the biggest companies in the world, whatever the nature of their software development, find out how and why.
KEYWORDS
Continuous Delivery, DevOps, Software Engineering, Quality
-
keyboard_arrow_down
Farley's Laws
45 Mins
Talk
Intermediate
We are not as smart as we think we are. Even us software developers!!
What we think of as reality isn't. When we think we are being rational, we are not. When we listen to experts and trust in their wisdom, we are fooling ourselves.
Meanwhile, software development is one of the more complex tasks that we mere mortals undertake. So what does it really take to overcome the limitations of our biology? How do we overcome our desire to jump to conclusions and guess at solutions?
This mildly humorous, entertaining talk explores some of the fallibilities inherent in our biology and addresses what it takes to solve genuinely complex problems in the face of our propensity to make wild guesses?
To put it another way, what do you need to understand to completely grasp how agile, lean development, DevOps and Continuous Delivery really work?
-
keyboard_arrow_down
Acceptance Testing for Continuous Delivery
90 Mins
Tutorial
Beginner
Writing and maintaining a suite of acceptance tests that can give you a high level of confidence in the behaviour and configuration of your system is a complex task. In this session, Dave will describe approaches to acceptance testing that allow teams to:
- work quickly and effectively
- build excellent functional coverage for complex enterprise-scale systems
- manage and maintain those tests in the face of change, and of evolution in both the codebase and the understanding of the business problem.
This workshop will answer the following questions, and more:
- How do you fail fast?
- How do you make your testing scalable?
- How do you isolate test cases from one-another?
- How do you maintain a working body of tests when you radically change the interface to your system?
-
keyboard_arrow_down
Advanced Deployment Pipeline Techniques
480 Mins
Workshop
Intermediate
The Deployment Pipeline is a central concept in Continuous Delivery. It represents an effective, controlled channel through which all changes destined for production pass.
A defining objective in CD is to work so that our software is always in a "releasable state". By applying high levels of automation to our development process, in the form of a Deployment Pipeline, we pass all changes to our production systems through this channel and evaluate them prior to release.
This means that the pipeline quickly becomes a strategic resource.
As our use of this important tool grows, the performance of the pipeline, in terms of the rapidity with which it can give valuable feedback on the quality of your work, becomes a central concern.
-
keyboard_arrow_down
The Rationale for Continuous Delivery
45 Mins
Talk
Intermediate
The production of software is a complex, collaborative process that stretches our ability as human beings to cope with its demands. Many people working in software development spend their careers without seeing what good really 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 into this state? How do we get past it? What does good really look like? Continuous Delivery changes the economics of software development for some of the biggest companies in the world, whatever the nature of their software development, find out how and why.
-
keyboard_arrow_down
Reactive Systems
45 Mins
Talk
Advanced
21st century problems cannot be solved with 20th century software architectures. So why is the starting point for so many projects built on the assumption of a simplistic monolithic, three-layer architecture sat on top of a RDBMS? Hardware has progressed. It has changed many of the assumptions that such architectures were built upon. Modern systems are distributed, deal with massive throughput of data and transactions. Users expect 24/7 service.
The Reactive Manifesto describes what it takes to build systems that meet these demands. Such systems are Responsive, Resilient, Elastic and Message Driven. What does this mean in terms of software architecture and design? This presentation will introduce these ideas and describe how systems built on these principles work.
-
keyboard_arrow_down
Taking Back "Software Engineering": Craftsmanship is not Enough
45 Mins
Keynote
Advanced
Would you fly in a plane designed by a craftsman or would you prefer your aircraft to be designed by engineers? Engineering is the application of iterative, empirical, practical science to real-world problems. Craftsmanship is a wonderful thing, and as a reaction to the terrible abuses of the term Engineering in software development Software Craftsmanship has helped in our learning of what really works.
The term "Software Engineering" has gained a bad reputation. It implies "Big up-front design" and "Mathematically provable models" in place of working code. However, that is down to our interpretation, not a problem with "Engineering" as a discipline.
In recent years we have discovered what really works in software development. Not everyone practices approaches like Continuous Delivery, but it is widely seen as representing the current state-of-the-art in software development. This is because at its root CD is about the application of an iterative, practical, empirical, maybe even science based approach to solving problems in software development. Is this a form of software engineering?
Software isn't bridge-building, it is not car or aircraft development either, but then neither is Chemical Engineering, neither is Electrical 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 entail.
-
keyboard_arrow_down
Advanced Deployment Pipeline Techniques
480 Mins
Workshop
Intermediate
The Deployment Pipeline is a central concept in Continuous Delivery. It represents an effective, controlled channel through which all changes destined for production pass.
A defining objective in CD is to work so that our software is always in a “releasable state”. By applying high levels of automation to our development process, in the form of a Deployment Pipeline, we pass all changes to our production systems through this channel and evaluate them prior to release.
This means that the pipeline quickly becomes a strategic resource.
As our use of this important tool grows, the performance of the pipeline, in terms of the rapidity with which it can give valuable feedback on the quality of your work, becomes a central concern.
-
keyboard_arrow_down
Advanced Deployment Pipeline Techniques
480 Mins
Workshop
Intermediate
The Deployment Pipeline is a central concept in Continuous Delivery. It represents an effective, controlled channel through which all changes destined for production pass.
A defining objective in CD is to work so that our software is always in a “releasable state”. By applying high levels of automation to our development process, in the form of a Deployment Pipeline, we pass all changes to our production systems through this channel and evaluate them prior to release.
This means that the pipeline quickly becomes a strategic resource.
As our use of this important tool grows, the performance of the pipeline, in terms of the rapidity with which it can give valuable feedback on the quality of your work, becomes a central concern.
-
keyboard_arrow_down
Advanced Deployment Pipeline Techniques
480 Mins
Workshop
Intermediate
The Deployment Pipeline is a central concept in Continuous Delivery. It represents an effective, controlled channel through which all changes destined for production pass.
A defining objective in CD is to work so that our software is always in a “releasable state”. By applying high levels of automation to our development process, in the form of a Deployment Pipeline, we pass all changes to our production systems through this channel and evaluate them prior to release.
This means that the pipeline quickly becomes a strategic resource.
As our use of this important tool grows, the performance of the pipeline, in terms of the rapidity with which it can give valuable feedback on the quality of your work, becomes a central concern.
-
keyboard_arrow_down
Continuous Delivery Fundamentals
480 Mins
Workshop
Intermediate
Continuous Delivery is a complex, holistic approach to software development and has a significant impact on the way in which organisations operate. This approach demands a broad range of skills and techniques. This course is designed to introduce, and explore a deeper understanding of, these ideas and techniques. It is primarily aimed at “Change Agents” within organisations, Managers, Leaders, Lead Developers, Lead Architects and so on, but is relevant to anyone who works on delivering valuable software to users in any capacity. More specifically this course will give you the tools to help your company become a 'Learning Organisation'. Increase efficiency and quality, and reduce risk in your software development process. Our training can teach the techniques that will allow you to increase user satisfaction and make your organisation more innovative. We do this by teaching an approach that will allow your company to become more experimental and capable of reacting quickly and efficiently to change and allowing your software development process to become a tool that enables this flexibility rather than an impediment to it.
-
keyboard_arrow_down
Continuous Delivery Fundamentals
480 Mins
Workshop
Intermediate
Continuous Delivery is a complex, holistic approach to software development and has a significant impact on the way in which organisations operate. This approach demands a broad range of skills and techniques. This course is designed to introduce, and explore a deeper understanding of, these ideas and techniques. It is primarily aimed at “Change Agents” within organisations, Managers, Leaders, Lead Developers, Lead Architects and so on, but is relevant to anyone who works on delivering valuable software to users in any capacity. More specifically this course will give you the tools to help your company become a 'Learning Organisation'. Increase efficiency and quality, and reduce risk in your software development process. Our training can teach the techniques that will allow you to increase user satisfaction and make your organisation more innovative. We do this by teaching an approach that will allow your company to become more experimental and capable of reacting quickly and efficiently to change and allowing your software development process to become a tool that enables this flexibility rather than an impediment to it.
-
keyboard_arrow_down
Continuous Delivery Fundamentals
480 Mins
Workshop
Intermediate
Continuous Delivery is a complex, holistic approach to software development and has a significant impact on the way in which organisations operate. This approach demands a broad range of skills and techniques. This course is designed to introduce, and explore a deeper understanding of, these ideas and techniques. It is primarily aimed at “Change Agents” within organisations, Managers, Leaders, Lead Developers, Lead Architects and so on, but is relevant to anyone who works on delivering valuable software to users in any capacity. More specifically this course will give you the tools to help your company become a 'Learning Organisation'. Increase efficiency and quality, and reduce risk in your software development process. Our training can teach the techniques that will allow you to increase user satisfaction and make your organisation more innovative. We do this by teaching an approach that will allow your company to become more experimental and capable of reacting quickly and efficiently to change and allowing your software development process to become a tool that enables this flexibility rather than an impediment to it.
-
keyboard_arrow_down
The Rationale for Continuous Delivery
50 Mins
Talk
Intermediate
The production of software is a complex, collaborative process that stretches our ability as human beings to cope with its demands. Many people working in software development spend their careers without seeing what good really 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 into this state? How do we get past it? What does good really look like? Continuous Delivery changes the economics of software development for some of the biggest companies in the world, whatever the nature of their software development, find out how and why.
-
No more submissions exist.
-
No more submissions exist.