On the Ordering of Nouns in Writing

Effective writing is important, or you won’t be understood and achieve your goal. An example is to get the ordering of nouns (or adjectives) in enumerations right. Let’s pick an example: In software engineering, a software feature’s implementation should be correct, complete, and testable. So a project goal could be “to ensure correctness, completeness, and testability of feature implementations.”

The following rules apply:

Continue reading “On the Ordering of Nouns in Writing”

How to Have an Impact as a Software Engineering Researcher

Over on Facebook of all places, I took part in a short discussion on how, as a researcher, to have an impact on practice. It is not a convenient answer, but in my opinion, if you want to have an impact, you should go into practice yourself. You can also send your students, but this creates a generational lag of research-to-practice transfer that can span decades.

One of the suggestions of how to have an impact was to perform action research. The idea is that you are creating change in an organization where you are performing said action research. However, action research is a research method whose purpose it is to help you build out and evaluate a theory. Unless you are into critical theory, action research does not have, as a primary goal, to change industry. It is just a theory building method.

Continue reading “How to Have an Impact as a Software Engineering Researcher”

Traditional Theory Building and Validation in (Computer) Science

Many computer science degree programs do a lousy job at teaching science. A high school student, entering university, often has a good idea what science is about, based on their physics and chemistry classes. At least, it involves controlled experiments. At university, this is rarely picked up, and computer science students are given the idea that programming something novel constitutes science. With that idea, they are often bewildered when I teach them rigorous research methods, in particular if those originated in the social sciences (like qualitative interviews or hypothesis-testing surveys).

The process of science
Continue reading “Traditional Theory Building and Validation in (Computer) Science”

The Real Problem with Pay-walled Publications

Pay-walled publications are just that: Publications that nobody reads unless someone pays the publisher’s fee. I have no problem with that, because I don’t read pay-walled work and don’t consider it published research and prior art that I should care about.

The real problem starts with researchers and editors who expect me to find, read, and consider pay-walled work as prior art. That’s an unacceptable proposition to me and an unfair one to the world.

Continue reading “The Real Problem with Pay-walled Publications”

How Not to Ask Your Research Question (And What to do About it)

In software engineering, the structure of research theses, most notably dissertations, is straightforward: (1) Formulate a research question, choose a method, build a theory, then (2) generate at least one interesting hypothesis, choose a method, and test the hypothesis as part of the theory’s attempted validation. A dissertation can do both parts 1 and 2 or just one of them, relying on or leaving stuff to others. The benefit of this structure is that it will be easily recognized by other researchers and make it eas(ier) to write great papers.

Continue reading “How Not to Ask Your Research Question (And What to do About it)”

Pay-walled Research Papers Do Not Constitute Published Work

I just had another discussion with a reviewer (by way of an editor) who insisted that I cite (presumably their) work buried behind an Elsevier paywall. How obnoxious can you be?

It is 2019 and there are still editors and reviewers who consider articles, which are not freely accessible on the web, published research? That’s so wrong. Such work has been buried behind a paywall. It yet needs to be published.

Continue reading “Pay-walled Research Papers Do Not Constitute Published Work”