Download - I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]
![Page 1: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/1.jpg)
I Know What You Did Last SummerAn Investigation of How Developers Spend Their Time
Roberto Minelli, Andrea Mocci, Michele Lanza REVEAL @ Faculty of Informatics — University of Lugano, Switzerland
@robertominelli
![Page 2: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/2.jpg)
write
![Page 3: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/3.jpg)
write
read
![Page 4: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/4.jpg)
write
read
navigate
![Page 5: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/5.jpg)
write
read
navigate
user interface
![Page 6: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/6.jpg)
write
read
navigate
user interface
program understanding
![Page 7: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/7.jpg)
write
read
navigate
user interface
program understanding
Program understanding:Challenge for the 1990s
In the Program Understanding Project at IBM's Re-search Division, work began in late 1986 on toolswhich could help programmers in two key areas: staticanalysis (reading the code) and dynamic analysis (run-ning the code). The work is reported in the companionpapers by Cleveland and by Pazel in this issue. Thehistory and background which motivated and whichled to the start of this research on tools to assistprogrammers in understanding existing program codeis reported here.
" If the poor workman hates his tools, the goodworkman hates poor tools. The work of theworkingman is, in a sense, defined by his tool-witness the way in which the tool is so often taken tosymbolize the worker: the tri-squarefor the carpenter,the trowel for the mason, the transit for the surveyor,the camera for the photographer, the hammer for thelaborer, and the sickle for the farmer.
"Working with defective or poorly designed tools,even the finest craftsman is reduced to producinginferior work, and is thereby reduced to being aninferior craftsman. No craftsman, if he aspires to thehighest work in his profession, will accept such tools;and no employer, if he appreciates the quality ofwork, will ask the craftsman to accept them. "I
Today a variety of motivators are causing corpora-tions to invest in software tools to increase softwareproductivity, including: (1) increased demand forsoftware, (2) limited supply of software engineers, (3)rising expectations of support from software engi-neers, and (4) reduced hardware costs.' A key moti-
294 CORBI
by T. A. Corbi
vator for software tools in the 1990swill be the resultof having software evolve over the previous decadesfrom several-thousand-line, sequential programmingsystems into multimillion-line, multitasking "busi-ness-critical" systems. As the programming systemswritten in the 1960s and 1970s continue to mature,the focus for software tools will shift from tools thathelp develop new programming systems to tools thathelp us understand and enhance aging programmingsystems.
In the 1970s, the work of Belady and Lehman"?strongly suggested that all large programs wouldundergo significant change during the in-servicephase of their life cycle, regardless of the a prioriintentions of the organization. Clearly, they wereright. As an industry, we have continued to growand change our large software systems to:
• Remove defects• Address new requirements• Improve design and/or performance• Interface to new programs• Adjust to changes in data structures or formats• Exploit new hardware and software featuresAs we extended the lifetimes of our systems bycontinuing to modify and enhance them, we alsoe Copyright 1989by International BusinessMachines Corporation.Copying in printed form for private use is permitted withoutpayment of royalty provided that (I) each reproduction is donewithout alteration and (2) the Journalreference and IBMcopyrightnotice are included on the first page. The title and abstract, but noother portions, of this paper may be copied or distributed royaltyfree without further permission by computer-based and otherinformation-service systems. Permission to republish any otherportion of this paper must be obtained from the Editor.
IBM SYSTEMS JOURNAL, VOL 28, NO 2, 1989
…up to 50%
![Page 8: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/8.jpg)
write
read
navigate
user interface
program understanding
Program understanding:Challenge for the 1990s
In the Program Understanding Project at IBM's Re-search Division, work began in late 1986 on toolswhich could help programmers in two key areas: staticanalysis (reading the code) and dynamic analysis (run-ning the code). The work is reported in the companionpapers by Cleveland and by Pazel in this issue. Thehistory and background which motivated and whichled to the start of this research on tools to assistprogrammers in understanding existing program codeis reported here.
" If the poor workman hates his tools, the goodworkman hates poor tools. The work of theworkingman is, in a sense, defined by his tool-witness the way in which the tool is so often taken tosymbolize the worker: the tri-squarefor the carpenter,the trowel for the mason, the transit for the surveyor,the camera for the photographer, the hammer for thelaborer, and the sickle for the farmer.
"Working with defective or poorly designed tools,even the finest craftsman is reduced to producinginferior work, and is thereby reduced to being aninferior craftsman. No craftsman, if he aspires to thehighest work in his profession, will accept such tools;and no employer, if he appreciates the quality ofwork, will ask the craftsman to accept them. "I
Today a variety of motivators are causing corpora-tions to invest in software tools to increase softwareproductivity, including: (1) increased demand forsoftware, (2) limited supply of software engineers, (3)rising expectations of support from software engi-neers, and (4) reduced hardware costs.' A key moti-
294 CORBI
by T. A. Corbi
vator for software tools in the 1990swill be the resultof having software evolve over the previous decadesfrom several-thousand-line, sequential programmingsystems into multimillion-line, multitasking "busi-ness-critical" systems. As the programming systemswritten in the 1960s and 1970s continue to mature,the focus for software tools will shift from tools thathelp develop new programming systems to tools thathelp us understand and enhance aging programmingsystems.
In the 1970s, the work of Belady and Lehman"?strongly suggested that all large programs wouldundergo significant change during the in-servicephase of their life cycle, regardless of the a prioriintentions of the organization. Clearly, they wereright. As an industry, we have continued to growand change our large software systems to:
• Remove defects• Address new requirements• Improve design and/or performance• Interface to new programs• Adjust to changes in data structures or formats• Exploit new hardware and software featuresAs we extended the lifetimes of our systems bycontinuing to modify and enhance them, we alsoe Copyright 1989by International BusinessMachines Corporation.Copying in printed form for private use is permitted withoutpayment of royalty provided that (I) each reproduction is donewithout alteration and (2) the Journalreference and IBMcopyrightnotice are included on the first page. The title and abstract, but noother portions, of this paper may be copied or distributed royaltyfree without further permission by computer-based and otherinformation-service systems. Permission to republish any otherportion of this paper must be obtained from the Editor.
IBM SYSTEMS JOURNAL, VOL 28, NO 2, 1989
![Page 9: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/9.jpg)
write
read
navigate
user interface
program understanding
Program understanding:Challenge for the 1990s
In the Program Understanding Project at IBM's Re-search Division, work began in late 1986 on toolswhich could help programmers in two key areas: staticanalysis (reading the code) and dynamic analysis (run-ning the code). The work is reported in the companionpapers by Cleveland and by Pazel in this issue. Thehistory and background which motivated and whichled to the start of this research on tools to assistprogrammers in understanding existing program codeis reported here.
" If the poor workman hates his tools, the goodworkman hates poor tools. The work of theworkingman is, in a sense, defined by his tool-witness the way in which the tool is so often taken tosymbolize the worker: the tri-squarefor the carpenter,the trowel for the mason, the transit for the surveyor,the camera for the photographer, the hammer for thelaborer, and the sickle for the farmer.
"Working with defective or poorly designed tools,even the finest craftsman is reduced to producinginferior work, and is thereby reduced to being aninferior craftsman. No craftsman, if he aspires to thehighest work in his profession, will accept such tools;and no employer, if he appreciates the quality ofwork, will ask the craftsman to accept them. "I
Today a variety of motivators are causing corpora-tions to invest in software tools to increase softwareproductivity, including: (1) increased demand forsoftware, (2) limited supply of software engineers, (3)rising expectations of support from software engi-neers, and (4) reduced hardware costs.' A key moti-
294 CORBI
by T. A. Corbi
vator for software tools in the 1990swill be the resultof having software evolve over the previous decadesfrom several-thousand-line, sequential programmingsystems into multimillion-line, multitasking "busi-ness-critical" systems. As the programming systemswritten in the 1960s and 1970s continue to mature,the focus for software tools will shift from tools thathelp develop new programming systems to tools thathelp us understand and enhance aging programmingsystems.
In the 1970s, the work of Belady and Lehman"?strongly suggested that all large programs wouldundergo significant change during the in-servicephase of their life cycle, regardless of the a prioriintentions of the organization. Clearly, they wereright. As an industry, we have continued to growand change our large software systems to:
• Remove defects• Address new requirements• Improve design and/or performance• Interface to new programs• Adjust to changes in data structures or formats• Exploit new hardware and software featuresAs we extended the lifetimes of our systems bycontinuing to modify and enhance them, we alsoe Copyright 1989by International BusinessMachines Corporation.Copying in printed form for private use is permitted withoutpayment of royalty provided that (I) each reproduction is donewithout alteration and (2) the Journalreference and IBMcopyrightnotice are included on the first page. The title and abstract, but noother portions, of this paper may be copied or distributed royaltyfree without further permission by computer-based and otherinformation-service systems. Permission to republish any otherportion of this paper must be obtained from the Editor.
IBM SYSTEMS JOURNAL, VOL 28, NO 2, 1989
Does this myth hold?
![Page 10: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/10.jpg)
The Pharo IDE
Enter some B$ about Pharò
![Page 11: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/11.jpg)
The Pharo IDE: Debugger
Enter some B$ about Pharò
![Page 12: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/12.jpg)
Enter some B$ about Pharò
The Pharo IDE: Code Browser
![Page 13: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/13.jpg)
IDE Interaction Data
IDE developer
interactions
![Page 14: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/14.jpg)
DFlow
MetaUser InterfaceLow-Level
Opening/closing a window Activating a window, i.e., window in focus Resizing/moving/minimize/maximize a window class
Mouse button up/down Scroll wheel up/down Mouse move Mouse-out/in Keystroke pressed
Smalltalk IDE
![Page 15: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/15.jpg)
DFlow
MetaUser InterfaceLow-Level
Opening/closing a window Activating a window, i.e., window in focus Resizing/moving/minimize/maximize a window class
Mouse button up/down Scroll wheel up/down Mouse move Mouse-out/in Keystroke pressed
DFLOW
Smalltalk IDE
Recorder Analyzer …
HTTP
DFLOW
Server
![Page 16: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/16.jpg)
DFlow
MetaOpening a Finder UI Selecting a package, method, or class in the code browser Opening a system browser on a method or a class electing a method in the Finder UI Starting a search in the Finder UI Inspecting an object Browsing a compiled method Do-it/Print-it on a piece of code (e.g., workspace) Stepping into/Stepping Over/Proceeding in a debugger Run to selection in a debugger Entering/exiting from an active debugger Browsing full stack/stack trace in a debugger Browsing hierarchy, implementors or senders of a class Browsing the version control system Browse versions of a method Creating/removing a class Adding/removing instance variables from a class Adding/removing a method from a class Automatically creating accessors for a class
![Page 17: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/17.jpg)
DFlow
MetaOpening a Finder UI Selecting a package, method, or class in the code browser Opening a system browser on a method or a class electing a method in the Finder UI Starting a search in the Finder UI Inspecting an object Browsing a compiled method Do-it/Print-it on a piece of code (e.g., workspace) Stepping into/Stepping Over/Proceeding in a debugger Run to selection in a debugger Entering/exiting from an active debugger Browsing full stack/stack trace in a debugger Browsing hierarchy, implementors or senders of a class Browsing the version control system Browse versions of a method Creating/removing a class Adding/removing instance variables from a class Adding/removing a method from a class Automatically creating accessors for a class
User Interface Opening/closing a window Activating a window, i.e., window in focus Resizing/moving/minimize/maximize a window class
![Page 18: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/18.jpg)
DFlow
MetaOpening a Finder UI Selecting a package, method, or class in the code browser Opening a system browser on a method or a class electing a method in the Finder UI Starting a search in the Finder UI Inspecting an object Browsing a compiled method Do-it/Print-it on a piece of code (e.g., workspace) Stepping into/Stepping Over/Proceeding in a debugger Run to selection in a debugger Entering/exiting from an active debugger Browsing full stack/stack trace in a debugger Browsing hierarchy, implementors or senders of a class Browsing the version control system Browse versions of a method Creating/removing a class Adding/removing instance variables from a class Adding/removing a method from a class Automatically creating accessors for a class
User Interface
Low-Level
Opening/closing a window Activating a window, i.e., window in focus Resizing/moving/minimize/maximize a window class
Mouse button up/down Scroll wheel up/down Mouse move Mouse-out/in Keystroke pressed
![Page 19: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/19.jpg)
Dataset
events
sessionsdevelopersrec. time
windows
73818
197h13’ 54”5,052,386
13,691
![Page 20: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/20.jpg)
Research Questions
![Page 21: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/21.jpg)
Research Questions
1) What is the time spent in program understanding? What about the other activities?
![Page 22: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/22.jpg)
Research Questions
1) What is the time spent in program about the other
2) How much time do developers spend in fiddling with the user interface of the IDE?
![Page 23: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/23.jpg)
Research Questions
1) What is the time spent in program about the other
2) How much time do developers spend in fiddling with the interface
3) What is the impact of the fragmentation of the development flow?
![Page 24: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/24.jpg)
Interaction Histories
EventsMouse KeyboardWindow Meta
WindowsWorkspace Code BrowserFinder
t
Searchstarts
>RT
Searchends
DOI
ActiveWindows t
Windowactivated
Out / Inin the IDE
Windowactivated
W1 W2 W3 W2 W4
Methodsaved
>RT >RT
![Page 25: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/25.jpg)
EventsMouse KeyboardWindow Meta
WindowsWorkspace Code BrowserFinder
t
Searchstarts
>RT
Searchends
DOI
ActiveWindows t
Windowactivated
Out / Inin the IDE
Windowactivated
W1 W2 W3 W2 W4
Methodsaved
>RT >RT
No duration
Interaction Histories
![Page 26: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/26.jpg)
>RT
Windows W1 W2 W
Methodsaved
>RT >RT
EventsMouse KeyboardWindow Meta
WindowsWorkspace Code BrowserFinder
Interaction Histories
![Page 27: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/27.jpg)
The Reaction Time (0.15 to 1.5 seconds)>RT
Windows W1 W2 W
Methodsaved
>RT >RT
EventsMouse KeyboardWindow Meta
WindowsWorkspace Code BrowserFinder
How the Mind Works S. Pinker
W. W. Norton, 1997Interaction Histories
![Page 28: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/28.jpg)
>RT
Windows W1 W2 W
Methodsaved
>RT >RT
EventsMouse KeyboardWindow Meta
WindowsWorkspace Code BrowserFinder
Interaction Histories
![Page 29: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/29.jpg)
>RT
Windows W1 W2 W
Methodsaved
>RT >RT
MS1 MS2 KSKS1 KS2 KS3
EventsMouse KeyboardWindow Meta
WindowsWorkspace Code BrowserFinder
Sprees and ActivitiesMouse KeyboardActivity
Interaction Histories
![Page 30: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/30.jpg)
>RT
Windows W1 W2 W
Methodsaved
>RT >RT
MS1 MS2 KSKS1 KS2 KS3
A1 A3A2
EventsMouse KeyboardWindow Meta
WindowsWorkspace Code BrowserFinder
Sprees and ActivitiesMouse KeyboardActivity
Interaction Histories
![Page 31: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/31.jpg)
>RT
Windows W1 W2 W
Methodsaved
>RT >RT
MS1 MS2 KSKS1 KS2 KS3
A1 A3A2
EventsMouse KeyboardWindow Meta
WindowsWorkspace Code BrowserFinder
Sprees and ActivitiesMouse KeyboardActivity
Interaction Histories
5,052,386 events
31,609 activities
![Page 32: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/32.jpg)
>RT
Windows W1 W2 W
Methodsaved
>RT >RT
MS1 MS2 KSKS1 KS2 KS3
A1 A3Editing
EventsMouse KeyboardWindow Meta
WindowsWorkspace Code BrowserFinder
Sprees and ActivitiesMouse KeyboardActivity
A2
Interaction Histories
![Page 33: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/33.jpg)
>RT
Windows W1 W2 W
Methodsaved
>RT >RT
MS1 MS2 KSKS1 KS2 KS3
A1 A3Editing
Understanding
EventsMouse KeyboardWindow Meta
WindowsWorkspace Code BrowserFinder
Sprees and ActivitiesMouse KeyboardActivity
A2
Interaction Histories
![Page 34: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/34.jpg)
Time Components
Editing
Understanding
![Page 35: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/35.jpg)
Time Components
Editing
Understanding
Navigation
![Page 36: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/36.jpg)
Time Components
Editing
Understanding
Navigation
User Interface
![Page 37: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/37.jpg)
Time Components
Editing
Understanding
Navigation
User Interface
Time Spent Outside the IDE
![Page 38: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/38.jpg)
Results
5%
8%
14%
70%
4%
Editing
Understanding
Navigation
User Interface
Outside the IDE
![Page 39: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/39.jpg)
Time Components
Understanding
92%
1.5%
6.5%
Basic
Inspection
Mouse Drifting
![Page 40: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/40.jpg)
Time Components
Understanding
92%
1.5
6.5
Basic
Inspection
Mouse Drifting
A2
![Page 41: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/41.jpg)
Research Questions
RQ1
RQ2
![Page 42: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/42.jpg)
Research Questions
RQ1
RQ2
RQ3
![Page 43: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/43.jpg)
Fragmentation: Outside the IDE
vs.
![Page 44: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/44.jpg)
Fragmentation: Outside the IDE
vs.
Time spent outside the IDE
Understanding time
![Page 45: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/45.jpg)
Fragmentation: Outside the IDE
vs.
Time spent outside the IDE
Understanding time
PCC=0.46 p < 10-16
![Page 46: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/46.jpg)
Fragmentation: Outside the IDE
vs.
Time spent outside the IDE
Number of times outside the IDE
Understanding time
Understanding time
PCC=0.46 p < 10-16
![Page 47: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/47.jpg)
Fragmentation: Outside the IDE
vs.
Time spent outside the IDE
Number of times outside the IDE
Understanding time
Understanding time
PCC=0.46 p < 10-16
PCC=0.63 p < 10-16
![Page 48: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/48.jpg)
Fragmentation: Outside the IDE
vs.
Number of times outside the IDE
User Interface time
![Page 49: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/49.jpg)
Fragmentation: Outside the IDE
vs.
User Interface time
PCC=0.65 p < 10-16
Number of times outside the IDE
![Page 50: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/50.jpg)
Fragmentation: Outside the IDE
vs.
User Interface time
PCC=0.65 p < 10-16
The Plague Doctor
Tue, 12:15 @ ICPC
Number of times outside the IDE
![Page 51: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/51.jpg)
write
read
navigate
user interface
program understanding
Program understanding:Challenge for the 1990s
In the Program Understanding Project at IBM's Re-search Division, work began in late 1986 on toolswhich could help programmers in two key areas: staticanalysis (reading the code) and dynamic analysis (run-ning the code). The work is reported in the companionpapers by Cleveland and by Pazel in this issue. Thehistory and background which motivated and whichled to the start of this research on tools to assistprogrammers in understanding existing program codeis reported here.
" If the poor workman hates his tools, the goodworkman hates poor tools. The work of theworkingman is, in a sense, defined by his tool-witness the way in which the tool is so often taken tosymbolize the worker: the tri-squarefor the carpenter,the trowel for the mason, the transit for the surveyor,the camera for the photographer, the hammer for thelaborer, and the sickle for the farmer.
"Working with defective or poorly designed tools,even the finest craftsman is reduced to producinginferior work, and is thereby reduced to being aninferior craftsman. No craftsman, if he aspires to thehighest work in his profession, will accept such tools;and no employer, if he appreciates the quality ofwork, will ask the craftsman to accept them. "I
Today a variety of motivators are causing corpora-tions to invest in software tools to increase softwareproductivity, including: (1) increased demand forsoftware, (2) limited supply of software engineers, (3)rising expectations of support from software engi-neers, and (4) reduced hardware costs.' A key moti-
294 CORBI
by T. A. Corbi
vator for software tools in the 1990swill be the resultof having software evolve over the previous decadesfrom several-thousand-line, sequential programmingsystems into multimillion-line, multitasking "busi-ness-critical" systems. As the programming systemswritten in the 1960s and 1970s continue to mature,the focus for software tools will shift from tools thathelp develop new programming systems to tools thathelp us understand and enhance aging programmingsystems.
In the 1970s, the work of Belady and Lehman"?strongly suggested that all large programs wouldundergo significant change during the in-servicephase of their life cycle, regardless of the a prioriintentions of the organization. Clearly, they wereright. As an industry, we have continued to growand change our large software systems to:
• Remove defects• Address new requirements• Improve design and/or performance• Interface to new programs• Adjust to changes in data structures or formats• Exploit new hardware and software featuresAs we extended the lifetimes of our systems bycontinuing to modify and enhance them, we alsoe Copyright 1989by International BusinessMachines Corporation.Copying in printed form for private use is permitted withoutpayment of royalty provided that (I) each reproduction is donewithout alteration and (2) the Journalreference and IBMcopyrightnotice are included on the first page. The title and abstract, but noother portions, of this paper may be copied or distributed royaltyfree without further permission by computer-based and otherinformation-service systems. Permission to republish any otherportion of this paper must be obtained from the Editor.
IBM SYSTEMS JOURNAL, VOL 28, NO 2, 1989
…up to 50%
![Page 52: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/52.jpg)
write
read
navigate
user interface
program understanding
Program understanding:Challenge for the 1990s
In the Program Understanding Project at IBM's Re-search Division, work began in late 1986 on toolswhich could help programmers in two key areas: staticanalysis (reading the code) and dynamic analysis (run-ning the code). The work is reported in the companionpapers by Cleveland and by Pazel in this issue. Thehistory and background which motivated and whichled to the start of this research on tools to assistprogrammers in understanding existing program codeis reported here.
" If the poor workman hates his tools, the goodworkman hates poor tools. The work of theworkingman is, in a sense, defined by his tool-witness the way in which the tool is so often taken tosymbolize the worker: the tri-squarefor the carpenter,the trowel for the mason, the transit for the surveyor,the camera for the photographer, the hammer for thelaborer, and the sickle for the farmer.
"Working with defective or poorly designed tools,even the finest craftsman is reduced to producinginferior work, and is thereby reduced to being aninferior craftsman. No craftsman, if he aspires to thehighest work in his profession, will accept such tools;and no employer, if he appreciates the quality ofwork, will ask the craftsman to accept them. "I
Today a variety of motivators are causing corpora-tions to invest in software tools to increase softwareproductivity, including: (1) increased demand forsoftware, (2) limited supply of software engineers, (3)rising expectations of support from software engi-neers, and (4) reduced hardware costs.' A key moti-
294 CORBI
by T. A. Corbi
vator for software tools in the 1990swill be the resultof having software evolve over the previous decadesfrom several-thousand-line, sequential programmingsystems into multimillion-line, multitasking "busi-ness-critical" systems. As the programming systemswritten in the 1960s and 1970s continue to mature,the focus for software tools will shift from tools thathelp develop new programming systems to tools thathelp us understand and enhance aging programmingsystems.
In the 1970s, the work of Belady and Lehman"?strongly suggested that all large programs wouldundergo significant change during the in-servicephase of their life cycle, regardless of the a prioriintentions of the organization. Clearly, they wereright. As an industry, we have continued to growand change our large software systems to:
• Remove defects• Address new requirements• Improve design and/or performance• Interface to new programs• Adjust to changes in data structures or formats• Exploit new hardware and software featuresAs we extended the lifetimes of our systems bycontinuing to modify and enhance them, we alsoe Copyright 1989by International BusinessMachines Corporation.Copying in printed form for private use is permitted withoutpayment of royalty provided that (I) each reproduction is donewithout alteration and (2) the Journalreference and IBMcopyrightnotice are included on the first page. The title and abstract, but noother portions, of this paper may be copied or distributed royaltyfree without further permission by computer-based and otherinformation-service systems. Permission to republish any otherportion of this paper must be obtained from the Editor.
IBM SYSTEMS JOURNAL, VOL 28, NO 2, 1989
…up to 50%
![Page 53: I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]](https://reader034.vdocument.in/reader034/viewer/2022042701/55c01efcbb61ebdb098b45a4/html5/thumbnails/53.jpg)
“When developers stare at their screens without any movement: Don’t worry,
they’re ok, leave them alone.”
Roberto Minelli, Andrea Mocci, Michele Lanza REVEAL @ Faculty of Informatics — University of Lugano, Switzerland
@robertominelli