The research approach of the SE group

Describes which research methods we use under which circumstances and why.

Research doctrine

Software engineering methodology as a research field, like all kinds of engineering, is fundamentally constructive: It intends to "show the way" how to solve some class of problems reliably, effectively, and efficiently.

Most software engineering research groups interpret this fact in such a way, that they work in 'construction mode' most of the time: They tirelessly invent new methods, new notations, and new tools for supporting them.

Looking at the results of this research, however, one finds that most of it has more or less failed: The vast majority of these methods, notations, and tools is either no improvement at all (compared to the previous state of the art) or its scope of application is so embarrassingly narrow that hardly anybody has even any opportunity of picking them up.

In our view, helpful contributions to software engineering are difficult. This is why we approach any topic using empirical research at first: Before one can usefully construct, one needs to understand the situation. The 'construction-only' mode of SE research implicitly claims that this understanding can be gained purely analytically or intuitively.

We do not believe that this is true. Since software engineering always involves complex action and interaction of human beings, psychological and sociological insights are required for understanding the situation and these insights can only be gained empirically.

Therefore, our research approach always starts from empirical investigations. Depending on the topic under investigation, we use quantitative methods or qualitative methods or both. We typically pick under-researched topics and therefore start with qualitative methods to gain a thorough and valid understanding. This can then be followed by constructive research and/or quantitative research, but we rarely get to the latter.

We view each individual study as a contribution to answering some more general question and judge the contribution by its credibility and its relevance. Only once we believe to have gained sufficient understanding of how a situation really is will we start attacking a software engineering methodology problem by means of construction.

And as an overarching principle, we strongly believe in common sense as a useful guide for research as well as for publishing about research.

Quantitative empirical research

Quantitative research focuses on observations that can be expressed in numbers. The underlying concept (usually called a 'variable' by quantitative researchers) may be subjective (i.e. requiring interpretation or judgement to convert it to a number) or objective (measurable in some automated way not requiring human judgement).

This section shortly describes the main methods of quantitative research and when we use them. There are other methods (many of which can be considered variants of those given here), but they are of less importance to our work and were left out for brevity's sake.

For an introduction to quantitative research methods for software engineering, see the materials for the course "Empirische Methoden in der Informatik".

Controlled experiment

See also Wikipedia:Controlled_experiment.

Survey

See also Wikipedia:Statistical_survey.

Qualitative empirical research

Qualitative research uses the full spectrum of possible observations, not confining itself to observations that can be expressed quantiatively (although these may be used as well).

This section shortly describes the main methods of qualitative research that are relevant for our work and characterizes when we use them. Many other qualitative methods exist, but they are of less importance to our work and were left out here for brevity's sake.

Grounded Theory Methodology (GTM)

See Wikipedia:Grounded_Theory.

Case study

Constructive research

Constructive research means providing new things rather than talking about things that already exist.

The typical manner of constructive research in software engineering is (1) devising methods and (2) building software tools for supporting some method. If and when we do constructive research, it will typically be in a context in which we performed qualitative research before and have now found an interesting approach for possible improvement. We then usually take an Wikipedia:Action_Research approach.

Interestingly, the border between analytic research and constructive research is not as clear as it seems at first, because theories, the most desired output of analytic research, are constructions, too. Conversely, any output of constructive research implicitly contains some amount of theory (embedded in the rationale why the construction was created as it was) and hence has some component of analytic research as well.

Publishing doctrine

We also do our best to satisfy the following principles when we publish our research.

Substance

We do not believe in the leas publishable unit style of scientific publication. Rather, we attempt to form the most coherent whole we can when we design a publication. The goal is to maximize the insight gained per reading effort.

We believe that this is "the right thing" to do from the point of view of the scientific process and hope that the scientific community will align its reward systems appropriately for each of our members when this member explains what we did and why.

Clarity

We try to impress our readers by clarity, rather than by complexity. In particular, this means that when it comes to presenting quantitative data or results of statistical analyses, we tend to strongly prefer graphical plots over tables, significance test p-values, and other unillustrative formats.

We attempt to write prose that is simple and straightforward, avoids excessive jargon, and intelligently bends conventions whenever those threaten to get in the way of readability.

Again, our goal is to maximize the insight gained per reading effort.

Transparency and detail

We want our results to be highly credible. We think that all too many publications in software engineering lack credibility. Often this is because they present a proposal but provide no empirical evaluation of its properties. In other cases, an evaluation is present, but too many skeptical questions remain unanswered when reading its description, which raises a lot of suspicion.

For this reason (and a number of other reasons as well, see below) we believe that a high degree of transparency is important for good research. One main method for achieving such transparency is reporting on the research on a fine level of detail.

This is why we often provide the following two kinds of additional material, although preparing such material requires a lot of additional effort:

See our publications page for a list of technical reports and a list of data packages.

Comments

 

SWTIDSR