The purpose of this paper is “to discover techniques that will enable software engineers to more productively make changes to large legacy real-time software systems,” and to design and develop corresponding tools. The authors studied real software engineers in real industrial environments; their only case study included nine one-hour sessions with eight software engineers.
The authors’ field studies are based on the concept of the just-in-time program comprehension approach used by software maintainers. The paper does not mention the need to understand and be explicit about the context or domain within which the software artifacts (mis)behave.
The authors used “synchronized shadowing,” in which two observers simultaneously and independently took notes about the actions of the maintainers (who were asked to think out loud when doing their work). All “interesting events” that occurred during the session were categorized, and corresponding templates were encoded as buttons used by the observers in their PC environment. The emphasis in recording appeared to be on computer-based actions, such as copying, pasting, and using grep, although reading and studying were also noted. The semantic similarities between maintainers’ actions, the objectives of these actions, or the discoveries made by maintainers as the results of their actions were not described.
The syntactic work patterns or action sequences observed and generalized by the authors were used to formulate requirements for a software tool that they are developing. The reference list, while extensive, does not include the classic work by Weinberg [1].