Please log in to watch this conference skillscast.
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.
YOU MAY ALSO LIKE:
Taking Back “Software Engineering”: Craftsmanship is not Enough
Dave Farley is a pioneer of Continuous Delivery, thought-leader and expert practitioner in CD, DevOps, TDD and software development in general.
Dave has been a programmer, software engineer, systems architect and leader of successful teams, for many years, from the early days of modern computing, taking those fundamental principles of how computers and software work, and shaping ground-breaking, innovative approaches that have changed how we approach modern software development. Dave has challenged conventional thinking and lead teams to build world class software.