Refactoring, does it help?

Refactoring, is the general idea, helps to get a higher degree of understandibility and changeability of your code. Refactoring, in short, enhances the quality of code.

That is the hunch we all have. But in practice, it is hard to prove. Recent research, for instance, show that refactoring does not lower code complexity, which is counterintuitive1,2.

You could almost speak of a war: in this article, the authors state that refactoring did not improve code quality. Developers answered, of course. The problem, I think, is partly that `code quality’ is inherently hard to measure (and cannot be measured directly), and that – maybe – refactoring serves a slightly different purpose than anhancing understandability and changeability, and minimizing complexity. Here is my view. (more…)

How to write an introduction for a Ph.D dissertation

Ph.D. dissertations , or theses, come in many flavors.

At one end of the scale , they have the form of an introduction with chapters that follow each other in a logical, coherent way. Each of the chapters answers a research question, and these research questions are subquestions of one main research question.

At the other end of the scale, a dissertation or thesis consists of a number of previously published articles, with an introduction and conclusions or an epilogue at the end. These chapters loosely cover the same subject, but it is difficult to find a logical structure, or to define a main research question based on the individual research questions. This entry contains advice for an introduction for the latter type of dissertation.

I finished my Ph.D. dissertation, Design for Change, recently; it was definitely an example of the latter type. It contains eight chapters based on previously published articles, written over a long period of time, touching a broad set of subjects. Here, I describe how I tackled the problem of binding those chapters together in the introduction of the dissertation (I will use the word thesis from now on, because it is shorter).