This paper asks the question how IDEs should be designed to facilitate the maintenance tasks instead of just development tasks. To answer this question they conducted a study, asking 10 programmers to perform a maintenance task and to be recorded using screen capturing. By analyzing these screen-captured video, they conclude several procedural activities that occur during the maintenance process – 1) forming a working set of task-relevant code fragments, 2) navigating the dependencies within this working set; and 3) repairing or creating the necessary code. Further, in the empirical assessment process, they discuss various kinds of phenomenon observed in the study, which lead to corresponding design implications for IDEs. The possible improvement is illustrated by both description and sketching.
The steps of examining the screen-captured video:
- Looking ahead in the video to determine which task the programmer was working on;
- Returning to the beginning of the task to determine the goal of each of the programmer’s individual actions;
- Generalizing from the goals of programmers’ individual actions to more general activities.
It really matters how well researchers understand the nature of the task. In their study, if the researchers had not looked into the dependencies of the program it would have been impossible to find out what programmers were doing such as jumping from one code area to another.