Вы находитесь на странице: 1из 31

Introduction to Orphaning

Approach
Results and Work in Progress
Further Work

Relationship between Orphaning and Productivity


in Evolution and GIMP Projects
BENEVOL 2008. Eindhoven.

Daniel Izquierdo Cortázar

dizquierdo@gsyc.es
GSyC/Libresoft, Universidad Rey Juan Carlos - University of Mons-Hainaut

December 11, 2008

Daniel Izquierdo Cortázar Relationship between Orphaning and Productivity in Evolution an


Introduction to Orphaning
Approach
Results and Work in Progress
Further Work

(cc) 2008 Daniel Izquierdo Cortázar.


Some rights reserved. This document is distributed under the Creative
Commons Attribution-ShareAlike 2.5 licence, available in
http://creativecommons.org/licenses/by-sa/2.5/

Daniel Izquierdo Cortázar Orphaning and Productivity


Introduction to Orphaning
Approach
Results and Work in Progress
Further Work

Table of contents

1 Introduction to Orphaning

2 Approach

3 Results and Work in Progress

4 Further Work

Daniel Izquierdo Cortázar Orphaning and Productivity


Introduction to Orphaning
Approach
Results and Work in Progress
Further Work

Index

1 Introduction to Orphaning

2 Approach

3 Results and Work in Progress

4 Further Work

Daniel Izquierdo Cortázar Orphaning and Productivity


Introduction to Orphaning
Approach
Results and Work in Progress
Further Work

Developer Turnover

Developer turnover is a problem.


There is a knowledge gap when senior developers leave a
project
New developers need some time to become familiar with
existing source code

Daniel Izquierdo Cortázar Orphaning and Productivity


Introduction to Orphaning
Approach
Results and Work in Progress
Further Work

Knowledge

Tacit knowledge: Not measurable


Explicit knowledge: It remains in the company/project
artifacts, such as code or documentation

Daniel Izquierdo Cortázar Orphaning and Productivity


Introduction to Orphaning
Approach
Results and Work in Progress
Further Work

Knowledge Sharing

It is complicated to share tacit knowledge, but ...


We can measure explicit knowledge:
Source code management (CVS, SVN, Git, ...)
Mailing lists
Bug tracking systems

Daniel Izquierdo Cortázar Orphaning and Productivity


Introduction to Orphaning
Approach
Results and Work in Progress
Further Work

Research Question

How can we measure the knowledge loss due to


developer turnover?
Approach to measure knowledge gap left by developers
Is this knowledge gap a good indicator for the project’s
health?
Useful for managers, to determine risky zones
We can measure the impact in number of lines of code
without author present in the current team

Daniel Izquierdo Cortázar Orphaning and Productivity


Introduction to Orphaning
Approach
Results and Work in Progress
Further Work

Index

1 Introduction to Orphaning

2 Approach

3 Results and Work in Progress

4 Further Work

Daniel Izquierdo Cortázar Orphaning and Productivity


Introduction to Orphaning
Approach
Results and Work in Progress
Further Work

Previous Definitions

Committer: Developer with write access to the SCM system.


Author: Original developer of a line of code
Non-Active Committer: Committer with no activity since a
given date
Orphaned Line: Line of code whose author is a non-active
committer

Daniel Izquierdo Cortázar Orphaning and Productivity


Introduction to Orphaning
Approach
Results and Work in Progress
Further Work

CVS Log

[...]
1.246 (pj 13-Nov-01): /* Optional arg STRING supplies menu name for the keymap
1.246 (pj 13-Nov-01): in case you use it as a menu with ‘x-popup-menu’. */)
1.246 (pj 13-Nov-01): (string)
1.8 (rms 11-Sep-92): LispO bjectstring ;
1.8 (rms 11-Sep-92):
1.8 (rms 11-Sep-92): LispO bjecttail;
1.8 (rms 11-Sep-92): if (!NILP (string))
1.8 (rms 11-Sep-92): tail = Fcons (string, Qnil);
1.8 (rms 11-Sep-92): else
1.8 (rms 11-Sep-92): tail = Qnil;
1.1 (jimb 06-May-91): return Fcons (Qkeymap,
1.137 (rms 13-May-97): Fcons (Fmakec hart able(Qkeymap, Qnil), tail));
1.1 (jimb 06-May-91):

..

Daniel Izquierdo Cortázar Orphaning and Productivity


Introduction to Orphaning
Approach
Results and Work in Progress
Further Work

Studying each period

Monthly analysis
Snapshots from each month

Daniel Izquierdo Cortázar Orphaning and Productivity


Introduction to Orphaning
Approach
Results and Work in Progress
Further Work

Detection of non-active committers

When does a committer leave the project?


How many lines were authored by her?
new orphaned lines

Daniel Izquierdo Cortázar Orphaning and Productivity


Introduction to Orphaning
Approach
Results and Work in Progress
Further Work

Tools

Libresoft-tools: publicly available


https://forge.morfeo-project.org/projects/
libresoft-tools/
CVSAnalY: It parsers CVS, SVN or Git log and stores the
data in SQL format (MySQL, PostgreSQL or SQLite)
Carnarvon: It parsers each line of code and stores data
regarding to author, date, revision and so on in MySQL
database.

Daniel Izquierdo Cortázar Orphaning and Productivity


Introduction to Orphaning
Approach
Results and Work in Progress
Further Work

Index

1 Introduction to Orphaning

2 Approach

3 Results and Work in Progress

4 Further Work

Daniel Izquierdo Cortázar Orphaning and Productivity


Introduction to Orphaning
Approach
Results and Work in Progress
Further Work

Case Studies: GIMP and Evolution

GIMP (GNU Image Manipulation Program) is a graphics


editor

Daniel Izquierdo Cortázar Orphaning and Productivity


Introduction to Orphaning
Approach
Results and Work in Progress
Further Work

Case Studies: GIMP and Evolution

Evolution combines e-mail, calendar, address book and task


list managements functions

Daniel Izquierdo Cortázar Orphaning and Productivity


Introduction to Orphaning
Approach
Results and Work in Progress
Further Work

Case Studies: GIMP and Evolution

Both started at the same time (around 1998. At least using


the Source Code Management system)
Both are included by default in the GNOME desktop (using
the same process and release cycle)

Daniel Izquierdo Cortázar Orphaning and Productivity


Introduction to Orphaning
Approach
Results and Work in Progress
Further Work

Orphaned Lines vs Size

Size and Orphaned Lines Evolution


1200000

1000000

800000
Number of Lines

600000 Ev. Total Lines


Ev. Orph. Lines
GIMP Total Lines
GIMP Orph. Lines
400000

200000

0
1998-02-28 2000-02-28 2002-03-28 2004-03-28 2006-03-28
Time

Daniel Izquierdo Cortázar Orphaning and Productivity


Introduction to Orphaning
Approach
Results and Work in Progress
Further Work

Orphaned Lines Evolution

Three main jumps


Core group of developers turnover is abrupt
Evolution of orphaned lines (not taking into account big
deletions) is almost stable, just a small decrease
Nowadays, the number of orphaned lines reach 80%!

Daniel Izquierdo Cortázar Orphaning and Productivity


Introduction to Orphaning
Approach
Results and Work in Progress
Further Work

Orphaned Lines GIMP

Just a big jump


Core group of developers remain stable during the whole
project
Evolution of orphaned lines continuously decrease
Nowadays, the number of orphaned lines reach 13%!

Daniel Izquierdo Cortázar Orphaning and Productivity


Introduction to Orphaning
Approach
Results and Work in Progress
Further Work

What can tell us Orphaning?

We do not really know...


but we have some intuitions:
Maintenance problems could appear: try to quickly fix a
defect in areas which you do not know
Code decay and aging : Orphaned areas in Evolution have not
been modified for a long time

Daniel Izquierdo Cortázar Orphaning and Productivity


Introduction to Orphaning
Approach
Results and Work in Progress
Further Work

Matching Orphaning and Productivity

Work in Progress:
Hypothesis: High orphaning is correlated with low
productivity

Daniel Izquierdo Cortázar Orphaning and Productivity


Introduction to Orphaning
Approach
Results and Work in Progress
Further Work

Matching Orphaning and Productivity:Evolution


Productivity Evolution Project
2000

1500
Modified FIles

1000

500

0
1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008
Time
Orphaned Lines Evolution - Evolution Project
400000
# Orphaned Lines

300000

200000

100000

0
1998 2002 2006
Time

Daniel Izquierdo Cortázar Orphaning and Productivity


Introduction to Orphaning
Approach
Results and Work in Progress
Further Work

Matching Orphaning and Productivity:GIMP


Productivity GIMP Project
3000

2500
Modified Files

2000

1500

1000

500

0
1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008
Time
Orphaned Lines Evolution - GIMP Project
500000

400000
# Orphaned Lines

300000

200000

100000

0
1998 2002 2006
Time

Daniel Izquierdo Cortázar Orphaning and Productivity


Introduction to Orphaning
Approach
Results and Work in Progress
Further Work

Conclusions

Evolution: New set of developers = Increase of the


productivity (Surprising for us!)
Evolution: Old core group tended to disappear = big jumps in
orphaning and productivity
GIMP: Risky situation, if some of the core group developers
disappear

Daniel Izquierdo Cortázar Orphaning and Productivity


Introduction to Orphaning
Approach
Results and Work in Progress
Further Work

Conclusions

Evolution: company-driven project. People have to deal with


that code, they are paid for that job.
GIMP: community-driven project. People just choose, perhaps
they prefer to start from scratch.

Daniel Izquierdo Cortázar Orphaning and Productivity


Introduction to Orphaning
Approach
Results and Work in Progress
Further Work

Index

1 Introduction to Orphaning

2 Approach

3 Results and Work in Progress

4 Further Work

Daniel Izquierdo Cortázar Orphaning and Productivity


Introduction to Orphaning
Approach
Results and Work in Progress
Further Work

Productivity

Detection of files with high levels of orphaning


Measure how they evolve
New Hypothesis: High levels of orphaning (in a file) is
correlated with low levels of productivity (in that file)

Daniel Izquierdo Cortázar Orphaning and Productivity


Introduction to Orphaning
Approach
Results and Work in Progress
Further Work

Enrich the approach

More projects, more data.


Working on Apache 1.3, GTK++, Wireshark and some others.

Daniel Izquierdo Cortázar Orphaning and Productivity


Introduction to Orphaning
Approach
Results and Work in Progress
Further Work

Thanks for your attention

Thanks for your attention!

Daniel Izquierdo Cortázar Orphaning and Productivity

Вам также может понравиться