commit 2.0 - enriching commit comments with visualization

48
Marco D’Ambros university of Lugano switzerland Michele Lanza university of Lugano switzerland Romain robbes University of chile chile

Upload: marco-dambros

Post on 06-May-2015

3.252 views

Category:

Technology


2 download

DESCRIPTION

The real story of how Neo Programmerson took the red pill and switch to the Commit 2.0 world

TRANSCRIPT

Page 1: Commit 2.0 - Enriching commit comments with visualization

Marco D’Ambrosuniversity of Lugano

switzerland

Michele Lanzauniversity of Lugano

switzerland

Romain robbesUniversity of chile

chile

Page 2: Commit 2.0 - Enriching commit comments with visualization

neo

Neo

Page 3: Commit 2.0 - Enriching commit comments with visualization

neo

Neo Neo’s girlfriend

Page 4: Commit 2.0 - Enriching commit comments with visualization

neo

Neo Neo’s girlfriend

commit 2.0

Page 5: Commit 2.0 - Enriching commit comments with visualization

neo

Neo Neo’s girlfriend

commit 2.0 pharo ide

Page 6: Commit 2.0 - Enriching commit comments with visualization

neo

Neo Neo’s girlfriend

commit 2.0

eclipse ide

pharo ide

Page 7: Commit 2.0 - Enriching commit comments with visualization

neo

Page 8: Commit 2.0 - Enriching commit comments with visualization

DeveloperDeveloperDeveloperDeveloperDeveloper

neo

Page 9: Commit 2.0 - Enriching commit comments with visualization

DeveloperDeveloperDeveloperDeveloperDeveloper

neo

documenting changes

Page 10: Commit 2.0 - Enriching commit comments with visualization

DeveloperDeveloperDeveloperDeveloperDeveloper

neo

neo

documenting changes

Page 11: Commit 2.0 - Enriching commit comments with visualization

DeveloperDeveloperDeveloperDeveloperDeveloper

neo

Development team

neo

documenting changes

Page 12: Commit 2.0 - Enriching commit comments with visualization

DeveloperDeveloperDeveloperDeveloperDeveloper

neo

Development team

neo

documenting changes

communication means

Page 13: Commit 2.0 - Enriching commit comments with visualization

DeveloperDeveloperDeveloperDeveloperDeveloper

neo

Development team

neo

documenting changes

communication means

ResearcherResearcher

Page 14: Commit 2.0 - Enriching commit comments with visualization

DeveloperDeveloperDeveloperDeveloperDeveloper

neo

Development team

neo

documenting changes

communication means

ResearcherResearcher

Mining software

repositories

Page 15: Commit 2.0 - Enriching commit comments with visualization

DeveloperDeveloperDeveloperDeveloperDeveloper

neo

developers often do not have time and resources to write detailed commit comments

Page 16: Commit 2.0 - Enriching commit comments with visualization

DeveloperDeveloperDeveloperDeveloperDeveloper

neo

time pressure

developers often do not have time and resources to write detailed commit comments

Page 17: Commit 2.0 - Enriching commit comments with visualization

DeveloperDeveloperDeveloperDeveloperDeveloper

neo

time pressure

boss pressure

developers often do not have time and resources to write detailed commit comments

Page 18: Commit 2.0 - Enriching commit comments with visualization

DeveloperDeveloperDeveloperDeveloperDeveloper

neo

time pressure

boss pressure deadline pressure

developers often do not have time and resources to write detailed commit comments

Page 19: Commit 2.0 - Enriching commit comments with visualization

DeveloperDeveloperDeveloperDeveloperDeveloper

neo

time pressure

boss pressure deadline pressure

i don't have the time for many

details

Let's just write "Added

context menu"

developers often do not have time and resources to write detailed commit comments

Page 20: Commit 2.0 - Enriching commit comments with visualization

* data source: gcc software project (gcc.gnu.org)

** data source: vuze software project (www.vuze.com)

more than 4,800 commits involve more

than 10 files*

more than 5,300 commit comments are

left blank**

large commits are difficult to document and often commit comments are left blank

Page 21: Commit 2.0 - Enriching commit comments with visualization

DeveloperDeveloperDeveloperDeveloperDeveloper

neo

* real commit comments committed in vuze (www.vuze.com) in 2010

“bugabugabuga”

“Next” “Arg”

“changes”*

now, how am i suppose to

understand these changes?

non-descriptive comments make developers’ lives harder

Page 22: Commit 2.0 - Enriching commit comments with visualization

DeveloperDeveloperDeveloperDeveloperDeveloper

neo

* real commit comments committed in vuze (www.vuze.com) in 2010

“bugabugabuga”

“Next” “Arg”

“changes”*

now, how am i suppose to

understand these changes?

mister programmerson

non-descriptive comments make developers’ lives harder

Page 23: Commit 2.0 - Enriching commit comments with visualization

DeveloperDeveloperDeveloperDeveloperDeveloper

neo

* real commit comments committed in vuze (www.vuze.com) in 2010

“bugabugabuga”

“Next” “Arg”

“changes”*

now, how am i suppose to

understand these changes?

mister programmerson

yes??

non-descriptive comments make developers’ lives harder

Page 24: Commit 2.0 - Enriching commit comments with visualization

but there is an alternative...

DeveloperDeveloperDeveloperDeveloperDeveloper

neo

are you sure that you want to use svn to document your changes?

well, i don’t know...

Page 25: Commit 2.0 - Enriching commit comments with visualization

but there is an alternative...

DeveloperDeveloperDeveloperDeveloperDeveloper

neo

are you sure that you want to use svn to document your changes?

well, i don’t know...

mr. programmerson, now you have a

choice

take the blue pill to continue using svn

take the red pill to switch to commit 2.0

Page 26: Commit 2.0 - Enriching commit comments with visualization

IDE

SCM repository

Commit 2.0Developer

Code Viz

commit 2.0 is an ide enhancement which enriches commit

comments with visualization, providing a context to

changes and a better means to communicate. it is built on top of the ide and does not change the standard

commit mechanism

SCM repository

not change the standard

I go for commit 2.0... but what is it?

Page 27: Commit 2.0 - Enriching commit comments with visualization

IDE

SCM repository

Commit 2.0Developer

Code Viz

commit 2.0 is an ide enhancement which enriches commit

comments with visualization, providing a context to

changes and a better means to communicate. it is built on top of the ide and does not change the standard

commit mechanism

SCM repository

not change the standard

I go for commit 2.0... but what is it?

it is hot here... let me remove

the jacket

Page 28: Commit 2.0 - Enriching commit comments with visualization

IDE

SCM repository

Commit 2.0Developer

Code Viz

commit 2.0 is an ide enhancement which enriches commit

comments with visualization, providing a context to

changes and a better means to communicate. it is built on top of the ide and does not change the standard

commit mechanism

SCM repository

not change the standard

I go for commit 2.0... but what is it?

it is hot here... let me remove

the jacket

Page 29: Commit 2.0 - Enriching commit comments with visualization

SCMrepository

how does it work?

Page 30: Commit 2.0 - Enriching commit comments with visualization

SCMrepository

how does it work?

Page 31: Commit 2.0 - Enriching commit comments with visualization

SCMrepository

how does it work?

when the developer clicks the commit button, commit 2.0

creates a visualization of the changes between his version and

the one in the SCM repository

Page 32: Commit 2.0 - Enriching commit comments with visualization

SCMrepository

how does it work?

when the developer clicks the commit button, commit 2.0

creates a visualization of the changes between his version and

the one in the SCM repository

Page 33: Commit 2.0 - Enriching commit comments with visualization

SCMrepository

the developer can interact with and

annotate the visualization to document the

performed changes

how does it work?

when the developer clicks the commit button, commit 2.0

creates a visualization of the changes between his version and

the one in the SCM repository

Page 34: Commit 2.0 - Enriching commit comments with visualization

Added a listener

Refactored the class

finally, commit 2.0 publishes the code on the scm repository and

the annotated visualization on a blog.

the blog is used because no scm supports

visualization

Page 35: Commit 2.0 - Enriching commit comments with visualization

Added a listener

Refactored the class

finally, commit 2.0 publishes the code on the scm repository and

the annotated visualization on a blog.

the blog is used because no scm supports

visualization

Page 36: Commit 2.0 - Enriching commit comments with visualization

Added a listener

Refactored the class

SCMrepository

code

finally, commit 2.0 publishes the code on the scm repository and

the annotated visualization on a blog.

the blog is used because no scm supports

visualization

Page 37: Commit 2.0 - Enriching commit comments with visualization

Added a listener

Refactored the class

Visualization

Posterous blog

SCMrepository

code

finally, commit 2.0 publishes the code on the scm repository and

the annotated visualization on a blog.

the blog is used because no scm supports

visualization

Page 38: Commit 2.0 - Enriching commit comments with visualization

package

Class

# attributes

# m

etho

ds

can you tell me more about the visualizations?

the size of the classes is

proportional to the number of

attributes (width) and methods

(height)

the coarse grained view shows all the

packages in a system and, within each of

them, all the classes belonging to the

package

Page 39: Commit 2.0 - Enriching commit comments with visualization

Class

inhe

ritance

Metho

d

# l

ines

of c

ode

the height of methods is

proportional to the number of lines of code,

while the width is fixed

The fine grained view represents classes and

inheritance relationships. For each class the view shows all the methods

the class has

DeveloperDeveloperDeveloperDeveloperDeveloper

neo

I see... let me guess the color scheme:

and you use lighter color for the containers

Addition

deletion

modification

indirect changes

Page 40: Commit 2.0 - Enriching commit comments with visualization

sure, here you can see a coarse

grained view where the user fixed a bug and

enriched some entities. you can see

which classes are involved in each

change

it looks fancy, but can you show me an

example?

Page 41: Commit 2.0 - Enriching commit comments with visualization

in the fine grained view

on the right you can see which methods

were added and modified to perform ui

changes and to improve name completion

Page 42: Commit 2.0 - Enriching commit comments with visualization

DeveloperDeveloperDeveloperDeveloperDeveloper

neo

absolutely!you can find it at:

commit20.inf.usi.ch

for the supported ide ask them

wow... is this real?

Page 43: Commit 2.0 - Enriching commit comments with visualization

commit 2.0 was originally

created for the pharo smalltalk ide

DeveloperDeveloperDeveloperDeveloperDeveloper

neo

absolutely!you can find it at:

commit20.inf.usi.ch

for the supported ide ask them

wow... is this real?

Page 44: Commit 2.0 - Enriching commit comments with visualization

commit 2.0 is also

available for eclipse. ask for a demo!

commit 2.0 was originally

created for the pharo smalltalk ide

DeveloperDeveloperDeveloperDeveloperDeveloper

neo

absolutely!you can find it at:

commit20.inf.usi.ch

for the supported ide ask them

wow... is this real?

Page 45: Commit 2.0 - Enriching commit comments with visualization
Page 46: Commit 2.0 - Enriching commit comments with visualization
Page 47: Commit 2.0 - Enriching commit comments with visualization

DeveloperDeveloperDeveloperDeveloperDeveloper

neo

Page 48: Commit 2.0 - Enriching commit comments with visualization

DeveloperDeveloperDeveloperDeveloperDeveloper

neo

is this really the

end of the commit 2.0 story?

to be continued...

actually no... we plan to conduct a

user study to evaluate commit 2.0 and to

improve scm to add image support