[email protected]

Towards Empirical Answers to the Core Problems of Software Engineering

Bertrand Meyer

July 31, 2013

Can empirical research give us an answer to the big problems?

User Comments


The title is problematic: what is the CORE of software engineering? Is there one that all software theoreticians and practitioners agree on? I doubt it. If software engineering is NOT empirical, how can we expect to get any empirical answers?

It does not help the article’s argument when the 1st sentence is missing a or some words. It does not read right. I guess that the word ‘all’ should be between the words ‘about’ and ‘software.’

The 3rd paragraph begins “‘Empirical software engineering’ applies the quantitative methods of the natural sciences to the study of software phenomena." One gets the impression that the argument is tripping up on the word ‘engineering.’ Since before the Industrial Revolution, the notion of engineering deals primarily with mechanical aspects of nature or human constructs. What defines ‘mechanical’ is simply actions that are reversible. What the phrase ‘software engineering’ does is to impose a mechanistic illusion of reversibility to software. At the level of bits and bytes, software is perfectly reversible. Zeros can be flipped to ones and back. However, the importance of software today is remote from bits and bytes. This year 2013, marks the 65th anniversary of Shannon’s Mathematical Theory of Communications. He was careful to point out that for the engineering problem of signaling between two points, the bits he defined were ‘meaningless.’

I think both software theoreticians and practitioners agree on at least one thing in software: what we do with software today has meaning. This quality has resisted quantitative methods of engineering because in part, software is all about information’s meaning. Until we are ready and willing to accept this conundrum, we will be caught in an infinite loop.

Corrected omission of word "every" in first sentence, thanks. -- BM

I guess gathering empirical data is always the first step of making a theory (model) and in the first hand to identify the "thing" your theory is about. So i would say clearly YES ... i guess it is science what we are talking here about.

On the other hand two areas of analysis "artifacts ..." and " ..projects.." matches my daily experience. Creating good code is more a technical; but getting software through a development organisation and placed in the market is more a "governance" issue. I guess for the first part the tools and the interpretation of the data is well understood. For the second part i see management very often failing ... here i am not sure how empiric could help ...

On reading this article I wondered to myself, what about empirical electrical engineering, empirical mechanical engineering, empirical chemical engineering, etc? I simply don't know the answer to this set of questions. Are there or have there been major empirical "movements" in these disciplines? Of course putative results are tested experimentally, but my sense is that such empiricism is a test of a model against nature. This feels very different than comparing the performance of human teams that are matched but for a difference in, say, design method employed. --Kevin Sullivan, University of Virginia

Hallo Anonymous;

you don't make a theory and test it; this is half of the story. In physics e.g. observations (empiric) are motivating hypothesis. Prediction and verification by some community makes it a theory.

But you are right; empirical physics .. never heard about it :-) I share your understanding; using empirical data is an integral part of engineering.
E.g. in mechanical engineering long tables with material constants are used for construction. Such tables i am missing completely in SW engineering. - Michael Erdmann

While reading my previous threads i realized that i am ignoring the objective of this panel; sorry for this;
Regarding "...The principal aim of the present panel is to find out, through the contributions of the panelists.." frankly speaking during my daily work during the last 30 years in the SW engineering i did not came across any person collecting data for some academic studies which i find very strange. Could it be that academia has an issue in getting data from the industry?