The cognitive connection: Software maintenance and documentation
With the goal of trying to understand what software maintainers do, talking aloud, video taped protocols with four expert maintainers were conducted as they were actively engaged in the process of enhancing a relatively small, interactive database program. The subjects exhibited a number of different types of information gathering strategies. Underlying these patterns of behavior, however, was the use of expectations about what should be seen in the program under examination. These expectations were generated on the basis of knowledge previously acquired as to the goals and programming plans that are typically employed in realizing interactive database programs. Thus, while the experts seemed to posses adequate programming knowledge, their actual code patches violated a basic principle of program structure. This failure by the programmers was attributed to ineffective program documentation. Suggestions for changes in the content of program documentation that should better facilitate software maintenance are presented.