A Realistic Approach to Empirical Research

I believe we need to focus more attention on informal exploratory studies that provide insights into directions software development can take. We should couple these, when appropriate, with more formal empirical studies to test out pieces of the whole that can be added to the tapestry that helps make the discipline clear. I believe that the study of the software engineering discipline is exploratory and evolutionary. It follows the scientific method, but because of its nature, real experiments are not always possible or useful.

I like to say that the study of software engineering is a laboratory science, and it is a big science. So the laboratory is quite grand and we need methods that support the exploratory nature of this big science. The discipline cannot be understood only by analysis. We need to learn from applying the discipline whether relationships hold, how they vary, and what the limits of various technologies are, so we can know how to configure process to develop software better.

We need to take advantage of all opportunities we can find to explore various ideas in practice—e.g., test their feasibility, find out whether humans can apply them, understand what skills are required to apply them, and test their interactions with other concepts. Based upon that knowledge, we need to refine and tailor each idea to the application environment in which we are studying it so it can be transferred easily into practice. Even before we build ...

Get Making Software now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.