Software engineering?

Engineering

Modern human society depends a lot on engineers: a civil engineer design bridges, a mechanical engineer designs medical devices, an electrical engineer designs power grids, a computer engineer designs computer chips, an aerospace engineer designs aircraft, an ocean engineer designs coastal protection systems, etc. Without engineers our world would look very different indeed.

An engineer is a person who is trained in or follows as a profession a branch of engineering. Engineering is the creation of cost-effective solutions to practical problems by applying scientific knowledge to build things in the service of mankind [1]. Since science takes time to develop, a new field of engineering necessarily grows from humble beginnings:

From craft to engineering

Software engineering

Software engineering as a term first appeared in the late sixties as an aspiration: [2]:

The phrase ‘software engineering’ was deliberately chosen as being provocative, in implying the need for software manufacture to be based on the types of theoretical foundations and practical disciplines that are traditional in the established branches of engineering.

Has software engineering fulfilled that aspiration?

Books with titles like Software Engineering [3] and Modern Software Engineering [4] suggest it has, but then go on to present very different pictures of what software engineering should look like. On the other hand, the 2020 Chaos Report [5] shows a failure rate for software development projects that is much worse in terms of cancellations and schedule overruns than in other engineering disciplines. That comparison may be unfair to software engineering because software is soft: it’s easy to change, so change happens often, leading to schedule overruns and the need to embrace change [6]. The constant reports about security incidents also provide negative evidence.

We don’t think this question has been definitively answered.

Does that matter? Well, yes. Software has eaten the world [7], so there is much at stake. Science and engineering are the best ways known to mankind to build robust things that we can all depend on.

We firmly believe that software development should be a proper engineering discipline. And we’re contributing to the search for a science-backed sofware development approach that makes it so. Stay tuned.

Back