Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
Changed: | ||||||||
< < |
| |||||||
> > |
| |||||||
Mik's Review Problem |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Deleted: | ||||||||
< < | ||||||||
Mik's Review
Problem
| ||||||||
Changed: | ||||||||
< < | Modern IDEs don't provide programmers with adequate support for comprehending and navigating the subset of the system that is relevant to their task. This paper identifies this problem in particular to maintenance | |||||||
> > | Modern IDEs don't provide programmers with adequate support for comprehending and navigating the subset of the system that is relevant to their task. This paper identifies this problem in particular to maintenance | |||||||
tasks.
Contributions
| ||||||||
Changed: | ||||||||
< < | The contributions are a lab-based user study of 10 programmers concludes that 35% of the time that programmers spent navigating could be saved by a better tool, an outline of the requirements for such a tool, and a mockup. Some interesting highlights of the proposed tool include: * 6.2: Allow programmers to explicitly manage working sets and task contexts. * 6.5: Show context in place when the model of what's on the screen prevents classical containment hierarchy browsing. | |||||||
> > | The contributions are a lab-based user study of 10 programmers concludes that 35% of the time that programmers spent navigating could be saved by a better tool, an outline of the requirements for such a tool, and a mockup. Some interesting highlights of the proposed tool include:
| |||||||
The paper also outlines some interesting problems: | ||||||||
Changed: | ||||||||
< < | * Programmers frequently make false hypotheses that lead them to the wrong parts of the system (88% of the time seems excessive though). * When returning to a task it takes time to recover a working set (60 seconds). * There is a desire to use Eclipse bookmarks to save context, but this is cumbersome. * Addressing the problem by using very large screen resolutions will introduce a real estate management problem. | |||||||
> > |
| |||||||
* Sharing working sets could be useful in a collaborative context.
Weaknesses
Consider that: | ||||||||
Changed: | ||||||||
< < | * The student study subjects observed were nowhere near the level considered expert in industry. An expert Java/Eclipse programmer does not get confused by Eclipse in the way that the subjects did (explained by Wes below). * Including dependencies, real systems are 2-5 orders of magnitude bigger than the one studied. * It is extremely rare for industry developers to use 1024x768 screen resolution since that causes excessive navigation. Since this paper is based on observations of programming in the small, the paper leads to conclusions that do not scale to industry development: 6.1: Having programmers manually prune away a working set of automated dependencies would be a huge burden when working on a large system. 6.3: Semantic highlighting of occurrences is in Eclipse, and I think that it has been there for over a year. The extrapolation of this to cross files would show way too much if you made it dependency-based. 6.4: It's a big stretch to imagine this UI scaling. Folding has already been around for ages. 6.6: Very heuristic and unclear how it could scale. The pie chart in Figure 3 is really hard to believe. As Wes points out reading and navigating code are part of the same task. Navigating dependencies and searching for names are the same task for many Eclipse programmers who use the search shortcuts and view. Testing can also be dominated by reading and navigating. | |||||||
> > |
| |||||||
Questions
| ||||||||
Line: 67 to 42 | ||||||||
| ||||||||
Deleted: | ||||||||
< < | ||||||||
| ||||||||
Deleted: | ||||||||
< < | ||||||||
| ||||||||
Deleted: | ||||||||
< < | ||||||||
| ||||||||
Deleted: | ||||||||
< < | ||||||||
Clint's Review
Problem Addressed / Brief Summary
| ||||||||
Changed: | ||||||||
< < | Much of a programmer's time is spent maintaining code, and most the time during maintenance is spent developing an understanding of the code. This work explores the type of activities programmers perform during maintenance tasks to understand its associated difficulties and to create design requirements for better IDE support. The bulk of the paper details a user study of 10 "expert" programmers. The programmers were told to perform a series maintenance tasks of a small Java code base. This work was captured and analyzed. The lastquarter of the paper presents an maintenance-oriented IDE designed to overcome some of the problems identified in the case study. | |||||||
> > | Much of a programmer's time is spent maintaining code, and most the timeduring maintenance is spent developing an understanding of the code. This work explores the type of activities programmers perform during maintenance tasks to understand its associated difficulties and to create design requirements for better IDE support. The bulk of the paper details a user study of 10 "expert" programmers. The programmers were told to perform a series maintenance tasks of a small Java code base. This work was captured and analyzed. The lastquarter of the paper presents an maintenance-oriented IDE designed to overcome some of the problems identified in the case study. | |||||||
Key Contributions
| ||||||||
Changed: | ||||||||
< < |
| |||||||
> > |
| |||||||
Weaknesses | ||||||||
Line: 122 to 80 | ||||||||
Problem Addressed
| ||||||||
Changed: | ||||||||
< < | Developers spend a relatively small portion of their time editing code during maintenance tasks. This suggests that even modern IDEs do not provide adequate support for these tasks, which results in considerable amounts of time spent navigating, searching, and reading task-irrelevant code. This problem is approached by conducting a study of developers performing maintenance tasks with Eclipse. Observations of the programmers' difficulties and inefficiencies are used to deduce "new" design requirements for development tools. The authors then propose a development tool design that they believe satisfies these requirements. | |||||||
> > | Developers spend a relatively small portion of their time editing code during maintenance tasks. This suggests that even modern IDEs do not provide adequate support for these tasks, which results in considerable amounts of time spent navigating, searching, and reading task-irrelevant code. | |||||||
Added: | ||||||||
> > | This problem is approached by conducting a study of developers performing maintenance tasks with Eclipse. Observations of the programmers' difficulties and inefficiencies are used to deduce "new" design requirements for development tools. The authors then propose a development tool design that they believe satisfies these requirements. | |||||||
Key Contributions
| ||||||||
Line: 138 to 88 | ||||||||
| ||||||||
Deleted: | ||||||||
< < | ||||||||
| ||||||||
Changed: | ||||||||
< < |
| |||||||
> > |
| |||||||
| ||||||||
Deleted: | ||||||||
< < | ||||||||
| ||||||||
Deleted: | ||||||||
< < | ||||||||
| ||||||||
Deleted: | ||||||||
< < | ||||||||
Weaknesses
| ||||||||
Line: 161 to 103 | ||||||||
| ||||||||
Deleted: | ||||||||
< < | ||||||||
| ||||||||
Deleted: | ||||||||
< < | ||||||||
| ||||||||
Deleted: | ||||||||
< < | ||||||||
Questions
| ||||||||
Deleted: | ||||||||
< < | ||||||||
| ||||||||
Deleted: | ||||||||
< < | ||||||||
| ||||||||
Deleted: | ||||||||
< < | ||||||||
| ||||||||
Deleted: | ||||||||
< < | ||||||||
| ||||||||
Deleted: | ||||||||
< < | -- Main.janvik - 08 Jun 2005 |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
Added: | ||||||||
> > |
Modern IDEs don't provide programmers with adequate support for comprehending and navigating the subset of the system that is relevant to their task. This paper identifies this problem in particular to maintenance tasks. Contributions The contributions are a lab-based user study of 10 programmers concludes that 35% of the time that programmers spent navigating could be saved by a better tool, an outline of the requirements for such a tool, and a mockup. Some interesting highlights of the proposed tool include: * 6.2: Allow programmers to explicitly manage working sets and task contexts. * 6.5: Show context in place when the model of what's on the screen prevents classical containment hierarchy browsing. The paper also outlines some interesting problems: * Programmers frequently make false hypotheses that lead them to the wrong parts of the system (88% of the time seems excessive though). * When returning to a task it takes time to recover a working set (60 seconds). * There is a desire to use Eclipse bookmarks to save context, but this is cumbersome. * Addressing the problem by using very large screen resolutions will introduce a real estate management problem. * Sharing working sets could be useful in a collaborative context. Weaknesses Consider that: * The student study subjects observed were nowhere near the level considered expert in industry. An expert Java/Eclipse programmer does not get confused by Eclipse in the way that the subjects did (explained by Wes below). * Including dependencies, real systems are 2-5 orders of magnitude bigger than the one studied. * It is extremely rare for industry developers to use 1024x768 screen resolution since that causes excessive navigation. Since this paper is based on observations of programming in the small, the paper leads to conclusions that do not scale to industry development: 6.1: Having programmers manually prune away a working set of automated dependencies would be a huge burden when working on a large system. 6.3: Semantic highlighting of occurrences is in Eclipse, and I think that it has been there for over a year. The extrapolation of this to cross files would show way too much if you made it dependency-based. 6.4: It's a big stretch to imagine this UI scaling. Folding has already been around for ages. 6.6: Very heuristic and unclear how it could scale. The pie chart in Figure 3 is really hard to believe. As Wes points out reading and navigating code are part of the same task. Navigating dependencies and searching for names are the same task for many Eclipse programmers who use the search shortcuts and view. Testing can also be dominated by reading and navigating. Questions
Much of a programmer's time is spent maintaining code, and most the time during maintenance is spent developing an understanding of the code. This work explores the type of activities programmers perform during maintenance tasks to understand its associated difficulties and to create design requirements for better IDE support. The bulk of the paper details a user study of 10 "expert" programmers. The programmers were told to perform a series maintenance tasks of a small Java code base. This work was captured and analyzed. The lastquarter of the paper presents an maintenance-oriented IDE designed to overcome some of the problems identified in the case study. Key Contributions
Developers spend a relatively small portion of their time editing code during maintenance tasks. This suggests that even modern IDEs do not provide adequate support for these tasks, which results in considerable amounts of time spent navigating, searching, and reading task-irrelevant code. This problem is approached by conducting a study of developers performing maintenance tasks with Eclipse. Observations of the programmers' difficulties and inefficiencies are used to deduce "new" design requirements for development tools. The authors then propose a development tool design that they believe satisfies these requirements. Key Contributions
|