My slides for the presentation of our vision at ICSE 2015 (International Conference on Software Engineering).
Abstract–Developing software is a complex, intrinsically intellectual, 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.
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
Free Hugs — Praising developers for their actions [ICSE2015]
1. Free Hugs
Praising Developers For Their Actions
Roberto Minelli, Andrea Mocci, Michele Lanza
REVEAL @ Faculty of Informatics — University of Lugano, Switzerland@robertominelli
3. “Playing a game is the voluntary attempt to
overcome unnecessary obstacles.”
Goal
Rules
Feedback system
Voluntary
participation
Reality is Broken
J. McGonigal
Penguin, 2011
4. “Playing a game is the voluntary attempt to
overcome unnecessary obstacles.”
Goal
Rules
Feedback system
Voluntary
participation
Reality is Broken
J. McGonigal
Penguin, 2011
5. “Playing a game is the voluntary attempt to
overcome unnecessary obstacles.”
Goal
Rules
Feedback system
Voluntary
participation
Reality is Broken
J. McGonigal
Penguin, 2011
6. “The use of game thinking and
game mechanics in non-game
contexts to augment the
engagement of users.”
Gamification
|ˌgāmifəˈkāSHən|
14. For the Win
K. Werbach and D. Hunter
Wharton Digital Press, 2012
Language Quality Game
Thousands of participants
reviewed over half a million
dialog boxes, logging 6,700
bug reports, resulting in
hundreds of fixes
15. Stackoverflow and GitHub: Associations between
software development and crowdsourced knowledge
B. Vasilescu, V. Filkov, and A. Serebrenik
Proceedings of SocialCom 2013
17. “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.”
The Mythical Man-Month
F. Brooks
2nd ed. Addison-Wesley, 1995
25. Session Digest
What? When?
1 class
3 methods
3 class
4 methods
1 class
1 method
navigation
inspection
edit
mouse
keyboard
TopActivity
Profile
232,321 pts. 12
Lv.
4
1 2
How do
you feel?
Navigation
UnderstandingEditing
User Interface
browsing inspecting searching
2h09m25s duration
6m22s navgation time
11m06s editing time
20m16s user interface time
1h31m40s understanding time
Timeline
time
26. Session Digest
What? When?
1 class
3 methods
3 class
4 methods
1 class
1 method
navigation
inspection
edit
mouse
keyboard
TopActivity
Profile
232,321 pts. 12
Lv.
4
1 2
How do
you feel?
Navigation
UnderstandingEditing
User Interface
browsing inspecting searching
2h09m25s duration
6m22s navgation time
11m06s editing time
20m16s user interface time
1h31m40s understanding time
Timeline
time
27. Session Digest
What? When?
1 class
3 methods
3 class
4 methods
1 class
1 method
navigation
inspection
edit
mouse
keyboard
TopActivity
Profile
232,321 pts. 12
Lv.
4
1 2
How do
you feel?
Navigation
UnderstandingEditing
User Interface
browsing inspecting searching
2h09m25s duration
6m22s navgation time
11m06s editing time
20m16s user interface time
1h31m40s understanding time
Timeline
time
28. Session Digest
What? When?
1 class
3 methods
3 class
4 methods
1 class
1 method
navigation
inspection
edit
mouse
keyboard
TopActivity
Profile
232,321 pts. 12
Lv.
4
1 2
How do
you feel?
Navigation
UnderstandingEditing
User Interface
browsing inspecting searching
2h09m25s duration
6m22s navgation time
11m06s editing time
20m16s user interface time
1h31m40s understanding time
Timeline
time
29. The Development Empire
“A system that rewards complex
actions and best practices of a developer with badges,
achievements, and trophies of different types.”
Profile
232,321 pts. 12
Lv.
4
1 2
How do
you feel?
30. The Development Empire
A new community, where people
can observe, challenge, and
interact with other developers
PSN
35. Roberto Minelli, Andrea Mocci, Michele Lanza
REVEAL @ Faculty of Informatics — University of Lugano, Switzerland
FREEHUGS
@robertominelli
Praisingdevelopersfor theiractions
Nothing in
life is free
love
is.
FREE HUGSPraising Developers for Their Actions
REVEAL @ Faculty of Informatics, University of Lugano, Switzerland
R E V E A L
Università
della
Svizzera
italiana
@robertominelli
roberto.minelli@usi.ch
inf.usi.ch/phd/minelli
Roberto Minelli, Andrea Mocci, Michele Lanza
Session Digest
When?
Navigation
Understanding
Editing User Interface
browsing inspecting searching
2h09m25s
duration
6m22s navgation time11m06s editing time20m16s user interface time1h31m40s 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
TopActivity
Timeline
time
How do
you feel?
A sunburst visualizationthat shows activities andtime components
A tree visualization ofthe entities involvedin the last sessionwith the intensity ofthe interactions
An activity view thatdecomposes a singleactivity into its low-
level events
A summary of thedeveloper’s profile thatgoes towards anapplication of gamification
A sentimentfeedback on the lastdevelopment session
A timeline ofactivities, divided
per category
A table that showsthe last diffs
Session Digest
A short-term 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.
Alter Ego
A developer is like a character in a role-
playing game: She moves her first steps,
evolves, acquires new skills, and unlocks
new achievements. In our vision
developers possess an avatar that they can
evolve, providing them short- and long-
term satisfactions to turn software
development into a more engaging activity.
Development EmpireThe long-term vision is a comprehensive
gamification layer on top of the IDE. It is
not all about assigning points to
developers, but the development of a
ramified system that rewards complex
actions and best practices of a developer
with badges, achievements, and trophies.
The history and the evolution of the alter
ego of a developer is a key factor. When
this mechanism is in place, all the alter
egos will originate a new community,
where people can observe, challenge, and
interact with other developers.
38. DFLOW
Smalltalk IDE
Recorder Analyzer …
HTTP
DFLOW
Server
Meta
Opening a Finder UI
Selecting a package, method, or class in the code browser
Opening a system browser on a method or a class
electing a method in the Finder UI
Starting a search in the Finder UI
Inspecting an object
Browsing a compiled method
Do-it/Print-it on a piece of code (e.g., workspace)
Stepping into/Stepping Over/Proceeding in a debugger
Run to selection in a debugger
Entering/exiting from an active debugger
Browsing full stack/stack trace in a debugger
Browsing hierarchy, implementors or senders of a class
Browsing the version control system
Browse versions of a method
Creating/removing a class
Adding/removing instance variables from a class
Adding/removing a method from a class
Automatically creating accessors for a class
User Interface
Low-Level
Opening/closing a window
Activating a window, i.e., window in focus
Resizing/moving/minimize/maximize a window class
Mouse button up/down
Scroll wheel up/down
Mouse move
Mouse-out/in
Keystroke pressed