SlideShare a Scribd company logo
1 of 53
Download to read offline
I Know What You Did Last Summer
An Investigation of How Developers Spend Their Time
Roberto Minelli, Andrea Mocci, Michele Lanza
REVEAL @ Faculty of Informatics — University of Lugano, Switzerland
@robertominelli
write
write
read
write
read
navigate
write
read
navigate
user interface
write
read
navigate
user interface
program
understanding
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 trowelfor the mason, the transit for the surveyor,the camera for the photographer, the hammerfor 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, ifhe 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-
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 features
As we extended the lifetimes of our systems bycontinuing to modify and enhance them, we also
e 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 IBM copyrightnotice 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.
…up to 50%
write
read
navigate
user interface
program
understanding
workman hates his tools, the good
hates poor tools. The work of the
in a sense, defined by his tool-
in which the tool is so often taken to
orker:the tri-squarefor the carpenter,
e mason, the transit for the surveyor,
he photographer, the hammerfor the
sickle for the farmer.
defective or poorly designed tools,
craftsman is reduced to producing
nd is thereby reduced to being an
n. No craftsman, ifhe aspires to the
is profession, will accept such tools;
r, if he appreciates the quality of
e craftsman to accept them. "I
of motivators are causing corpora-
software tools to increase software
uding: (1) increased demand for
ed supply of software engineers, (3)
s of support from software engi-
uced hardware costs.' A key moti-
hat all large programsundergo significant change during the inphase of their life cycle, regardless of the aintentions of the organization. Clearly, theright. As an industry, we have continued tand 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 form• Exploit new hardware and software feature
As we extended the lifetimes of our systecontinuing to modify and enhance them, w
e Copyright 1989by International BusinessMachines CorpoCopying in printed form for private use is permittedpayment of royalty provided that (I) each reproductionwithout alteration and (2)the Journalreference and IBM conotice are included on the first page. The title and abstract,other portions, of this paper may be copied or distributedfree without further permission by computer-based andinformation-service systems. Permission to republish anyportion of this paper must be obtained from the Editor.
write
read
navigate
user interface
program
understanding
workman hates his tools, the good
hates poor tools. The work of the
in a sense, defined by his tool-
in which the tool is so often taken to
orker:the tri-squarefor the carpenter,
e mason, the transit for the surveyor,
he photographer, the hammerfor the
sickle for the farmer.
defective or poorly designed tools,
craftsman is reduced to producing
nd is thereby reduced to being an
n. No craftsman, ifhe aspires to the
is profession, will accept such tools;
r, if he appreciates the quality of
e craftsman to accept them. "I
of motivators are causing corpora-
software tools to increase software
uding: (1) increased demand for
ed supply of software engineers, (3)
s of support from software engi-
uced hardware costs.' A key moti-
hat all large programsundergo significant change during the inphase of their life cycle, regardless of the aintentions of the organization. Clearly, theright. As an industry, we have continued tand 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 form• Exploit new hardware and software feature
As we extended the lifetimes of our systecontinuing to modify and enhance them, w
e Copyright 1989by International BusinessMachines CorpoCopying in printed form for private use is permittedpayment of royalty provided that (I) each reproductionwithout alteration and (2)the Journalreference and IBM conotice are included on the first page. The title and abstract,other portions, of this paper may be copied or distributedfree without further permission by computer-based andinformation-service systems. Permission to republish anyportion of this paper must be obtained from the Editor.
Does this myth hold?
The Pharo IDE
Enter some B$ about Pharò
The Pharo IDE: Debugger
Enter some B$ about Pharò
Enter some B$ about Pharò
The Pharo IDE: Code Browser
IDE Interaction Data
IDE developer
interactions
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
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
DFlow
Meta
Opening 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
DFlow
Meta
Opening 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
DFlow
Meta
Opening 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
Dataset
events
sessions
developers
rec. time
windows
738
18
197h13’ 54”
5,052,386
13,691
Research
Questions
Research
Questions
1)  What is the time spent in
program understanding? What
about the other activities?
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?
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?
Interaction Histories
Events
Mouse Keyboard
Window Meta
Windows
Workspace Code Browser
Finder
t
Search
starts
>RT
Search
ends
DOI
Active
Windows t
Window
activated
Out / In
in the IDE
Window
activated
W1 W2 W3 W2 W4
Method
saved
>RT >RT
Events
Mouse Keyboard
Window Meta
Windows
Workspace Code Browser
Finder
t
Search
starts
>RT
Search
ends
DOI
Active
Windows t
Window
activated
Out / In
in the IDE
Window
activated
W1 W2 W3 W2 W4
Method
saved
>RT >RT
No duration
Interaction Histories
>RT
Windows W1 W2
>RT >RT
Events
Mouse Keyboard
Window Meta
Windows
Workspace Code Browser
Finder
Interaction Histories
The Reaction Time (0.15 to 1.5 seconds)
>RT
Windows W1 W2
>RT >RT
Events
Mouse Keyboard
Window Meta
Windows
Workspace Code Browser
Finder
How the Mind Works
S. Pinker
W. W. Norton, 1997Interaction Histories
>RT
Windows W1 W2
>RT >RT
Events
Mouse Keyboard
Window Meta
Windows
Workspace Code Browser
Finder
Interaction Histories
>RT
Windows W1 W2
>RT >RT
MS1 MS2KS1 KS2 KS3
Events
Mouse Keyboard
Window Meta
Windows
Workspace Code Browser
Finder
Sprees and Activities
Mouse Keyboard
Activity
Interaction Histories
>RT
Windows W1 W2
>RT >RT
MS1 MS2KS1 KS2 KS3
A1 A3A2
Events
Mouse Keyboard
Window Meta
Windows
Workspace Code Browser
Finder
Sprees and Activities
Mouse Keyboard
Activity
Interaction Histories
>RT
Windows W1 W2
>RT >RT
MS1 MS2KS1 KS2 KS3
A1 A3A2
Events
Mouse Keyboard
Window Meta
Windows
Workspace Code Browser
Finder
Sprees and Activities
Mouse Keyboard
Activity
Interaction Histories
5,052,386
events
31,609
activities
>RT
Windows W1 W2
>RT >RT
MS1 MS2KS1 KS2 KS3
A1 A3
Editing
Events
Mouse Keyboard
Window Meta
Windows
Workspace Code Browser
Finder
Sprees and Activities
Mouse Keyboard
Activity
A2
Interaction Histories
>RT
Windows W1 W2
>RT >RT
MS1 MS2KS1 KS2 KS3
A1 A3
Editing
Understanding
Events
Mouse Keyboard
Window Meta
Windows
Workspace Code Browser
Finder
Sprees and Activities
Mouse Keyboard
Activity
A2
Interaction Histories
Time
Components
Editing
Understanding
Time
Components
Editing
Understanding
Navigation
Time
Components
Editing
Understanding
Navigation
User Interface
Time
Components
Editing
Understanding
Navigation
User Interface
Time Spent Outside the IDE
Results
5%
8%
14%
70%
4%
Editing
Understanding
Navigation
User Interface
Outside the IDE
Time
Components
Understanding
92%
1.5%
6.5%
Basic
Inspection
Mouse Drifting
Time
Components
Understanding
92%
1.5
6.5
Basic
Inspection
Mouse Drifting
A2
Research
Questions
RQ1
RQ2
Research
Questions
RQ1
RQ2
RQ3
Fragmentation:
Outside the IDE
vs.
Fragmentation:
Outside the IDE
vs.
Time spent
outside the IDE
Understanding
time
Fragmentation:
Outside the IDE
vs.
Time spent
outside the IDE
Understanding
time
PCC=0.46
p < 10-16
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
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
Fragmentation:
Outside the IDE
vs.
Number of times
outside the IDE
User Interface
time
Fragmentation:
Outside the IDE
vs.
User Interface
time
PCC=0.65
p < 10-16
Number of times
outside the IDE
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
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 trowelfor the mason, the transit for the surveyor,the camera for the photographer, the hammerfor 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, ifhe 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-
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 features
As we extended the lifetimes of our systems bycontinuing to modify and enhance them, we also
e 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 IBM copyrightnotice 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.
…up to 50%
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 trowelfor the mason, the transit for the surveyor,the camera for the photographer, the hammerfor 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, ifhe 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-
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 features
As we extended the lifetimes of our systems bycontinuing to modify and enhance them, we also
e 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 IBM copyrightnotice 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.
…up to 50%
“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

More Related Content

Similar to I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]

Annotated Bibliography On Unreliable Software
Annotated Bibliography On Unreliable SoftwareAnnotated Bibliography On Unreliable Software
Annotated Bibliography On Unreliable Software
Mary Brown
 
Software application
Software applicationSoftware application
Software application
ACCA Global
 
Simulation Modelling Practice and Theory 47 (2014) 28–45Cont.docx
Simulation Modelling Practice and Theory 47 (2014) 28–45Cont.docxSimulation Modelling Practice and Theory 47 (2014) 28–45Cont.docx
Simulation Modelling Practice and Theory 47 (2014) 28–45Cont.docx
edgar6wallace88877
 

Similar to I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015] (20)

software engineering.docx
software engineering.docxsoftware engineering.docx
software engineering.docx
 
International Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentInternational Journal of Engineering Research and Development
International Journal of Engineering Research and Development
 
Chapter 3
Chapter 3Chapter 3
Chapter 3
 
Software Engineering - Basics
Software Engineering - BasicsSoftware Engineering - Basics
Software Engineering - Basics
 
Annotated Bibliography On Unreliable Software
Annotated Bibliography On Unreliable SoftwareAnnotated Bibliography On Unreliable Software
Annotated Bibliography On Unreliable Software
 
software
softwaresoftware
software
 
Software application
Software applicationSoftware application
Software application
 
Intro
IntroIntro
Intro
 
A todo esto ¿Qué es una arquitectura?
A todo esto ¿Qué es una arquitectura?A todo esto ¿Qué es una arquitectura?
A todo esto ¿Qué es una arquitectura?
 
Introduction to Software Reverse Engineering
Introduction to Software Reverse EngineeringIntroduction to Software Reverse Engineering
Introduction to Software Reverse Engineering
 
IRJET- Build a Secure Web based Code Editor for C Programming Language
IRJET-  	  Build a Secure Web based Code Editor for C Programming LanguageIRJET-  	  Build a Secure Web based Code Editor for C Programming Language
IRJET- Build a Secure Web based Code Editor for C Programming Language
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
 
Computers in management
Computers in managementComputers in management
Computers in management
 
Introduction to Software Engineering.ppt
Introduction to Software Engineering.pptIntroduction to Software Engineering.ppt
Introduction to Software Engineering.ppt
 
Spm unit1
Spm unit1Spm unit1
Spm unit1
 
Simulation Modelling Practice and Theory 47 (2014) 28–45Cont.docx
Simulation Modelling Practice and Theory 47 (2014) 28–45Cont.docxSimulation Modelling Practice and Theory 47 (2014) 28–45Cont.docx
Simulation Modelling Practice and Theory 47 (2014) 28–45Cont.docx
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 

More from Roberto Minelli

Interaction-Aware Development Environments
Interaction-Aware Development EnvironmentsInteraction-Aware Development Environments
Interaction-Aware Development Environments
Roberto Minelli
 

More from Roberto Minelli (19)

SYN: Ultra-Scale
Software Evolution Comprehension [ICPC 2023]
SYN: Ultra-Scale
Software Evolution Comprehension [ICPC 2023]SYN: Ultra-Scale
Software Evolution Comprehension [ICPC 2023]
SYN: Ultra-Scale
Software Evolution Comprehension [ICPC 2023]
 
DFlow is dead. Long live Tako!
DFlow is dead. Long live Tako!DFlow is dead. Long live Tako!
DFlow is dead. Long live Tako!
 
Traduzioni: Ieri, Oggi e Domani

Traduzioni: Ieri, Oggi e Domani
Traduzioni: Ieri, Oggi e Domani

Traduzioni: Ieri, Oggi e Domani

 
Come Creare un Talk in Stile TED

Come Creare un Talk in Stile TED
Come Creare un Talk in Stile TED

Come Creare un Talk in Stile TED

 
Interaction-Aware Development Environments
Interaction-Aware Development EnvironmentsInteraction-Aware Development Environments
Interaction-Aware Development Environments
 
Visualizing the Evolution of Working Sets
Visualizing the Evolution of Working SetsVisualizing the Evolution of Working Sets
Visualizing the Evolution of Working Sets
 
Taming the IDE with Fine-Grained Interaction Data
Taming the IDE with Fine-Grained Interaction Data    Taming the IDE with Fine-Grained Interaction Data
Taming the IDE with Fine-Grained Interaction Data
 
Measuring Navigation Efficiency in the IDE
Measuring Navigation Efficiency in the IDEMeasuring Navigation Efficiency in the IDE
Measuring Navigation Efficiency in the IDE
 
Mining IDE Interaction Data
Mining IDE Interaction DataMining IDE Interaction Data
Mining IDE Interaction Data
 
Interaction-Aware Development Environments
 Interaction-Aware Development Environments Interaction-Aware Development Environments
Interaction-Aware Development Environments
 
The Plague Doctor: A Promising Cure for the Window Plague
The Plague Doctor: A Promising Cure for the Window PlagueThe Plague Doctor: A Promising Cure for the Window Plague
The Plague Doctor: A Promising Cure for the Window Plague
 
Free Hugs — Praising developers for their actions [ICSE2015]
Free Hugs — Praising developers for their actions  [ICSE2015]Free Hugs — Praising developers for their actions  [ICSE2015]
Free Hugs — Praising developers for their actions [ICSE2015]
 
Quantifying Program Comprehension with Interaction Data [QSIC2014]
Quantifying Program Comprehension with Interaction Data [QSIC2014]Quantifying Program Comprehension with Interaction Data [QSIC2014]
Quantifying Program Comprehension with Interaction Data [QSIC2014]
 
Visualizing Developer Interactions [VISSOFT2014]
Visualizing Developer Interactions [VISSOFT2014]Visualizing Developer Interactions [VISSOFT2014]
Visualizing Developer Interactions [VISSOFT2014]
 
Visual Storytelling of Development Sessions [ICSME2014]
Visual Storytelling of Development Sessions [ICSME2014] Visual Storytelling of Development Sessions [ICSME2014]
Visual Storytelling of Development Sessions [ICSME2014]
 
Towards Self-Adaptive IDEs [ICSME2014]
Towards Self-Adaptive IDEs [ICSME2014]Towards Self-Adaptive IDEs [ICSME2014]
Towards Self-Adaptive IDEs [ICSME2014]
 
Visualizing the Workflow of Developers [VISSOFT2013]
Visualizing the Workflow of Developers [VISSOFT2013]Visualizing the Workflow of Developers [VISSOFT2013]
Visualizing the Workflow of Developers [VISSOFT2013]
 
SAMOA – A Visual Software Analytics Platform for Mobile Applications [ICSM2013]
SAMOA – A Visual Software Analytics Platform for Mobile Applications [ICSM2013]SAMOA – A Visual Software Analytics Platform for Mobile Applications [ICSM2013]
SAMOA – A Visual Software Analytics Platform for Mobile Applications [ICSM2013]
 
Software Analytics for Mobile Applications – Insights & Lessons Learned [CSMR...
Software Analytics for Mobile Applications – Insights & Lessons Learned [CSMR...Software Analytics for Mobile Applications – Insights & Lessons Learned [CSMR...
Software Analytics for Mobile Applications – Insights & Lessons Learned [CSMR...
 

Recently uploaded

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 

Recently uploaded (20)

The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodology
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 

I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]

  • 1. I Know What You Did Last Summer An Investigation of How Developers Spend Their Time Roberto Minelli, Andrea Mocci, Michele Lanza REVEAL @ Faculty of Informatics — University of Lugano, Switzerland @robertominelli
  • 7. 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 trowelfor the mason, the transit for the surveyor,the camera for the photographer, the hammerfor 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, ifhe 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- 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 features As we extended the lifetimes of our systems bycontinuing to modify and enhance them, we also e 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 IBM copyrightnotice 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. …up to 50%
  • 8. write read navigate user interface program understanding workman hates his tools, the good hates poor tools. The work of the in a sense, defined by his tool- in which the tool is so often taken to orker:the tri-squarefor the carpenter, e mason, the transit for the surveyor, he photographer, the hammerfor the sickle for the farmer. defective or poorly designed tools, craftsman is reduced to producing nd is thereby reduced to being an n. No craftsman, ifhe aspires to the is profession, will accept such tools; r, if he appreciates the quality of e craftsman to accept them. "I of motivators are causing corpora- software tools to increase software uding: (1) increased demand for ed supply of software engineers, (3) s of support from software engi- uced hardware costs.' A key moti- hat all large programsundergo significant change during the inphase of their life cycle, regardless of the aintentions of the organization. Clearly, theright. As an industry, we have continued tand 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 form• Exploit new hardware and software feature As we extended the lifetimes of our systecontinuing to modify and enhance them, w e Copyright 1989by International BusinessMachines CorpoCopying in printed form for private use is permittedpayment of royalty provided that (I) each reproductionwithout alteration and (2)the Journalreference and IBM conotice are included on the first page. The title and abstract,other portions, of this paper may be copied or distributedfree without further permission by computer-based andinformation-service systems. Permission to republish anyportion of this paper must be obtained from the Editor.
  • 9. write read navigate user interface program understanding workman hates his tools, the good hates poor tools. The work of the in a sense, defined by his tool- in which the tool is so often taken to orker:the tri-squarefor the carpenter, e mason, the transit for the surveyor, he photographer, the hammerfor the sickle for the farmer. defective or poorly designed tools, craftsman is reduced to producing nd is thereby reduced to being an n. No craftsman, ifhe aspires to the is profession, will accept such tools; r, if he appreciates the quality of e craftsman to accept them. "I of motivators are causing corpora- software tools to increase software uding: (1) increased demand for ed supply of software engineers, (3) s of support from software engi- uced hardware costs.' A key moti- hat all large programsundergo significant change during the inphase of their life cycle, regardless of the aintentions of the organization. Clearly, theright. As an industry, we have continued tand 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 form• Exploit new hardware and software feature As we extended the lifetimes of our systecontinuing to modify and enhance them, w e Copyright 1989by International BusinessMachines CorpoCopying in printed form for private use is permittedpayment of royalty provided that (I) each reproductionwithout alteration and (2)the Journalreference and IBM conotice are included on the first page. The title and abstract,other portions, of this paper may be copied or distributedfree without further permission by computer-based andinformation-service systems. Permission to republish anyportion of this paper must be obtained from the Editor. Does this myth hold?
  • 10. The Pharo IDE Enter some B$ about Pharò
  • 11. The Pharo IDE: Debugger Enter some B$ about Pharò
  • 12. Enter some B$ about Pharò The Pharo IDE: Code Browser
  • 13. IDE Interaction Data IDE developer interactions
  • 14. 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
  • 15. 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
  • 16. DFlow Meta Opening 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
  • 17. DFlow Meta Opening 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
  • 18. DFlow Meta Opening 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
  • 21. Research Questions 1)  What is the time spent in program understanding? What about the other activities?
  • 22. 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?
  • 23. 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?
  • 24. Interaction Histories Events Mouse Keyboard Window Meta Windows Workspace Code Browser Finder t Search starts >RT Search ends DOI Active Windows t Window activated Out / In in the IDE Window activated W1 W2 W3 W2 W4 Method saved >RT >RT
  • 25. Events Mouse Keyboard Window Meta Windows Workspace Code Browser Finder t Search starts >RT Search ends DOI Active Windows t Window activated Out / In in the IDE Window activated W1 W2 W3 W2 W4 Method saved >RT >RT No duration Interaction Histories
  • 26. >RT Windows W1 W2 >RT >RT Events Mouse Keyboard Window Meta Windows Workspace Code Browser Finder Interaction Histories
  • 27. The Reaction Time (0.15 to 1.5 seconds) >RT Windows W1 W2 >RT >RT Events Mouse Keyboard Window Meta Windows Workspace Code Browser Finder How the Mind Works S. Pinker W. W. Norton, 1997Interaction Histories
  • 28. >RT Windows W1 W2 >RT >RT Events Mouse Keyboard Window Meta Windows Workspace Code Browser Finder Interaction Histories
  • 29. >RT Windows W1 W2 >RT >RT MS1 MS2KS1 KS2 KS3 Events Mouse Keyboard Window Meta Windows Workspace Code Browser Finder Sprees and Activities Mouse Keyboard Activity Interaction Histories
  • 30. >RT Windows W1 W2 >RT >RT MS1 MS2KS1 KS2 KS3 A1 A3A2 Events Mouse Keyboard Window Meta Windows Workspace Code Browser Finder Sprees and Activities Mouse Keyboard Activity Interaction Histories
  • 31. >RT Windows W1 W2 >RT >RT MS1 MS2KS1 KS2 KS3 A1 A3A2 Events Mouse Keyboard Window Meta Windows Workspace Code Browser Finder Sprees and Activities Mouse Keyboard Activity Interaction Histories 5,052,386 events 31,609 activities
  • 32. >RT Windows W1 W2 >RT >RT MS1 MS2KS1 KS2 KS3 A1 A3 Editing Events Mouse Keyboard Window Meta Windows Workspace Code Browser Finder Sprees and Activities Mouse Keyboard Activity A2 Interaction Histories
  • 33. >RT Windows W1 W2 >RT >RT MS1 MS2KS1 KS2 KS3 A1 A3 Editing Understanding Events Mouse Keyboard Window Meta Windows Workspace Code Browser Finder Sprees and Activities Mouse Keyboard Activity A2 Interaction Histories
  • 44. Fragmentation: Outside the IDE vs. Time spent outside the IDE Understanding time
  • 45. Fragmentation: Outside the IDE vs. Time spent outside the IDE Understanding time PCC=0.46 p < 10-16
  • 46. 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
  • 47. 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
  • 48. Fragmentation: Outside the IDE vs. Number of times outside the IDE User Interface time
  • 49. Fragmentation: Outside the IDE vs. User Interface time PCC=0.65 p < 10-16 Number of times outside the IDE
  • 50. 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
  • 51. 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 trowelfor the mason, the transit for the surveyor,the camera for the photographer, the hammerfor 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, ifhe 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- 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 features As we extended the lifetimes of our systems bycontinuing to modify and enhance them, we also e 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 IBM copyrightnotice 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. …up to 50%
  • 52. 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 trowelfor the mason, the transit for the surveyor,the camera for the photographer, the hammerfor 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, ifhe 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- 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 features As we extended the lifetimes of our systems bycontinuing to modify and enhance them, we also e 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 IBM copyrightnotice 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. …up to 50%
  • 53. “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