SlideShare a Scribd company logo
DFlow is dead. Long live Tako!
How a research prototype became a tool that everyone can use
R E V E A L
Roberto Minelli
@robertominelli
Interaction Data
}
{ The Early Days of Interaction Data
Mylar: A Degree-Of-Interest Model for IDEs
M. Kersten and Gail C. Murphy
In Proceedings of AOSD 2005 (4th International Conference on Aspect-Oriented Software Development)
[…] the use of a degree-of-interest (DOI) model to capture
the task context of program elements scattered across a
code base. The Mylar tool that we built encodes the DOI of
program elements by monitoring the programmer's
activity, and displays the encoded DOI model in views of
Java and AspectJ programs.
}
{ From Mylar to Tasktop
https://www.tasktop.com
Integrate Bug Tracking Manage Tasks Track Time Manage Events
Browse the Web Find Documents Integrate Emails
}
{ What is Interaction Data?
}
{ My PhD Dissertation
Interaction-Aware Development Environments
enable novel and in-depth analyses of the
behavior of software developers and set the
ground to provide developers with effective and
actionable support for their activities inside the
Integrated Development Environment.”
—Roberto Minelli, 2017
Università
della
Svizzera
italiana
Software
Institute
Interaction-Aware
Development Environments
Recording, Mining, and Leveraging IDE Interactions
to Analyze and Support the Development Flow
Roberto Minelli
Doctoral Dissertation submitted to the
Faculty of Informatics of the Università della Svizzera italiana (USI)
in partial fulfillment of the requirements for the degree of
Doctor of Philosophy
Research Advisor
Prof. Michele Lanza
Research Co-Advisor
Dr. Andrea Mocci
Recording and Interpreting
Interaction Data
}
{ The Pharo IDE
Pharo is a pure object-oriented
programming language and a
powerful environment, focused on
simplicity and immediate feedback.
https://pharo.org
}
{ DFlow
Recording Interaction Data in the Pharo IDE
DFlow
}
{ DFlow
Recording Interaction Data in the Pharo IDE
DFlow
}
{ DFlow
Recording Interaction Data in the Pharo IDE
DFlow
Filter
Interesting Interactions
Irrelevant Interactions
}
{
pub/sub
DFlow
Recording Interaction Data in the Pharo IDE
DFlow
Recorder
Visualizer
…
Propagate
Filter
Interesting Interactions
Irrelevant Interactions
Propagated Interactions
}
{ DFlow Dataset
h
M
k
sessions
development time
events
windows
developers
1,631
>770
~9.5
>40
17
}
{ Interpreting Interaction Data
events t
method
saved
search
starts
search
ends
out/in
the IDE
window
activated
window
activated
active window
Mouse Keyboard
Window Meta
Events
}
{ Interpreting Interaction Data
events
sprees
t
t
method
saved
search
starts
search
ends
out/in
the IDE
window
activated
window
activated
active window
>RT >RT >RT DOI
MS1 MS2 MS3 MS4 MS5
KS1 KS2 KS3 KS4
activities
t
A1 A2 A3 A4 A5 A6 A7
RT = 1s
Mouse Keyboard
Window Meta
Events
Mouse Keyboard
Activity
Sprees and Activities
Workspace Code Browser
Finder
Windows
}
{ Interpreting Interaction Data
8%
4%
14%
5%
69%
70%
5%
14%
4%
8%
“Program comprehension occupies half of
the time of developers”
Application Program Maintenance Study: Report to Our Respondents
R. K. Fjeldstad, W. T. Hamlen. GUIDE 48. 1983
more than
I Know What You Did Last Summer:
An Investigation of How Developers Spend Their Time
R. Minelli, A. Mocci, M. Lanza
In Proceedings of ICPC 2015 (23rd International Conference on Program Comprehension)
Visual Analytics
of Development Sessions
}
{ Visual Analytics of Development Sessions
Visualizing Developer Interactions
R. Minelli, A. Mocci, M. Lanza, L. Baracchi
In Proceedings of VISSOFT 2014 (2nd IEEE Working Conference on Software Visualization)
3:00 6:00 18:35 21:00 23:00 45:43 48:00 51:00 54:00 56:33
10:20 20:12
Activity Timeline
Navigation
Inspection
Edit
Understanding
Vertical Lines
Explicit Pause
Implicit Pause
Commit
UI View
Open
Activate
Resize/Move
Close
Minimize/Expand
Minimized Backbone
Nodes
shape
1 event
10+ events
edited
color
&
stroke
recent
old
size
Edges
color
&
stroke
1 occurrence
10+ occurrences
past
working
set
current
working
set
start
end
Method
Class
Visualizing the Evolution of Working Sets
R. Minelli, A. Mocci, M. Lanza
In Proceedings of VISSOFT 2016 (4th IEEE Working Conference on Software Visualization)
}
{ Visual Analytics of Development Sessions
Visualizing Developer Interactions
R. Minelli, A. Mocci, M. Lanza, L. Baracchi
In Proceedings of VISSOFT 2014 (2nd IEEE Working Conference on Software Visualization)
The Window Plague
The Inspection Valley
}
{ Visual Analytics of Development Sessions
Visualizing the Evolution of Working Sets
R. Minelli, A. Mocci, M. Lanza
In Proceedings of VISSOFT 2016 (4th IEEE Working Conference on Software Visualization)
Moving in Circles
The Guiding Star The Working Funnel
Supporting Developers
with Interaction Data
}
{ Supporting Developers with Interaction Data
“Developers using a modern
IDE are forced to open views
on numerous source artifacts
to reveal hidden relationships,
leading to a crowded
workspace with many opened
windows or tabs.”
Autumn Leaves: Curing the Window Plague in IDEs
D. Röthlisberger, O. Nierstrasz, S. Ducasse
In Proceedings of WCRE 2009 (16th Working Conference on Reverse Engineering)
}
{ Supporting Developers with Interaction Data
Autumn Leaves: Curing the Window Plague in IDEs
D. Röthlisberger, O. Nierstrasz, S. Ducasse
In Proceedings of WCRE 2009 (16th Working Conference on Reverse Engineering)
The Plague Doctor: A Promising Cure for the Window Plague
R. Minelli, A. Mocci, M. Lanza
In Proceedings of ICPC 2015 (23rd International Conference on Program Comprehension) [ERA Track]
young old
Age
pinned
low
Importance
high
“Developers using a modern
IDE are forced to open views
on numerous source artifacts
to reveal hidden relationships,
leading to a crowded
workspace with many opened
windows or tabs.”
}
{ Supporting Developers with Interaction Data
Developers spend more than 30% of their time
in highly chaotic IDE configurations…
Taming the IDE with Fine-grained Interaction Data
R. Minelli, A. Mocci, R. Robbes, M. Lanza
In Proceedings of ICPC 2016 (24th International Conference on Program Comprehension)
}
{ Supporting Developers with Interaction Data
Taming the IDE with Fine-grained Interaction Data
R. Minelli, A. Mocci, R. Robbes, M. Lanza
In Proceedings of ICPC 2016 (24th International Conference on Program Comprehension)
}
{ Supporting Developers with Interaction Data
Taming the IDE with Fine-grained Interaction Data
R. Minelli, A. Mocci, R. Robbes, M. Lanza
In Proceedings of ICPC 2016 (24th International Conference on Program Comprehension)
Elision strategies
}
{ Supporting Developers with Interaction Data
Taming the IDE with Fine-grained Interaction Data
R. Minelli, A. Mocci, R. Robbes, M. Lanza
In Proceedings of ICPC 2016 (24th International Conference on Program Comprehension)
+
Elision strategies
Layout strategies
}
{ Supporting Developers with Interaction Data
Taming the IDE with Fine-grained Interaction Data
R. Minelli, A. Mocci, R. Robbes, M. Lanza
In Proceedings of ICPC 2016 (24th International Conference on Program Comprehension)
+
Reduced chaos
=
Elision strategies
Layout strategies
DFlow is dead.
DFlow is dead. And now what?
}
{
CodeLounge is a center for software research &
development, part of the Software Institute at USI.
CodeLounge brings together expertise from academia
and industry, with two main goals: push research ideas
beyond prototypes making real products out of them,
and carry out applied research in the areas of software
development, visualization, evolution, and analytics.
CodeLounge
}
{ Tech·nol·o·gy trans·fer
| tekˈnäləjē tran(t)sˈfər, ˈtran(t)sfər |
The process of transferring technology from the person
or organization that owns it to another person or
organization to ensure that scientific and technological
developments are accessible to a wider range of users
who can further develop and exploit the technology
into new products, processes, applications, or services.
}
{ Hack-week #1
October, 2018
Yo! We are organizing an
hack-week! Do you want to
hack with us
?
}
{ Hack-week #1
October, 2018
IDE
Monitoring
Linking Code with
Page Visited
Developer
Dashboard
Toolchain to Support the Generation of 
Semi-Automatic Subtitles for TED/TEDx Talks
Gitlab Ecosystem Particle
System
}
{ Hack-week #1
October, 2018
Università
della
Svizzera
italiana
Software
Institute
Interaction-Aware
Development Environments
Recording, Mining, and Leveraging IDE Interactions
to Analyze and Support the Development Flow
Roberto Minelli
Doctoral Dissertation submitted to the
Faculty of Informatics of the Università della Svizzera italiana (USI)
in partial fulfillment of the requirements for the degree of
Doctor of Philosophy
Research Advisor
Prof. Michele Lanza
Research Co-Advisor
Dr. Andrea Mocci
}
{ Hack-week #1
October, 2018
Visual Studio Code
Università
della
Svizzera
italiana
Software
Institute
Interaction-Aware
Development Environments
Recording, Mining, and Leveraging IDE Interactions
to Analyze and Support the Development Flow
Roberto Minelli
Doctoral Dissertation submitted to the
Faculty of Informatics of the Università della Svizzera italiana (USI)
in partial fulfillment of the requirements for the degree of
Doctor of Philosophy
Research Advisor
Prof. Michele Lanza
Research Co-Advisor
Dr. Andrea Mocci
}
{ }
{ Hack-week #1
October, 2018
}
{ }
{ Hasler Small Project
Hasler Stiftung — Proposal for a Small Project
Tako: Collecting and Visualizing Development Activities
in Visual Studio Code
Dr. Marco D’Ambros, Dr. Andrea Mocci
CodeLounge @ Software Institute
Università della Svizzera italiana
https://codelounge.si.usi.ch/
Contents
1 Summary
1
2 Field of Research
2
3 Goals and Objectives
3
3.1 Hasler Project: Interaction Data for Visual Studio Code . . . . . . . . . . . . . . . . . . . 4
3.2 Potentials and Extension: Innosuisse project . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.3 CodeLounge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4 Significance of the Project
6
4.1 Contributions to Swiss Software Development . . . . . . . . . . . . . . . . . . . . . . . . 6
4.2 Scientific Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5 Work Plan and Requested Funding
7
5.1 Work Plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.1.1 WP1 (7 weeks): Collecting and analyzing raw data . . . . . . . . . . . . . . . . . 7
5.1.2 WP2 (10 weeks): Aggregation and modeling . . . . . . . . . . . . . . . . . . . . 8
5.1.3 WP3 (9 weeks): Reporting, Visualization, and Hints . . . . . . . . . . . . . . . . 9
5.2 Requested Funding and Staffing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5.2.1 Team . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Andrea Mocci
Marco D’Ambros
Tako
}
{ Tako
An Interaction Data Profiler for Visual Studio Code
An extension for Visual Studio Code that collects,
aggregates, and visualizes fine-grained interaction
data. Tako aggregates the data into development
activities (e.g., navigation, editing) and provides a set of
interactive visualizations to help developers reflect on
their activities, and ultimately understand how they are
spending their time. Tako supports multiple
programming languages.
}
{ Tako
Recording Interaction Data in Visual Studio Code
Visual Studio Code
Developer Tool Language Server
https://microsoft.github.io/language-server-protocol/
}
{ Tako
Recording Interaction Data in Visual Studio Code
Visual Studio Code
Developer Tool Language Server
https://microsoft.github.io/language-server-protocol/
Notification: textDocument/didOpen
}
{ Tako
Recording Interaction Data in Visual Studio Code
Visual Studio Code
Developer Tool Language Server
https://microsoft.github.io/language-server-protocol/
Notification: textDocument/didOpen
Notification: textDocument/publishDiagnostics
Notification: textDocument/didChange
}
{
Crystal
Java
Scala
Tako
Recording Interaction Data in Visual Studio Code
Visual Studio Code
Developer Tool Language Server
https://microsoft.github.io/language-server-protocol/
Notification: textDocument/didOpen
Notification: textDocument/publishDiagnostics
Notification: textDocument/didChange
Request: textDocument/definition
Response: textDocument/definition Result: Location
}
{
Crystal
Java
Scala
Tako
Recording Interaction Data in Visual Studio Code
Visual Studio Code
Developer Tool Language Server
https://microsoft.github.io/language-server-protocol/
Notification: textDocument/didOpen
Notification: textDocument/publishDiagnostics
Notification: textDocument/didChange
Request: textDocument/definition
Response: textDocument/definition Result: Location
s
}
{
Notification: textDocument/didOpen
Notification: textDocument/publishDiagnostics
Notification: textDocument/didChange
Request: textDocument/definition
Response: textDocument/definition Result: Location
Java
Scala
Tako
Recording Interaction Data in Visual Studio Code
Visual Studio Code
Developer Tool Language Server
https://microsoft.github.io/language-server-protocol/
Language Server Protocol s
Crystal
}
{
Notification: textDocument/didOpen
Notification: textDocument/publishDiagnostics
Notification: textDocument/didChange
Request: textDocument/definition
Response: textDocument/definition Result: Location
Java
Scala
Tako
Recording Interaction Data in Visual Studio Code
Visual Studio Code
Developer Tool Language Server
https://microsoft.github.io/language-server-protocol/
Language Server Protocol
Custom
Middleware
Crystal
s
}
{ Tako
Visualizing Development Sessions
}
{ Tako
Visualizing Development Sessions
}
{ Tako
Visualizing Development Sessions
}
{ Tako
Visualizing Development Sessions
}
{ Tako
Visualizing Development Sessions
}
{ Hack-week #2
February, 2021
Free Hugs — Praising Developers For Their Actions
Roberto Minelli, Andrea Mocci, and Michele Lanza
REVEAL @ Faculty of Informatics — University of Lugano, Switzerland
Abstract—Developing software is a complex, intrinsically in-
tellectual, and therefore ephemeral activity, also due to the
intangible nature of the end product, the source code. There is
a thin red line between a productive development session, where
a developer actually does something useful and productive, and
a session where the developer essentially produces “fried air”,
pieces of code whose quality and usefulness are doubtful at best.
We believe that well-thought mechanisms of gamification built
on fine-grained interaction information mined from the IDE can
crystallize and reward good coding behavior.
We present our preliminary experience with the design and
implementation of a micro-gamification layer built into an object-
oriented IDE, which at the end of each development session
not only helps the developer to understand what he actually
produced, but also praises him in case the development session
was productive. Building on this, we envision an environment
where the IDE reflects on the deeds of the developers and by
providing a historical view also helps to track and reward long-
term growth in terms of development skills, not dissimilar from
the mechanics of role-playing games.
I. INTRODUCTION
What is a game? According to McGonigal [1] games share
four defining traits: a goal, rules, a feedback system, and volun-
tary participation. The goal gives a sense of purpose. The rules
unleash creativity and foster strategic thinking. The feedback
system provides motivation. The voluntary participation makes
the experience safe and pleasurable. Suits sums it up with
“playing a game is the voluntary attempt to overcome unnec-
essary obstacles” [2]. McGonigal provides several examples
of contexts, ranging from house holding chores to physical
exercise, where the performance of subjects has been boosted
through gamification [1]. While this may seem remote from
software engineering, Werbach and Hunter provide an illumi-
nating example closer to our discipline: Microsoft’s testing
team in charge of the multi-language aspect of Windows 7
invented the Language Quality Game, recruiting thousands of
participants who reviewed over half a million dialog boxes,
logging 6,700 bug reports, resulting in hundreds of fixes [3].
Another example is StackOverflow, a Q&A website where
asking and answering technical questions is rewarded with
points and badges. There is evidence that gamification is in
part responsible for StackOverflow’s success [4].
We envision the use of gamification in the context of how
developers use the main vehicle for programming, namely
the integrated development environment (IDE). Modern IDEs
have become powerful tool suites that allow one to construct,
understand, and modify software systems. This is quite a step
away from the (in our opinion outdated) notion, promoted by
Weinberg several decades ago, that programming is a “kind of
writing” (of source code) [5].
We believe this is a fundamentally flawed perception, and
among others is also responsible for the wrong, and fashioned,
assumption that productivity can be measured in terms of lines
of code [6], [7]. Programming is more, beautifully put by
Brooks: “The programmer, like the poet, works only slightly
removed from thought-stuff. He builds his castles in the air,
from air, creating by exertion of the imagination.” [7].
Although this sounds all very poetic and romantic, in the
end developers often end up as unsung heroes, i.e., there is no
mechanism (other than venal aspects) that rewards them for a
good job. What can be done about it?
The ICSE NIER track welcomes “Bold visions of new
directions which may not yet be supported by solid results but
rather by a strong and well motivated scientific intuition.”. As
opposed to the common belief that gamification is a recent,
under-explored and thus not very scientific domain, behind
it there is in fact a strong scientific intuition, rooted in the
realm of psychology, and more specifically behaviorism, an
approach that combines elements of philosophy, methodology,
and theory [8]. In fact, behaviorism, whose main tenet is “if
you do this you’ll get that”, is the antithesis of successful
gamification, because simple rewarding mechanisms like token
programs have been shown to be bound to fail [9] in the long
run. Put simply, our goal is not to assign points to development
actions. Such a simplistic approach is destined to fail. Rather,
we propose a comprehensive approach where the ultimate goal
is the creation of an alter ego of a developer, which we believe
is the key to enable what McGonigal [1] identified as the 4
key aspects of successful gamification: (1) Satisfying work
(after all, programming is creative), (2) the experience/hope
of being successful, (3) a social connection, and (4) a deeper
meaning. We argue that the creation of such an alter ego is
the key to provide both short-term and long-term gratification
to developers.
We are currently devising and implementing an approach
which leverages fine-grained interaction data mined from an
IDE using our tool DFLOW [10]. DFLOW models and silently
harvests any low-level action performed by developers and
thus offers a complete and precise summary of what is being
done. Our vision is composed of the following steps:
• Session Digest. The session digest is a short-term form
of gratification, similar to the one present in fitness apps,
offered to developers for their last development session.
It summarizes the last session from various perspectives,
e.g., how was time used, how much was achieved from
a coding point of view, which program entities were
involved, etc. It also enables to dig into the fine-grained
recorded data and acquire a deeper understanding.
}
{
Free Hugs — Praising Developers For Their Actions
Roberto Minelli, Andrea Mocci, and Michele Lanza
REVEAL @ Faculty of Informatics — University of Lugano, Switzerland
Abstract—Developing software is a complex, intrinsically in-
tellectual, and therefore ephemeral activity, also due to the
intangible nature of the end product, the source code. There is
a thin red line between a productive development session, where
a developer actually does something useful and productive, and
a session where the developer essentially produces “fried air”,
pieces of code whose quality and usefulness are doubtful at best.
We believe that well-thought mechanisms of gamification built
on fine-grained interaction information mined from the IDE can
crystallize and reward good coding behavior.
We present our preliminary experience with the design and
implementation of a micro-gamification layer built into an object-
oriented IDE, which at the end of each development session
not only helps the developer to understand what he actually
produced, but also praises him in case the development session
was productive. Building on this, we envision an environment
where the IDE reflects on the deeds of the developers and by
providing a historical view also helps to track and reward long-
term growth in terms of development skills, not dissimilar from
the mechanics of role-playing games.
I. INTRODUCTION
What is a game? According to McGonigal [1] games share
four defining traits: a goal, rules, a feedback system, and volun-
tary participation. The goal gives a sense of purpose. The rules
unleash creativity and foster strategic thinking. The feedback
system provides motivation. The voluntary participation makes
the experience safe and pleasurable. Suits sums it up with
“playing a game is the voluntary attempt to overcome unnec-
essary obstacles” [2]. McGonigal provides several examples
of contexts, ranging from house holding chores to physical
exercise, where the performance of subjects has been boosted
through gamification [1]. While this may seem remote from
software engineering, Werbach and Hunter provide an illumi-
nating example closer to our discipline: Microsoft’s testing
team in charge of the multi-language aspect of Windows 7
invented the Language Quality Game, recruiting thousands of
participants who reviewed over half a million dialog boxes,
logging 6,700 bug reports, resulting in hundreds of fixes [3].
Another example is StackOverflow, a Q&A website where
asking and answering technical questions is rewarded with
points and badges. There is evidence that gamification is in
part responsible for StackOverflow’s success [4].
We envision the use of gamification in the context of how
developers use the main vehicle for programming, namely
the integrated development environment (IDE). Modern IDEs
have become powerful tool suites that allow one to construct,
understand, and modify software systems. This is quite a step
away from the (in our opinion outdated) notion, promoted by
Weinberg several decades ago, that programming is a “kind of
writing” (of source code) [5].
We believe this is a fundamentally flawed perception, and
among others is also responsible for the wrong, and fashioned,
assumption that productivity can be measured in terms of lines
of code [6], [7]. Programming is more, beautifully put by
Brooks: “The programmer, like the poet, works only slightly
removed from thought-stuff. He builds his castles in the air,
from air, creating by exertion of the imagination.” [7].
Although this sounds all very poetic and romantic, in the
end developers often end up as unsung heroes, i.e., there is no
mechanism (other than venal aspects) that rewards them for a
good job. What can be done about it?
The ICSE NIER track welcomes “Bold visions of new
directions which may not yet be supported by solid results but
rather by a strong and well motivated scientific intuition.”. As
opposed to the common belief that gamification is a recent,
under-explored and thus not very scientific domain, behind
it there is in fact a strong scientific intuition, rooted in the
realm of psychology, and more specifically behaviorism, an
approach that combines elements of philosophy, methodology,
and theory [8]. In fact, behaviorism, whose main tenet is “if
you do this you’ll get that”, is the antithesis of successful
gamification, because simple rewarding mechanisms like token
programs have been shown to be bound to fail [9] in the long
run. Put simply, our goal is not to assign points to development
actions. Such a simplistic approach is destined to fail. Rather,
we propose a comprehensive approach where the ultimate goal
is the creation of an alter ego of a developer, which we believe
is the key to enable what McGonigal [1] identified as the 4
key aspects of successful gamification: (1) Satisfying work
(after all, programming is creative), (2) the experience/hope
of being successful, (3) a social connection, and (4) a deeper
meaning. We argue that the creation of such an alter ego is
the key to provide both short-term and long-term gratification
to developers.
We are currently devising and implementing an approach
which leverages fine-grained interaction data mined from an
IDE using our tool DFLOW [10]. DFLOW models and silently
harvests any low-level action performed by developers and
thus offers a complete and precise summary of what is being
done. Our vision is composed of the following steps:
• Session Digest. The session digest is a short-term form
of gratification, similar to the one present in fitness apps,
offered to developers for their last development session.
It summarizes the last session from various perspectives,
e.g., how was time used, how much was achieved from
a coding point of view, which program entities were
involved, etc. It also enables to dig into the fine-grained
recorded data and acquire a deeper understanding.
Session Digest
When?
Navigation
Understanding
Editing
User Interface
browsing inspecting searching
2h09m25s duration
6m22s navgation time
11m06s editing time
20m16s user interface time
1h31m40s understanding time
Profile
23
2,321 pts. 12
Lv.
4
1 2
What?
1 class
3 methods
3 class
4 methods
1 class
1 method
navigation
inspection
edit
mouse
keyboard
Top
Activity
Timeline
time
How do
you feel?
Hack-week #2
February, 2021
}
{ The Session Digest
Acknowledgements
}
{ CodeLounge
Team
Marco D’Ambros
Michele Lanza Andrea Mocci
Jesper Findahl
Davide Paolo Tua Valerie Burgener Luca Ponzanelli
}
{ Tako
An Interaction Data Profiler for VS Code
An extension for Visual Studio Code (VSC) that collects,
aggregates, and visualizes fine-grained interaction
data. Tako supports multiple programming languages.
It aggregates the data into development activities (e.g.,
navigation, editing) and provides a set of interactive
visualizations to help developers reflect on their
activities, and ultimately understand how they are
spending their time.
}
{ My PhD Dissertation
Interaction-Aware Development Environments
enable novel and in-depth analyses of the
behavior of software developers and set the
ground to provide developers with effective and
actionable support for their activities inside the
Integrated Development Environment (IDE).”
—Roberto Minelli, 2017
Università
della
Svizzera
italiana
Software
Institute
Interaction-Aware
Development Environments
Recording, Mining, and Leveraging IDE Interactions
to Analyze and Support the Development Flow
Roberto Minelli
Doctoral Dissertation submitted to the
Faculty of Informatics of the Università della Svizzera italiana (USI)
in partial fulfillment of the requirements for the degree of
Doctor of Philosophy
Research Advisor
Prof. Michele Lanza
Research Co-Advisor
Dr. Andrea Mocci
Roberto Minelli
}
{ What is Interaction Data?
}
{ The Session Digest
DFlow is dead. Long live Tako!

More Related Content

Similar to DFlow is dead. Long live Tako!

Visualizing the Workflow of Developers [VISSOFT2013]
Visualizing the Workflow of Developers [VISSOFT2013]Visualizing the Workflow of Developers [VISSOFT2013]
Visualizing the Workflow of Developers [VISSOFT2013]
Roberto Minelli
 
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
Roberto Minelli
 
Software Development for the Cloud - Trends, Opportunities, and Challenges
Software Development for the Cloud - Trends, Opportunities, and ChallengesSoftware Development for the Cloud - Trends, Opportunities, and Challenges
Software Development for the Cloud - Trends, Opportunities, and Challenges
Philipp Leitner
 
Interaction-Aware Development Environments
 Interaction-Aware Development Environments Interaction-Aware Development Environments
Interaction-Aware Development Environments
Roberto Minelli
 
The Object Model
The Object Model  The Object Model
The Object Model
yndaravind
 
Software Preservation: challenges and opportunities for reproductibility (Sci...
Software Preservation: challenges and opportunities for reproductibility (Sci...Software Preservation: challenges and opportunities for reproductibility (Sci...
Software Preservation: challenges and opportunities for reproductibility (Sci...
Roberto Di Cosmo
 
ScilabTEC 2015 - Irill
ScilabTEC 2015 - IrillScilabTEC 2015 - Irill
ScilabTEC 2015 - Irill
Scilab
 
Lopez
LopezLopez
Lopez
anesah
 
Better Software, Better Research
Better Software, Better ResearchBetter Software, Better Research
Better Software, Better Research
Carole Goble
 
CINECA webinar slides: FAIR software tools
CINECA webinar slides: FAIR software toolsCINECA webinar slides: FAIR software tools
CINECA webinar slides: FAIR software tools
CINECAProject
 
Personal dashboards for individual learning and project awareness in social s...
Personal dashboards for individual learning and project awareness in social s...Personal dashboards for individual learning and project awareness in social s...
Personal dashboards for individual learning and project awareness in social s...
Wolfgang Reinhardt
 
The Good the Bad and the Ugly of Dealing with Smelly Code (ITAKE Unconference)
The Good the Bad and the Ugly of Dealing with Smelly Code (ITAKE Unconference)The Good the Bad and the Ugly of Dealing with Smelly Code (ITAKE Unconference)
The Good the Bad and the Ugly of Dealing with Smelly Code (ITAKE Unconference)
Radu Marinescu
 
Abhishek_Mukherjee
Abhishek_MukherjeeAbhishek_Mukherjee
Abhishek_Mukherjee
Abhishek Mukherjee
 
Pathways to Technology Transfer and Adoption: Achievements and Challenges
Pathways to Technology Transfer and Adoption: Achievements and ChallengesPathways to Technology Transfer and Adoption: Achievements and Challenges
Pathways to Technology Transfer and Adoption: Achievements and Challenges
Tao Xie
 
Platforms, Networks And Impact Of Open, Distributed And Collaborative Design ...
Platforms, Networks And Impact Of Open, Distributed And Collaborative Design ...Platforms, Networks And Impact Of Open, Distributed And Collaborative Design ...
Platforms, Networks And Impact Of Open, Distributed And Collaborative Design ...
Massimo Menichinelli
 
Seminar VU Amsterdam 2015
Seminar VU Amsterdam 2015Seminar VU Amsterdam 2015
Seminar VU Amsterdam 2015
Philipp Leitner
 
First Serenoa Newsletter
First Serenoa NewsletterFirst Serenoa Newsletter
First Serenoa Newsletter
Serenoa Project
 
Web 2.0 Messaging Tools for Knowledge Management? Exploring the Potentials of...
Web 2.0 Messaging Tools for Knowledge Management? Exploring the Potentials of...Web 2.0 Messaging Tools for Knowledge Management? Exploring the Potentials of...
Web 2.0 Messaging Tools for Knowledge Management? Exploring the Potentials of...
Sebastian Dennerlein
 
A Shared Data Format For Describing Collaborative Design Processes @ Cumulus ...
A Shared Data Format For Describing Collaborative Design Processes @ Cumulus ...A Shared Data Format For Describing Collaborative Design Processes @ Cumulus ...
A Shared Data Format For Describing Collaborative Design Processes @ Cumulus ...
Massimo Menichinelli
 
Carlo Daffara - Economic impact of Free Open Source Software for Europe - #SF...
Carlo Daffara - Economic impact of Free Open Source Software for Europe - #SF...Carlo Daffara - Economic impact of Free Open Source Software for Europe - #SF...
Carlo Daffara - Economic impact of Free Open Source Software for Europe - #SF...
South Tyrol Free Software Conference
 

Similar to DFlow is dead. Long live Tako! (20)

Visualizing the Workflow of Developers [VISSOFT2013]
Visualizing the Workflow of Developers [VISSOFT2013]Visualizing the Workflow of Developers [VISSOFT2013]
Visualizing the Workflow of Developers [VISSOFT2013]
 
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
 
Software Development for the Cloud - Trends, Opportunities, and Challenges
Software Development for the Cloud - Trends, Opportunities, and ChallengesSoftware Development for the Cloud - Trends, Opportunities, and Challenges
Software Development for the Cloud - Trends, Opportunities, and Challenges
 
Interaction-Aware Development Environments
 Interaction-Aware Development Environments Interaction-Aware Development Environments
Interaction-Aware Development Environments
 
The Object Model
The Object Model  The Object Model
The Object Model
 
Software Preservation: challenges and opportunities for reproductibility (Sci...
Software Preservation: challenges and opportunities for reproductibility (Sci...Software Preservation: challenges and opportunities for reproductibility (Sci...
Software Preservation: challenges and opportunities for reproductibility (Sci...
 
ScilabTEC 2015 - Irill
ScilabTEC 2015 - IrillScilabTEC 2015 - Irill
ScilabTEC 2015 - Irill
 
Lopez
LopezLopez
Lopez
 
Better Software, Better Research
Better Software, Better ResearchBetter Software, Better Research
Better Software, Better Research
 
CINECA webinar slides: FAIR software tools
CINECA webinar slides: FAIR software toolsCINECA webinar slides: FAIR software tools
CINECA webinar slides: FAIR software tools
 
Personal dashboards for individual learning and project awareness in social s...
Personal dashboards for individual learning and project awareness in social s...Personal dashboards for individual learning and project awareness in social s...
Personal dashboards for individual learning and project awareness in social s...
 
The Good the Bad and the Ugly of Dealing with Smelly Code (ITAKE Unconference)
The Good the Bad and the Ugly of Dealing with Smelly Code (ITAKE Unconference)The Good the Bad and the Ugly of Dealing with Smelly Code (ITAKE Unconference)
The Good the Bad and the Ugly of Dealing with Smelly Code (ITAKE Unconference)
 
Abhishek_Mukherjee
Abhishek_MukherjeeAbhishek_Mukherjee
Abhishek_Mukherjee
 
Pathways to Technology Transfer and Adoption: Achievements and Challenges
Pathways to Technology Transfer and Adoption: Achievements and ChallengesPathways to Technology Transfer and Adoption: Achievements and Challenges
Pathways to Technology Transfer and Adoption: Achievements and Challenges
 
Platforms, Networks And Impact Of Open, Distributed And Collaborative Design ...
Platforms, Networks And Impact Of Open, Distributed And Collaborative Design ...Platforms, Networks And Impact Of Open, Distributed And Collaborative Design ...
Platforms, Networks And Impact Of Open, Distributed And Collaborative Design ...
 
Seminar VU Amsterdam 2015
Seminar VU Amsterdam 2015Seminar VU Amsterdam 2015
Seminar VU Amsterdam 2015
 
First Serenoa Newsletter
First Serenoa NewsletterFirst Serenoa Newsletter
First Serenoa Newsletter
 
Web 2.0 Messaging Tools for Knowledge Management? Exploring the Potentials of...
Web 2.0 Messaging Tools for Knowledge Management? Exploring the Potentials of...Web 2.0 Messaging Tools for Knowledge Management? Exploring the Potentials of...
Web 2.0 Messaging Tools for Knowledge Management? Exploring the Potentials of...
 
A Shared Data Format For Describing Collaborative Design Processes @ Cumulus ...
A Shared Data Format For Describing Collaborative Design Processes @ Cumulus ...A Shared Data Format For Describing Collaborative Design Processes @ Cumulus ...
A Shared Data Format For Describing Collaborative Design Processes @ Cumulus ...
 
Carlo Daffara - Economic impact of Free Open Source Software for Europe - #SF...
Carlo Daffara - Economic impact of Free Open Source Software for Europe - #SF...Carlo Daffara - Economic impact of Free Open Source Software for Europe - #SF...
Carlo Daffara - Economic impact of Free Open Source Software for Europe - #SF...
 

More from Roberto Minelli

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]
Roberto Minelli
 
Traduzioni: Ieri, Oggi e Domani

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

Traduzioni: Ieri, Oggi e Domani

Roberto Minelli
 
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

Roberto Minelli
 
Visualizing the Evolution of Working Sets
Visualizing the Evolution of Working SetsVisualizing the Evolution of Working Sets
Visualizing the Evolution of Working Sets
Roberto Minelli
 
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
Roberto Minelli
 
Measuring Navigation Efficiency in the IDE
Measuring Navigation Efficiency in the IDEMeasuring Navigation Efficiency in the IDE
Measuring Navigation Efficiency in the IDE
Roberto Minelli
 
Mining IDE Interaction Data
Mining IDE Interaction DataMining IDE Interaction Data
Mining IDE Interaction Data
Roberto Minelli
 
I Know What You Did Last Summer – An Investigation of How Developers Spend Th...
I Know What You Did Last Summer – An Investigation of How Developers Spend Th...I Know What You Did Last Summer – An Investigation of How Developers Spend Th...
I Know What You Did Last Summer – An Investigation of How Developers Spend Th...
Roberto Minelli
 
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]
Roberto Minelli
 
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]
Roberto Minelli
 
Visualizing Developer Interactions [VISSOFT2014]
Visualizing Developer Interactions [VISSOFT2014]Visualizing Developer Interactions [VISSOFT2014]
Visualizing Developer Interactions [VISSOFT2014]
Roberto Minelli
 
Visual Storytelling of Development Sessions [ICSME2014]
Visual Storytelling of Development Sessions [ICSME2014] Visual Storytelling of Development Sessions [ICSME2014]
Visual Storytelling of Development Sessions [ICSME2014]
Roberto Minelli
 
Towards Self-Adaptive IDEs [ICSME2014]
Towards Self-Adaptive IDEs [ICSME2014]Towards Self-Adaptive IDEs [ICSME2014]
Towards Self-Adaptive IDEs [ICSME2014]
Roberto Minelli
 
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]
Roberto Minelli
 
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...
Roberto Minelli
 

More from Roberto Minelli (15)

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]
 
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

 
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
 
I Know What You Did Last Summer – An Investigation of How Developers Spend Th...
I Know What You Did Last Summer – An Investigation of How Developers Spend Th...I Know What You Did Last Summer – An Investigation of How Developers Spend Th...
I Know What You Did Last Summer – An Investigation of How Developers Spend Th...
 
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]
 
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

Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
TIPNGVN2
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 

Recently uploaded (20)

Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 

DFlow is dead. Long live Tako!

  • 1. DFlow is dead. Long live Tako! How a research prototype became a tool that everyone can use R E V E A L Roberto Minelli @robertominelli
  • 3. } { The Early Days of Interaction Data Mylar: A Degree-Of-Interest Model for IDEs M. Kersten and Gail C. Murphy In Proceedings of AOSD 2005 (4th International Conference on Aspect-Oriented Software Development) […] the use of a degree-of-interest (DOI) model to capture the task context of program elements scattered across a code base. The Mylar tool that we built encodes the DOI of program elements by monitoring the programmer's activity, and displays the encoded DOI model in views of Java and AspectJ programs.
  • 4. } { From Mylar to Tasktop https://www.tasktop.com Integrate Bug Tracking Manage Tasks Track Time Manage Events Browse the Web Find Documents Integrate Emails
  • 5. } { What is Interaction Data?
  • 6. } { My PhD Dissertation Interaction-Aware Development Environments enable novel and in-depth analyses of the behavior of software developers and set the ground to provide developers with effective and actionable support for their activities inside the Integrated Development Environment.” —Roberto Minelli, 2017 Università della Svizzera italiana Software Institute Interaction-Aware Development Environments Recording, Mining, and Leveraging IDE Interactions to Analyze and Support the Development Flow Roberto Minelli Doctoral Dissertation submitted to the Faculty of Informatics of the Università della Svizzera italiana (USI) in partial fulfillment of the requirements for the degree of Doctor of Philosophy Research Advisor Prof. Michele Lanza Research Co-Advisor Dr. Andrea Mocci
  • 8. } { The Pharo IDE Pharo is a pure object-oriented programming language and a powerful environment, focused on simplicity and immediate feedback. https://pharo.org
  • 9. } { DFlow Recording Interaction Data in the Pharo IDE DFlow
  • 10. } { DFlow Recording Interaction Data in the Pharo IDE DFlow
  • 11. } { DFlow Recording Interaction Data in the Pharo IDE DFlow Filter Interesting Interactions Irrelevant Interactions
  • 12. } { pub/sub DFlow Recording Interaction Data in the Pharo IDE DFlow Recorder Visualizer … Propagate Filter Interesting Interactions Irrelevant Interactions Propagated Interactions
  • 13. } { DFlow Dataset h M k sessions development time events windows developers 1,631 >770 ~9.5 >40 17
  • 14. } { Interpreting Interaction Data events t method saved search starts search ends out/in the IDE window activated window activated active window Mouse Keyboard Window Meta Events
  • 15. } { Interpreting Interaction Data events sprees t t method saved search starts search ends out/in the IDE window activated window activated active window >RT >RT >RT DOI MS1 MS2 MS3 MS4 MS5 KS1 KS2 KS3 KS4 activities t A1 A2 A3 A4 A5 A6 A7 RT = 1s Mouse Keyboard Window Meta Events Mouse Keyboard Activity Sprees and Activities Workspace Code Browser Finder Windows
  • 16. } { Interpreting Interaction Data 8% 4% 14% 5% 69% 70% 5% 14% 4% 8% “Program comprehension occupies half of the time of developers” Application Program Maintenance Study: Report to Our Respondents R. K. Fjeldstad, W. T. Hamlen. GUIDE 48. 1983 more than I Know What You Did Last Summer: An Investigation of How Developers Spend Their Time R. Minelli, A. Mocci, M. Lanza In Proceedings of ICPC 2015 (23rd International Conference on Program Comprehension)
  • 18. } { Visual Analytics of Development Sessions Visualizing Developer Interactions R. Minelli, A. Mocci, M. Lanza, L. Baracchi In Proceedings of VISSOFT 2014 (2nd IEEE Working Conference on Software Visualization) 3:00 6:00 18:35 21:00 23:00 45:43 48:00 51:00 54:00 56:33 10:20 20:12 Activity Timeline Navigation Inspection Edit Understanding Vertical Lines Explicit Pause Implicit Pause Commit UI View Open Activate Resize/Move Close Minimize/Expand Minimized Backbone Nodes shape 1 event 10+ events edited color & stroke recent old size Edges color & stroke 1 occurrence 10+ occurrences past working set current working set start end Method Class Visualizing the Evolution of Working Sets R. Minelli, A. Mocci, M. Lanza In Proceedings of VISSOFT 2016 (4th IEEE Working Conference on Software Visualization)
  • 19. } { Visual Analytics of Development Sessions Visualizing Developer Interactions R. Minelli, A. Mocci, M. Lanza, L. Baracchi In Proceedings of VISSOFT 2014 (2nd IEEE Working Conference on Software Visualization) The Window Plague The Inspection Valley
  • 20. } { Visual Analytics of Development Sessions Visualizing the Evolution of Working Sets R. Minelli, A. Mocci, M. Lanza In Proceedings of VISSOFT 2016 (4th IEEE Working Conference on Software Visualization) Moving in Circles The Guiding Star The Working Funnel
  • 22. } { Supporting Developers with Interaction Data “Developers using a modern IDE are forced to open views on numerous source artifacts to reveal hidden relationships, leading to a crowded workspace with many opened windows or tabs.” Autumn Leaves: Curing the Window Plague in IDEs D. Röthlisberger, O. Nierstrasz, S. Ducasse In Proceedings of WCRE 2009 (16th Working Conference on Reverse Engineering)
  • 23. } { Supporting Developers with Interaction Data Autumn Leaves: Curing the Window Plague in IDEs D. Röthlisberger, O. Nierstrasz, S. Ducasse In Proceedings of WCRE 2009 (16th Working Conference on Reverse Engineering) The Plague Doctor: A Promising Cure for the Window Plague R. Minelli, A. Mocci, M. Lanza In Proceedings of ICPC 2015 (23rd International Conference on Program Comprehension) [ERA Track] young old Age pinned low Importance high “Developers using a modern IDE are forced to open views on numerous source artifacts to reveal hidden relationships, leading to a crowded workspace with many opened windows or tabs.”
  • 24. } { Supporting Developers with Interaction Data Developers spend more than 30% of their time in highly chaotic IDE configurations… Taming the IDE with Fine-grained Interaction Data R. Minelli, A. Mocci, R. Robbes, M. Lanza In Proceedings of ICPC 2016 (24th International Conference on Program Comprehension)
  • 25. } { Supporting Developers with Interaction Data Taming the IDE with Fine-grained Interaction Data R. Minelli, A. Mocci, R. Robbes, M. Lanza In Proceedings of ICPC 2016 (24th International Conference on Program Comprehension)
  • 26. } { Supporting Developers with Interaction Data Taming the IDE with Fine-grained Interaction Data R. Minelli, A. Mocci, R. Robbes, M. Lanza In Proceedings of ICPC 2016 (24th International Conference on Program Comprehension) Elision strategies
  • 27. } { Supporting Developers with Interaction Data Taming the IDE with Fine-grained Interaction Data R. Minelli, A. Mocci, R. Robbes, M. Lanza In Proceedings of ICPC 2016 (24th International Conference on Program Comprehension) + Elision strategies Layout strategies
  • 28. } { Supporting Developers with Interaction Data Taming the IDE with Fine-grained Interaction Data R. Minelli, A. Mocci, R. Robbes, M. Lanza In Proceedings of ICPC 2016 (24th International Conference on Program Comprehension) + Reduced chaos = Elision strategies Layout strategies
  • 29.
  • 31. DFlow is dead. And now what?
  • 32. } { CodeLounge is a center for software research & development, part of the Software Institute at USI. CodeLounge brings together expertise from academia and industry, with two main goals: push research ideas beyond prototypes making real products out of them, and carry out applied research in the areas of software development, visualization, evolution, and analytics. CodeLounge
  • 33. } { Tech·nol·o·gy trans·fer | tekˈnäləjē tran(t)sˈfər, ˈtran(t)sfər | The process of transferring technology from the person or organization that owns it to another person or organization to ensure that scientific and technological developments are accessible to a wider range of users who can further develop and exploit the technology into new products, processes, applications, or services.
  • 34. } { Hack-week #1 October, 2018 Yo! We are organizing an hack-week! Do you want to hack with us ?
  • 35. } { Hack-week #1 October, 2018 IDE Monitoring Linking Code with Page Visited Developer Dashboard Toolchain to Support the Generation of  Semi-Automatic Subtitles for TED/TEDx Talks Gitlab Ecosystem Particle System
  • 36. } { Hack-week #1 October, 2018 Università della Svizzera italiana Software Institute Interaction-Aware Development Environments Recording, Mining, and Leveraging IDE Interactions to Analyze and Support the Development Flow Roberto Minelli Doctoral Dissertation submitted to the Faculty of Informatics of the Università della Svizzera italiana (USI) in partial fulfillment of the requirements for the degree of Doctor of Philosophy Research Advisor Prof. Michele Lanza Research Co-Advisor Dr. Andrea Mocci
  • 37. } { Hack-week #1 October, 2018 Visual Studio Code Università della Svizzera italiana Software Institute Interaction-Aware Development Environments Recording, Mining, and Leveraging IDE Interactions to Analyze and Support the Development Flow Roberto Minelli Doctoral Dissertation submitted to the Faculty of Informatics of the Università della Svizzera italiana (USI) in partial fulfillment of the requirements for the degree of Doctor of Philosophy Research Advisor Prof. Michele Lanza Research Co-Advisor Dr. Andrea Mocci
  • 38. } { } { Hack-week #1 October, 2018
  • 39. } { } { Hasler Small Project Hasler Stiftung — Proposal for a Small Project Tako: Collecting and Visualizing Development Activities in Visual Studio Code Dr. Marco D’Ambros, Dr. Andrea Mocci CodeLounge @ Software Institute Università della Svizzera italiana https://codelounge.si.usi.ch/ Contents 1 Summary 1 2 Field of Research 2 3 Goals and Objectives 3 3.1 Hasler Project: Interaction Data for Visual Studio Code . . . . . . . . . . . . . . . . . . . 4 3.2 Potentials and Extension: Innosuisse project . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.3 CodeLounge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4 Significance of the Project 6 4.1 Contributions to Swiss Software Development . . . . . . . . . . . . . . . . . . . . . . . . 6 4.2 Scientific Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 5 Work Plan and Requested Funding 7 5.1 Work Plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 5.1.1 WP1 (7 weeks): Collecting and analyzing raw data . . . . . . . . . . . . . . . . . 7 5.1.2 WP2 (10 weeks): Aggregation and modeling . . . . . . . . . . . . . . . . . . . . 8 5.1.3 WP3 (9 weeks): Reporting, Visualization, and Hints . . . . . . . . . . . . . . . . 9 5.2 Requested Funding and Staffing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 5.2.1 Team . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Andrea Mocci Marco D’Ambros
  • 40. Tako
  • 41. } { Tako An Interaction Data Profiler for Visual Studio Code An extension for Visual Studio Code that collects, aggregates, and visualizes fine-grained interaction data. Tako aggregates the data into development activities (e.g., navigation, editing) and provides a set of interactive visualizations to help developers reflect on their activities, and ultimately understand how they are spending their time. Tako supports multiple programming languages.
  • 42. } { Tako Recording Interaction Data in Visual Studio Code Visual Studio Code Developer Tool Language Server https://microsoft.github.io/language-server-protocol/
  • 43. } { Tako Recording Interaction Data in Visual Studio Code Visual Studio Code Developer Tool Language Server https://microsoft.github.io/language-server-protocol/ Notification: textDocument/didOpen
  • 44. } { Tako Recording Interaction Data in Visual Studio Code Visual Studio Code Developer Tool Language Server https://microsoft.github.io/language-server-protocol/ Notification: textDocument/didOpen Notification: textDocument/publishDiagnostics Notification: textDocument/didChange
  • 45. } { Crystal Java Scala Tako Recording Interaction Data in Visual Studio Code Visual Studio Code Developer Tool Language Server https://microsoft.github.io/language-server-protocol/ Notification: textDocument/didOpen Notification: textDocument/publishDiagnostics Notification: textDocument/didChange Request: textDocument/definition Response: textDocument/definition Result: Location
  • 46. } { Crystal Java Scala Tako Recording Interaction Data in Visual Studio Code Visual Studio Code Developer Tool Language Server https://microsoft.github.io/language-server-protocol/ Notification: textDocument/didOpen Notification: textDocument/publishDiagnostics Notification: textDocument/didChange Request: textDocument/definition Response: textDocument/definition Result: Location s
  • 47. } { Notification: textDocument/didOpen Notification: textDocument/publishDiagnostics Notification: textDocument/didChange Request: textDocument/definition Response: textDocument/definition Result: Location Java Scala Tako Recording Interaction Data in Visual Studio Code Visual Studio Code Developer Tool Language Server https://microsoft.github.io/language-server-protocol/ Language Server Protocol s Crystal
  • 48. } { Notification: textDocument/didOpen Notification: textDocument/publishDiagnostics Notification: textDocument/didChange Request: textDocument/definition Response: textDocument/definition Result: Location Java Scala Tako Recording Interaction Data in Visual Studio Code Visual Studio Code Developer Tool Language Server https://microsoft.github.io/language-server-protocol/ Language Server Protocol Custom Middleware Crystal s
  • 54. } { Hack-week #2 February, 2021 Free Hugs — Praising Developers For Their Actions Roberto Minelli, Andrea Mocci, and Michele Lanza REVEAL @ Faculty of Informatics — University of Lugano, Switzerland Abstract—Developing software is a complex, intrinsically in- tellectual, and therefore ephemeral activity, also due to the intangible nature of the end product, the source code. There is a thin red line between a productive development session, where a developer actually does something useful and productive, and a session where the developer essentially produces “fried air”, pieces of code whose quality and usefulness are doubtful at best. We believe that well-thought mechanisms of gamification built on fine-grained interaction information mined from the IDE can crystallize and reward good coding behavior. We present our preliminary experience with the design and implementation of a micro-gamification layer built into an object- oriented IDE, which at the end of each development session not only helps the developer to understand what he actually produced, but also praises him in case the development session was productive. Building on this, we envision an environment where the IDE reflects on the deeds of the developers and by providing a historical view also helps to track and reward long- term growth in terms of development skills, not dissimilar from the mechanics of role-playing games. I. INTRODUCTION What is a game? According to McGonigal [1] games share four defining traits: a goal, rules, a feedback system, and volun- tary participation. The goal gives a sense of purpose. The rules unleash creativity and foster strategic thinking. The feedback system provides motivation. The voluntary participation makes the experience safe and pleasurable. Suits sums it up with “playing a game is the voluntary attempt to overcome unnec- essary obstacles” [2]. McGonigal provides several examples of contexts, ranging from house holding chores to physical exercise, where the performance of subjects has been boosted through gamification [1]. While this may seem remote from software engineering, Werbach and Hunter provide an illumi- nating example closer to our discipline: Microsoft’s testing team in charge of the multi-language aspect of Windows 7 invented the Language Quality Game, recruiting thousands of participants who reviewed over half a million dialog boxes, logging 6,700 bug reports, resulting in hundreds of fixes [3]. Another example is StackOverflow, a Q&A website where asking and answering technical questions is rewarded with points and badges. There is evidence that gamification is in part responsible for StackOverflow’s success [4]. We envision the use of gamification in the context of how developers use the main vehicle for programming, namely the integrated development environment (IDE). Modern IDEs have become powerful tool suites that allow one to construct, understand, and modify software systems. This is quite a step away from the (in our opinion outdated) notion, promoted by Weinberg several decades ago, that programming is a “kind of writing” (of source code) [5]. We believe this is a fundamentally flawed perception, and among others is also responsible for the wrong, and fashioned, assumption that productivity can be measured in terms of lines of code [6], [7]. Programming is more, beautifully put by Brooks: “The programmer, like the poet, works only slightly removed from thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination.” [7]. Although this sounds all very poetic and romantic, in the end developers often end up as unsung heroes, i.e., there is no mechanism (other than venal aspects) that rewards them for a good job. What can be done about it? The ICSE NIER track welcomes “Bold visions of new directions which may not yet be supported by solid results but rather by a strong and well motivated scientific intuition.”. As opposed to the common belief that gamification is a recent, under-explored and thus not very scientific domain, behind it there is in fact a strong scientific intuition, rooted in the realm of psychology, and more specifically behaviorism, an approach that combines elements of philosophy, methodology, and theory [8]. In fact, behaviorism, whose main tenet is “if you do this you’ll get that”, is the antithesis of successful gamification, because simple rewarding mechanisms like token programs have been shown to be bound to fail [9] in the long run. Put simply, our goal is not to assign points to development actions. Such a simplistic approach is destined to fail. Rather, we propose a comprehensive approach where the ultimate goal is the creation of an alter ego of a developer, which we believe is the key to enable what McGonigal [1] identified as the 4 key aspects of successful gamification: (1) Satisfying work (after all, programming is creative), (2) the experience/hope of being successful, (3) a social connection, and (4) a deeper meaning. We argue that the creation of such an alter ego is the key to provide both short-term and long-term gratification to developers. We are currently devising and implementing an approach which leverages fine-grained interaction data mined from an IDE using our tool DFLOW [10]. DFLOW models and silently harvests any low-level action performed by developers and thus offers a complete and precise summary of what is being done. Our vision is composed of the following steps: • Session Digest. The session digest is a short-term form of gratification, similar to the one present in fitness apps, offered to developers for their last development session. It summarizes the last session from various perspectives, e.g., how was time used, how much was achieved from a coding point of view, which program entities were involved, etc. It also enables to dig into the fine-grained recorded data and acquire a deeper understanding.
  • 55. } { Free Hugs — Praising Developers For Their Actions Roberto Minelli, Andrea Mocci, and Michele Lanza REVEAL @ Faculty of Informatics — University of Lugano, Switzerland Abstract—Developing software is a complex, intrinsically in- tellectual, and therefore ephemeral activity, also due to the intangible nature of the end product, the source code. There is a thin red line between a productive development session, where a developer actually does something useful and productive, and a session where the developer essentially produces “fried air”, pieces of code whose quality and usefulness are doubtful at best. We believe that well-thought mechanisms of gamification built on fine-grained interaction information mined from the IDE can crystallize and reward good coding behavior. We present our preliminary experience with the design and implementation of a micro-gamification layer built into an object- oriented IDE, which at the end of each development session not only helps the developer to understand what he actually produced, but also praises him in case the development session was productive. Building on this, we envision an environment where the IDE reflects on the deeds of the developers and by providing a historical view also helps to track and reward long- term growth in terms of development skills, not dissimilar from the mechanics of role-playing games. I. INTRODUCTION What is a game? According to McGonigal [1] games share four defining traits: a goal, rules, a feedback system, and volun- tary participation. The goal gives a sense of purpose. The rules unleash creativity and foster strategic thinking. The feedback system provides motivation. The voluntary participation makes the experience safe and pleasurable. Suits sums it up with “playing a game is the voluntary attempt to overcome unnec- essary obstacles” [2]. McGonigal provides several examples of contexts, ranging from house holding chores to physical exercise, where the performance of subjects has been boosted through gamification [1]. While this may seem remote from software engineering, Werbach and Hunter provide an illumi- nating example closer to our discipline: Microsoft’s testing team in charge of the multi-language aspect of Windows 7 invented the Language Quality Game, recruiting thousands of participants who reviewed over half a million dialog boxes, logging 6,700 bug reports, resulting in hundreds of fixes [3]. Another example is StackOverflow, a Q&A website where asking and answering technical questions is rewarded with points and badges. There is evidence that gamification is in part responsible for StackOverflow’s success [4]. We envision the use of gamification in the context of how developers use the main vehicle for programming, namely the integrated development environment (IDE). Modern IDEs have become powerful tool suites that allow one to construct, understand, and modify software systems. This is quite a step away from the (in our opinion outdated) notion, promoted by Weinberg several decades ago, that programming is a “kind of writing” (of source code) [5]. We believe this is a fundamentally flawed perception, and among others is also responsible for the wrong, and fashioned, assumption that productivity can be measured in terms of lines of code [6], [7]. Programming is more, beautifully put by Brooks: “The programmer, like the poet, works only slightly removed from thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination.” [7]. Although this sounds all very poetic and romantic, in the end developers often end up as unsung heroes, i.e., there is no mechanism (other than venal aspects) that rewards them for a good job. What can be done about it? The ICSE NIER track welcomes “Bold visions of new directions which may not yet be supported by solid results but rather by a strong and well motivated scientific intuition.”. As opposed to the common belief that gamification is a recent, under-explored and thus not very scientific domain, behind it there is in fact a strong scientific intuition, rooted in the realm of psychology, and more specifically behaviorism, an approach that combines elements of philosophy, methodology, and theory [8]. In fact, behaviorism, whose main tenet is “if you do this you’ll get that”, is the antithesis of successful gamification, because simple rewarding mechanisms like token programs have been shown to be bound to fail [9] in the long run. Put simply, our goal is not to assign points to development actions. Such a simplistic approach is destined to fail. Rather, we propose a comprehensive approach where the ultimate goal is the creation of an alter ego of a developer, which we believe is the key to enable what McGonigal [1] identified as the 4 key aspects of successful gamification: (1) Satisfying work (after all, programming is creative), (2) the experience/hope of being successful, (3) a social connection, and (4) a deeper meaning. We argue that the creation of such an alter ego is the key to provide both short-term and long-term gratification to developers. We are currently devising and implementing an approach which leverages fine-grained interaction data mined from an IDE using our tool DFLOW [10]. DFLOW models and silently harvests any low-level action performed by developers and thus offers a complete and precise summary of what is being done. Our vision is composed of the following steps: • Session Digest. The session digest is a short-term form of gratification, similar to the one present in fitness apps, offered to developers for their last development session. It summarizes the last session from various perspectives, e.g., how was time used, how much was achieved from a coding point of view, which program entities were involved, etc. It also enables to dig into the fine-grained recorded data and acquire a deeper understanding. Session Digest When? Navigation Understanding Editing User Interface browsing inspecting searching 2h09m25s duration 6m22s navgation time 11m06s editing time 20m16s user interface time 1h31m40s understanding time Profile 23 2,321 pts. 12 Lv. 4 1 2 What? 1 class 3 methods 3 class 4 methods 1 class 1 method navigation inspection edit mouse keyboard Top Activity Timeline time How do you feel? Hack-week #2 February, 2021
  • 56. } { The Session Digest
  • 58. } { CodeLounge Team Marco D’Ambros Michele Lanza Andrea Mocci Jesper Findahl Davide Paolo Tua Valerie Burgener Luca Ponzanelli
  • 59. } { Tako An Interaction Data Profiler for VS Code An extension for Visual Studio Code (VSC) that collects, aggregates, and visualizes fine-grained interaction data. Tako supports multiple programming languages. It aggregates the data into development activities (e.g., navigation, editing) and provides a set of interactive visualizations to help developers reflect on their activities, and ultimately understand how they are spending their time. } { My PhD Dissertation Interaction-Aware Development Environments enable novel and in-depth analyses of the behavior of software developers and set the ground to provide developers with effective and actionable support for their activities inside the Integrated Development Environment (IDE).” —Roberto Minelli, 2017 Università della Svizzera italiana Software Institute Interaction-Aware Development Environments Recording, Mining, and Leveraging IDE Interactions to Analyze and Support the Development Flow Roberto Minelli Doctoral Dissertation submitted to the Faculty of Informatics of the Università della Svizzera italiana (USI) in partial fulfillment of the requirements for the degree of Doctor of Philosophy Research Advisor Prof. Michele Lanza Research Co-Advisor Dr. Andrea Mocci Roberto Minelli } { What is Interaction Data? } { The Session Digest DFlow is dead. Long live Tako!