Free Hugs
Praising Developers For Their Actions
Roberto Minelli, Andrea Mocci, Michele Lanza
REVEAL @ Faculty of Informatics — University of Lugano, Switzerland@robertominelli
What is a
game?
“Playing a game is the voluntary attempt to
overcome unnecessary obstacles.”
Goal
Rules
Feedback system
Voluntary
participation
Reality is Broken
J. McGonigal
Penguin, 2011
“Playing a game is the voluntary attempt to
overcome unnecessary obstacles.”
Goal
Rules
Feedback system
Voluntary
participation
Reality is Broken
J. McGonigal
Penguin, 2011
“Playing a game is the voluntary attempt to
overcome unnecessary obstacles.”
Goal
Rules
Feedback system
Voluntary
participation
Reality is Broken
J. McGonigal
Penguin, 2011
“The use of game thinking and
game mechanics in non-game
contexts to augment the
engagement of users.”
Gamification
|ˌgāmifəˈkāSHən|
Boost the performance
through gamification
gamification software
engineering
software engineeringgamification in
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
Stackoverflow and GitHub: Associations between
software development and crowdsourced knowledge
B. Vasilescu, V. Filkov, and A. Serebrenik
Proceedings of SocialCom 2013
Integrated Development Environment (IDE)
“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
developer
What can be
done about it?
developer
gamification in the IDE
“If you do this
you’ll get that.”
Reflections on Behaviorism and Society
B. Skinner
Prentice Hall, 1978
The Alter Ego
The Alter Ego
Short-term
The Alter Ego
Short-term Long-term
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
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
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
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
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?
The Development Empire
A new community, where people
can observe, challenge, and
interact with other developers
PSN
Session Digest
When?
Navigation
UnderstandingEditing
User Interface
browsing inspecting searchin
What?
1 class
3 methods
3 class
4 methods
1 class
1 method
navigation
inspection
edit
mouse
keyboard
TopActivity
Timeline
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.
Bug-tracking systems
Coding style and guidelines
Questions & answers services (Q&A)
User study
DFLOW
Smalltalk IDE
Recorder Analyzer …
HTTP
DFLOW
Server
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

Free Hugs — Praising developers for their actions [ICSE2015]

  • 1.
    Free Hugs Praising DevelopersFor Their Actions Roberto Minelli, Andrea Mocci, Michele Lanza REVEAL @ Faculty of Informatics — University of Lugano, Switzerland@robertominelli
  • 2.
  • 3.
    “Playing a gameis the voluntary attempt to overcome unnecessary obstacles.” Goal Rules Feedback system Voluntary participation Reality is Broken J. McGonigal Penguin, 2011
  • 4.
    “Playing a gameis the voluntary attempt to overcome unnecessary obstacles.” Goal Rules Feedback system Voluntary participation Reality is Broken J. McGonigal Penguin, 2011
  • 5.
    “Playing a gameis the voluntary attempt to overcome unnecessary obstacles.” Goal Rules Feedback system Voluntary participation Reality is Broken J. McGonigal Penguin, 2011
  • 6.
    “The use ofgame thinking and game mechanics in non-game contexts to augment the engagement of users.” Gamification |ˌgāmifəˈkāSHən|
  • 11.
  • 12.
  • 13.
  • 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
  • 16.
  • 17.
    “The programmer, likethe 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
  • 18.
  • 19.
    What can be doneabout it? developer
  • 20.
  • 21.
    “If you dothis you’ll get that.” Reflections on Behaviorism and Society B. Skinner Prentice Hall, 1978
  • 22.
  • 23.
  • 24.
  • 25.
    Session Digest What? When? 1class 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? 1class 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? 1class 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? 1class 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 “Asystem 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 Anew community, where people can observe, challenge, and interact with other developers PSN
  • 34.
    Session Digest When? Navigation UnderstandingEditing User Interface browsinginspecting searchin What? 1 class 3 methods 3 class 4 methods 1 class 1 method navigation inspection edit mouse keyboard TopActivity Timeline
  • 35.
    Roberto Minelli, AndreaMocci, 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.
  • 36.
    Bug-tracking systems Coding styleand guidelines Questions & answers services (Q&A) User study
  • 37.
  • 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