Taming the IDE with Fine-Grained Interaction Data

75
Taming the IDE with fine-grained interaction da ta Roberto Minelli , Andrea Mocci, Romain Robbes, Michele Lanza REVEAL @ Faculty of Informatics – Università della Svizzera italiana PLEIAD @ Departamento de Ciencias de la Computación – University of Chile @robertominell i

Transcript of Taming the IDE with Fine-Grained Interaction Data

Page 1: Taming the IDE with Fine-Grained Interaction Data

Taming the IDE with fine-grained interaction data

Roberto Minelli, Andrea Mocci, Romain Robbes, Michele Lanza

REVEAL @ Faculty of Informatics – Università della Svizzera italiana PLEIAD @ Departamento de Ciencias de la Computación – University of Chile

@robertominelli

Page 2: Taming the IDE with Fine-Grained Interaction Data

Footprints: History-rich tools for information foraging A. Wexelblat, P. Maes

SIGCHI 1999, pp. 270–277

“The information path obtained from navigation in an information space reveals the user’s mental model of the system.”

Page 3: Taming the IDE with Fine-Grained Interaction Data

An exploratory study of how developers seek, relate, and collect relevant information during software maintenance tasks

A. J. Ko, B. A. Myers, M. J. Coblenz, H. H. Aung IEEE TSE 2006, vol. 32, no. 12, pp. 971–987

“Developers spend 35% of their time navigating the source code in search for information.”

Page 4: Taming the IDE with Fine-Grained Interaction Data
Page 5: Taming the IDE with Fine-Grained Interaction Data

tabs-based

Page 6: Taming the IDE with Fine-Grained Interaction Data

tabs-based

windows-based

Page 7: Taming the IDE with Fine-Grained Interaction Data

tabs-based

windows-based novel paradigms

Page 8: Taming the IDE with Fine-Grained Interaction Data

Autumn Leaves: Curing the Window Plague in IDEs D. Roethlisberger, O. Nierstrasz, S. Ducasse

WCRE 2009, 237–246

“Developers are forced to open views on numerous source artifacts […], leading to a crowded workspace.”

Page 9: Taming the IDE with Fine-Grained Interaction Data

How chaotic is the UI of the IDE?

Page 10: Taming the IDE with Fine-Grained Interaction Data

How chaotic is the UI of the IDE?

Page 11: Taming the IDE with Fine-Grained Interaction Data

Nonlinear dynamics and chaos. J. M. T. Thompson and H. B. Stewart

John Wiley & Sons, 2002

DISCLAIMER

Our “chaos” has nothing to do with “deterministic chaos”

Page 12: Taming the IDE with Fine-Grained Interaction Data

developer IDE

Page 13: Taming the IDE with Fine-Grained Interaction Data

developer IDE

navigate

Page 14: Taming the IDE with Fine-Grained Interaction Data

developer IDE

edit

Page 15: Taming the IDE with Fine-Grained Interaction Data

developer IDE

inspect

Page 16: Taming the IDE with Fine-Grained Interaction Data

developer IDE

user input

Page 17: Taming the IDE with Fine-Grained Interaction Data

developer IDE

user interface

Page 18: Taming the IDE with Fine-Grained Interaction Data

developer

nav

igat

e

user

inte

rfac

e

use

r in

pu

t

edit

insp

ect

IDE

interaction data

Page 19: Taming the IDE with Fine-Grained Interaction Data

developer

nav

igat

e

user

inte

rfac

e

use

r in

pu

t

edit

insp

ect

IDE

I know what you did last summer: An investigation of how developers spend their time

R. Minelli, A. Mocci, M. Lanza ICPC 2015, pp. 25–35

DFlow

interaction data

Page 20: Taming the IDE with Fine-Grained Interaction Data

1,631 sessions

17 developers

28' 22" avg. session duration

Dataset

Page 21: Taming the IDE with Fine-Grained Interaction Data

1,631 sessions

17 developers

28' 22" avg. session duration

>770h total time

40,140 # of windows

Dataset

Page 22: Taming the IDE with Fine-Grained Interaction Data

1,631 sessions

17 developers

28' 22" avg. session duration

>770h total time

40,140 # of windows

> 102h User Interface Time

> 595h Understanding Time

DatasetI know what you did last summer:

An investigation of how developers spend their time R. Minelli, A. Mocci, M. Lanza

ICPC 2015, pp. 25–35

Page 23: Taming the IDE with Fine-Grained Interaction Data

How chaotic is the UI of the IDE?

Page 24: Taming the IDE with Fine-Grained Interaction Data

Space Occupancy Metrics

Page 25: Taming the IDE with Fine-Grained Interaction Data

Space Occupancy Metrics

Occupied

Free

Focus

Needed

Space Metrics

Page 26: Taming the IDE with Fine-Grained Interaction Data

Space Occupancy Metrics

Occupied

Free

Focus

Needed

Space

Depth

Space Metrics Overlapping Metrics

Weighted

Page 27: Taming the IDE with Fine-Grained Interaction Data

Space Occupancy Metrics

Page 28: Taming the IDE with Fine-Grained Interaction Data

Space Occupancy Metrics

Screen Space

Page 29: Taming the IDE with Fine-Grained Interaction Data

Free Space

Space Occupancy Metrics

Screen Space

Page 30: Taming the IDE with Fine-Grained Interaction Data

No Overlapping

Free Space

Space Occupancy Metrics

Screen Space

Page 31: Taming the IDE with Fine-Grained Interaction Data

No Overlapping

Low Overlapping

(Depth: 2)

Free Space

Space Occupancy Metrics

Screen Space

Page 32: Taming the IDE with Fine-Grained Interaction Data

No Overlapping

Low Overlapping

(Depth: 2) High Overlapping

(Depth: 4)

Free Space

Space Occupancy Metrics

Screen Space

Page 33: Taming the IDE with Fine-Grained Interaction Data

No Overlapping

Low Overlapping

(Depth: 2) High Overlapping

(Depth: 4)

Free Space

Space Occupancy Metrics

Focus Space

Screen Space

Page 34: Taming the IDE with Fine-Grained Interaction Data

Space Occupancy Metrics

+ +

+ +

+ +

Page 35: Taming the IDE with Fine-Grained Interaction Data

Space Occupancy Metrics

Occupied

Free

Focus

Needed

Space

Depth

Space Metrics Overlapping Metrics

Weighted

Page 36: Taming the IDE with Fine-Grained Interaction Data

Space Occupancy Metrics

Occupied

Free

Focus

Needed

Space

Depth

48.22%

51.78%

Space Metrics Overlapping Metrics

Weighted

Page 37: Taming the IDE with Fine-Grained Interaction Data

Space Occupancy Metrics

Occupied

Free

Focus

Needed

Space

Depth

48.22%

51.78%

32.66%

Space Metrics Overlapping Metrics

Weighted

Page 38: Taming the IDE with Fine-Grained Interaction Data

Space Occupancy Metrics

Occupied

Free

Focus

Needed

Space

Depth

48.22%

51.78%

32.66%

96.83%

Space Metrics Overlapping Metrics

Weighted

Page 39: Taming the IDE with Fine-Grained Interaction Data

Space Occupancy Metrics

Occupied

Free

Focus

Needed

Space

Depth

48.22%

51.78%

32.66%

96.83%

20.95%

2.76

69.05%

Space Metrics Overlapping Metrics

Weighted

Page 40: Taming the IDE with Fine-Grained Interaction Data

Chaos Levels

Page 41: Taming the IDE with Fine-Grained Interaction Data

Chaos Levels

Comfy Ok

Page 42: Taming the IDE with Fine-Grained Interaction Data

Chaos Levels

Comfy Ok HellMess

Page 43: Taming the IDE with Fine-Grained Interaction Data

Chaos Levels

Comfy Ok HellMess

100%0%

: Needed Space

Page 44: Taming the IDE with Fine-Grained Interaction Data

Chaos Levels

Comfy Ok HellMess

100%0%

: Needed Space

200%75%

Page 45: Taming the IDE with Fine-Grained Interaction Data

Chaos Levels

Comfy Ok HellMess

: Results

11%

21%

17%

51%

51.04% 16.98% 21.11% 10.88%

Page 46: Taming the IDE with Fine-Grained Interaction Data

Developers spend more than 30% of their time in highly chaotic IDE configurations…

Page 47: Taming the IDE with Fine-Grained Interaction Data

Developers spend more than 30% of their time in highly chaotic IDE configurations…

so what?

Page 48: Taming the IDE with Fine-Grained Interaction Data

Correlation AnalysisI know what you did last summer:

An investigation of how developers spend their time R. Minelli, A. Mocci, M. Lanza

ICPC 2015, pp. 25–35

5%

8%

14%

70%

Page 49: Taming the IDE with Fine-Grained Interaction Data

Correlation Analysis

vs.

I know what you did last summer: An investigation of how developers spend their time

R. Minelli, A. Mocci, M. Lanza ICPC 2015, pp. 25–35

11%

21%

17%

51%

Chaos Levels

Page 50: Taming the IDE with Fine-Grained Interaction Data

Correlation Analysis

vs.

I know what you did last summer: An investigation of how developers spend their time

R. Minelli, A. Mocci, M. Lanza ICPC 2015, pp. 25–35

Comfy

Ok

-0.34

-0.04

11%

21%

17%

51%

Chaos Levels

not statistically significant

statistically significant

Page 51: Taming the IDE with Fine-Grained Interaction Data

Correlation Analysis

vs.

I know what you did last summer: An investigation of how developers spend their time

R. Minelli, A. Mocci, M. Lanza ICPC 2015, pp. 25–35

Comfy

Ok

Mess

Hell

-0.34

-0.04

0.16

0.42

11%

21%

17%

51%

Chaos Levels

not statistically significant

statistically significant

Page 52: Taming the IDE with Fine-Grained Interaction Data

Correlation Analysis

vs.

I know what you did last summer: An investigation of how developers spend their time

R. Minelli, A. Mocci, M. Lanza ICPC 2015, pp. 25–35

Comfy

Ok

Mess

Hell

-0.34

-0.04

0.16

0.42

Comfy

Ok

Mess

Hell

-0.27

0.05

0.11

0.26

11%

21%

17%

51%

Chaos Levels

not statistically significant

statistically significant

Page 53: Taming the IDE with Fine-Grained Interaction Data

Developers spend more than 30% of their time in highly chaotic IDE configurations…

Page 54: Taming the IDE with Fine-Grained Interaction Data

Developers spend more than 30% of their time in highly chaotic IDE configurations…

…and this impacts both UI and understanding time!

Page 55: Taming the IDE with Fine-Grained Interaction Data

How can we tame it?

Page 56: Taming the IDE with Fine-Grained Interaction Data

Main IDE Windows

Page 57: Taming the IDE with Fine-Grained Interaction Data

Main IDE Windows

Code browser

source code

Page 58: Taming the IDE with Fine-Grained Interaction Data

Main IDE Windows

Code browser Debugger

source code

Page 59: Taming the IDE with Fine-Grained Interaction Data

Main IDE Windows

Code browser Debugger Send / Implement

source code

Page 60: Taming the IDE with Fine-Grained Interaction Data

Taming Strategies

Elision Layout

Page 61: Taming the IDE with Fine-Grained Interaction Data

Elision Strategy

Page 62: Taming the IDE with Fine-Grained Interaction Data

Elision Strategy

Page 63: Taming the IDE with Fine-Grained Interaction Data

Layout Strategy

Screen Space

Page 64: Taming the IDE with Fine-Grained Interaction Data

Layout Strategy

Screen Space

Page 65: Taming the IDE with Fine-Grained Interaction Data

Taming Strategies in Practice

Screen Space

Window in focus

Page 66: Taming the IDE with Fine-Grained Interaction Data

Taming Strategies in Practice

Elision

Screen Space

Window in focus

Page 67: Taming the IDE with Fine-Grained Interaction Data

Taming Strategies in Practice

Layout

Screen Space

Window in focus

Page 68: Taming the IDE with Fine-Grained Interaction Data

Chaos Levels

Comfy Ok HellMess

: Results

11%

21%

17%

51%

51.04% 16.98% 21.11% 10.88%

Page 69: Taming the IDE with Fine-Grained Interaction Data

Chaos Levels

Comfy Ok HellMess

: Results

+17.73% -1.35% -8.08% -8.30%

3%

13%

16%

69%

11%

21%

17%

51%

Page 70: Taming the IDE with Fine-Grained Interaction Data

Taming the IDE with fine-grained interaction data

Page 71: Taming the IDE with Fine-Grained Interaction Data

Taming the IDE with fine-grained interaction data

Page 72: Taming the IDE with Fine-Grained Interaction Data

Taming the IDE with fine-grained interaction data

Page 73: Taming the IDE with Fine-Grained Interaction Data

Taming the IDE with fine-grained interaction data

Page 74: Taming the IDE with Fine-Grained Interaction Data

Taming the IDE with fine-grained interaction data

Page 75: Taming the IDE with Fine-Grained Interaction Data

@robertominelli

Taming the IDE with fine-grained interaction data

Roberto Minelli, Andrea Mocci, Romain Robbes, Michele Lanza