60
Title Sub-title Visualizing Developer Interactions Roberto Minelli, Andrea Mocci, Michele Lanza and Lorenzo Baracchi REVEAL @ Faculty of Informatics - University of Lugano, Switzerland @robertominelli

Visualizing Developer Interactions [VISSOFT2014]

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

IDEsEclipse

Idea

NetBeansXCode

Visual Studio

IDEs

Collections of tools and facilities to ease the manipulation of source code.

Eclipse

Idea

NetBeansXCode

Visual Studio

Eclipse

How do developers use the UI of an IDE?

Interaction data

IDE

NavigateBrowse classes or methods Search code artifacts

IDE

NavigateBrowse classes or methods Search code artifacts

EditAdd/edit classes or methods

IDE

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

Interaction data

IDE

Interaction data

IDE

Visualization

+

DFlowA non-intrusive interaction profiler for the Pharo IDE

IDEInteraction data

Step 1

DFlowA non-intrusive interaction profiler for the Pharo IDE

IDEInteraction data

Step 1

DFlowA non-intrusive interaction profiler for the Pharo IDE

IDEInteraction data Record

Step 1

DFlowA non-intrusive interaction profiler for the Pharo IDE

IDEInteraction data Record

Store

Step 1

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

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

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

Telling Development Stories

Home Sweet Home

Home Sweet Home

Home Sweet Home

Curing the Window Plague

Curing the Window Plague

“Autumn Leaves: Curing the window plague in IDEs” D. Röthlisberger, O. Nierstrasz, S. Ducasse

Curing the Window Plague

The Inspection Valley

The Inspection Valley

The Inspection Valley

Categorizing Development Sessions

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%

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

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