posted on 2005-05-01, 00:00authored byAndrew J. Ko, Htet Htet Aung, Brad A. Myers
Recently, several innovative tools have found their way into
mainstream use in modern development environments. However,
most of these tools have focused on creating and modifying code,
despite evidence that most of programmers’ time is spent
understanding code as part of maintenance tasks. If new tools
were designed to directly support these maintenance tasks, what
types would be most helpful? To find out, a study of expert Java
programmers using Eclipse was performed. The study suggests
that maintenance work consists of three activities: (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. The study identified several trends in these
activities, as well as many opportunities for new tools that could
save programmers up to 35% of the time they currently spend on
maintenance tasks.