Upload
roberto-minelli
View
23
Download
0
Tags:
Embed Size (px)
Citation preview
TitleSub-titleVisualizing Developer Interactions
Roberto Minelli, Andrea Mocci, Michele Lanza and Lorenzo Baracchi REVEAL @ Faculty of Informatics - University of Lugano, Switzerland
@robertominelli
IDEs
Collections of tools and facilities to ease the manipulation of source code.
Eclipse
Idea
NetBeansXCode
Visual Studio
NavigateBrowse classes or methods Search code artifacts
EditAdd/edit classes or methods
InspectDebug a problem Observe the state of objects
IDE
NavigateBrowse classes or methods Search code artifacts
EditAdd/edit classes or methods
InspectDebug a problem Observe the state of objects
UIOpen/close windows
Resize/move windows
IDE
Step 1
# Sessions 177# Sub-sessions 496# Developers 7Avg. Duration 1h 16m 11s# Navigation 94,558# Inspect 6,635# Edit 10,083# Windows 15,695# UI Events 87,732
DFlowA non-intrusive interaction profiler for the Pharo IDE
Pre-processing
Step 2
DFlowA non-intrusive interaction profiler for the Pharo IDE
IDEInteraction data
Pre-processing
Step 2
DFlowA non-intrusive interaction profiler for the Pharo IDE
IDEInteraction data
Detection Idle Time
Cleanup Events
Estimation Duration
Pre-processing
Step 2
DFlowA non-intrusive interaction profiler for the Pharo IDE
IDEInteraction data
Understanding
Pre-processing
Step 2
DFlowA non-intrusive interaction profiler for the Pharo IDE
IDEInteraction data
Understanding
How do developers use the UI of the IDE?
Color LegendUI View
OpenActivate
Minimize / ExpandResize / MoveClose Minimized backbone
Activity TimelineNavigationInspection
EditUnderstanding
Vertical LinesExplicit pause (sub-session)Implicit pause (idle)
Commit
10:20 20:12
3:00 6:00 18:35 21:00 23:00 45:43 48:00 51:00 54:00 56:33
SessionStart
Duration ofpause between two
sub-sessions[d.hh:mm:ss]
Explicit pause(sub-sessions)
Implicit pause(idle time) Minimization
CommitSessionEnd
UI View
Activity Timeline
Color LegendUI View
OpenActivate
Minimize / ExpandResize / MoveClose Minimized backbone
Activity TimelineNavigationInspection
EditUnderstanding
Vertical LinesExplicit pause (sub-session)Implicit pause (idle)
Commit
10:20 20:12
3:00 6:00 18:35 21:00 23:00 45:43 48:00 51:00 54:00 56:33
TOPTr
acks
Color LegendUI View
OpenActivate
Minimize / ExpandResize / MoveClose Minimized backbone
Activity TimelineNavigationInspection
EditUnderstanding
Vertical LinesExplicit pause (sub-session)Implicit pause (idle)
Commit
10:20 20:12
3:00 6:00 18:35 21:00 23:00 45:43 48:00 51:00 54:00 56:33
Track 2 (container)
TOP
Color LegendUI View
OpenActivate
Minimize / ExpandResize / MoveClose Minimized backbone
Activity TimelineNavigationInspection
EditUnderstanding
Vertical LinesExplicit pause (sub-session)Implicit pause (idle)
Commit
10:20 20:12
3:00 6:00 18:35 21:00 23:00 45:43 48:00 51:00 54:00 56:33
Track 2 (container)
Main
TOP
Color LegendUI View
OpenActivate
Minimize / ExpandResize / MoveClose Minimized backbone
Activity TimelineNavigationInspection
EditUnderstanding
Vertical LinesExplicit pause (sub-session)Implicit pause (idle)
Commit
10:20 20:12
3:00 6:00 18:35 21:00 23:00 45:43 48:00 51:00 54:00 56:33
Track 2 (container)
Main
Short
TOP
Color LegendUI View
OpenActivate
Minimize / ExpandResize / MoveClose Minimized backbone
Activity TimelineNavigationInspection
EditUnderstanding
Vertical LinesExplicit pause (sub-session)Implicit pause (idle)
Commit
10:20 20:12
3:00 6:00 18:35 21:00 23:00 45:43 48:00 51:00 54:00 56:33
Track 2 (container)
Main
ShortWindow Interactions
Minimized
TOP
Color LegendUI View
OpenActivate
Minimize / ExpandResize / MoveClose Minimized backbone
Activity TimelineNavigationInspection
EditUnderstanding
Vertical LinesExplicit pause (sub-session)Implicit pause (idle)
Commit
10:20 20:12
3:00 6:00 18:35 21:00 23:00 45:43 48:00 51:00 54:00 56:33
Track 2 (container)
Main
ShortWindow Interactions
Edit
Minimized
TOP
Color LegendUI View
OpenActivate
Minimize / ExpandResize / MoveClose Minimized backbone
Activity TimelineNavigationInspection
EditUnderstanding
Vertical LinesExplicit pause (sub-session)Implicit pause (idle)
Commit
10:20 20:12
3:00 6:00 18:35 21:00 23:00 45:43 48:00 51:00 54:00 56:33
TOP
Development Activities
Curing the Window Plague
“Autumn Leaves: Curing the window plague in IDEs” D. Röthlisberger, O. Nierstrasz, S. Ducasse
Dominant Tracks
A track with a privileged role in the development. i.e., with predominant focus time and
concentration of edit events.
TOP
BOTTOM
Dominant Tracks
A track with a privileged role in the development. i.e., with predominant focus time and
concentration of edit events.
- Single Track - Multi Track - Fragmented Track
TOP
BOTTOM
Dominant Tracks
A track with a privileged role in the development. i.e., with predominant focus time and
concentration of edit events.
- Single Track - Multi Track - Fragmented Track
TOP
BOTTOM
Dominant Tracks
A track with a privileged role in the development. i.e., with predominant focus time and
concentration of edit events.
- Single Track - Multi Track - Fragmented Track
TOP
BOTTOM
Dominant Tracks Track Flow
A track with a privileged role in the development. i.e., with predominant focus time and
concentration of edit events.
Describes the way the developer alternates from
different window track
- Single Track - Multi Track - Fragmented Track
Dominant Tracks Track Flow
A track with a privileged role in the development. i.e., with predominant focus time and
concentration of edit events.
Describes the way the developer alternates from
different window track
- Single Track - Multi Track - Fragmented Track
- Sequential Flow - Ping-Pong
Dominant Tracks Track Flow
A track with a privileged role in the development. i.e., with predominant focus time and
concentration of edit events.
Describes the way the developer alternates from
different window track
- Sequential Flow - Ping-Pong
- Single Track - Multi Track - Fragmented Track
Dominant Tracks Track Flow
NC 7%
Fragmented 40%
Single-Track 39%
Multi-Track 14%
NC 7%
Ping-Pong 16%
Sequential 76%
Dominant Tracks Track Flow
>50% sessions are Single-Track
>65% sessions are Fragmented
All prefer Sequential flow
Has 43% Ping-Pong sessions
TitleSub-titleVisualizing Developer Interactions
Roberto Minelli, Andrea Mocci, Michele Lanza and Lorenzo Baracchi REVEAL @ Faculty of Informatics - University of Lugano, Switzerland
TitleSub-titleVisualizing Developer Interactions
Roberto Minelli, Andrea Mocci, Michele Lanza and Lorenzo Baracchi REVEAL @ Faculty of Informatics - University of Lugano, Switzerland
DFlowA non-intrusive interaction profiler for the Pharo IDE
IDEInteraction data Record
Store
Step 1
TitleSub-titleVisualizing Developer Interactions
Roberto Minelli, Andrea Mocci, Michele Lanza and Lorenzo Baracchi REVEAL @ Faculty of Informatics - University of Lugano, Switzerland
DFlowA non-intrusive interaction profiler for the Pharo IDE
IDEInteraction data Record
Store
Step 1Color LegendUI View
OpenActivate
Minimize / ExpandResize / MoveClose Minimized backbone
Activity TimelineNavigationInspection
EditUnderstanding
Vertical LinesExplicit pause (sub-session)Implicit pause (idle)
Commit
10:20 20:12
3:00 6:00 18:35 21:00 23:00 45:43 48:00 51:00 54:00 56:33
SessionStart
Duration ofpause between two
sub-sessions[d.hh:mm:ss]
Explicit pause(sub-sessions)
Implicit pause(idle time) Minimization
CommitSessionEnd
UI View
Activity Timeline
TitleSub-titleVisualizing Developer Interactions
Roberto Minelli, Andrea Mocci, Michele Lanza and Lorenzo Baracchi REVEAL @ Faculty of Informatics - University of Lugano, Switzerland
How do developers use the UI of an IDE?
DFlowA non-intrusive interaction profiler for the Pharo IDE
IDEInteraction data Record
Store
Step 1Color LegendUI View
OpenActivate
Minimize / ExpandResize / MoveClose Minimized backbone
Activity TimelineNavigationInspection
EditUnderstanding
Vertical LinesExplicit pause (sub-session)Implicit pause (idle)
Commit
10:20 20:12
3:00 6:00 18:35 21:00 23:00 45:43 48:00 51:00 54:00 56:33
SessionStart
Duration ofpause between two
sub-sessions[d.hh:mm:ss]
Explicit pause(sub-sessions)
Implicit pause(idle time) Minimization
CommitSessionEnd
UI View
Activity Timeline
TitleSub-titleVisualizing Developer Interactions
Roberto Minelli, Andrea Mocci, Michele Lanza and Lorenzo Baracchi REVEAL @ Faculty of Informatics - University of Lugano, Switzerland
How do developers use the UI of an IDE?
DFlowA non-intrusive interaction profiler for the Pharo IDE
IDEInteraction data Record
Store
Step 1Color LegendUI View
OpenActivate
Minimize / ExpandResize / MoveClose Minimized backbone
Activity TimelineNavigationInspection
EditUnderstanding
Vertical LinesExplicit pause (sub-session)Implicit pause (idle)
Commit
10:20 20:12
3:00 6:00 18:35 21:00 23:00 45:43 48:00 51:00 54:00 56:33
SessionStart
Duration ofpause between two
sub-sessions[d.hh:mm:ss]
Explicit pause(sub-sessions)
Implicit pause(idle time) Minimization
CommitSessionEnd
UI View
Activity Timeline
Telling Development Stories
TitleSub-titleVisualizing Developer Interactions
Roberto Minelli, Andrea Mocci, Michele Lanza and Lorenzo Baracchi REVEAL @ Faculty of Informatics - University of Lugano, Switzerland
How do developers use the UI of an IDE?
DFlowA non-intrusive interaction profiler for the Pharo IDE
IDEInteraction data Record
Store
Step 1Color LegendUI View
OpenActivate
Minimize / ExpandResize / MoveClose Minimized backbone
Activity TimelineNavigationInspection
EditUnderstanding
Vertical LinesExplicit pause (sub-session)Implicit pause (idle)
Commit
10:20 20:12
3:00 6:00 18:35 21:00 23:00 45:43 48:00 51:00 54:00 56:33
SessionStart
Duration ofpause between two
sub-sessions[d.hh:mm:ss]
Explicit pause(sub-sessions)
Implicit pause(idle time) Minimization
CommitSessionEnd
UI View
Activity Timeline
Telling Development Stories
Categorizing Development Sessions
@robertominelli