He is a thought-leader in the field of Continuous Delivery, DevOps and Software Development in general and co-author of the Jolt-award winning book 'Continuous Delivery' a regular conference speaker and blogger and one of the authors of the Reactive Manifesto.
Dave has been having fun with computers for over 30 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 more than 25 years ago, doing research into the development of loose-coupled, message-based systems - a forerunner of MicroService architectures.
He 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.
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.
Now he is an independent software developer and consultant, and founder and director of Continuous Delivery Ltd.
Presentation title: Taking Back “Software Engineering”. Craftsmanship is not enough
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.