Sie sind auf Seite 1von 27

Motivation

Research Questions
Methodology
Preliminary Results
Further Work and Open Questions

Software Evolution and Human Resources.


Knowledge Gap left by Developers due to Turnover

Daniel Izquierdo Cortázar

dizquierdo@gsyc.es
GSyC/Libresoft, Universidad Rey Juan Carlos

Doctoral Consortium, OSS 2010, Notre Dame, USA


May, 30th 2010

Daniel Izquierdo Cortázar Software Evolution and Human Resources.


Motivation
Research Questions
Methodology
Preliminary Results
Further Work and Open Questions

(cc) 2010 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 Software Evolution and Human Resources.


Motivation
Research Questions
Methodology
Preliminary Results
Further Work and Open Questions

Table of contents

1 Motivation

2 Research Questions

3 Methodology

4 Preliminary Results

5 Further Work and Open Questions

Daniel Izquierdo Cortázar Software Evolution and Human Resources.


Motivation
Research Questions
Methodology
Preliminary Results
Further Work and Open Questions

Index

1 Motivation

2 Research Questions

3 Methodology

4 Preliminary Results

5 Further Work and Open Questions

Daniel Izquierdo Cortázar Software Evolution and Human Resources.


Motivation
Research Questions
Methodology
Preliminary Results
Further Work and Open Questions

Introducing developer’s turnover

All the projects, even the most stable have to face developer’s
turnover.
People tend to change their job after some years.
Project managers have to deal with these situations.
So, a new developer comes to fill that gap.

Daniel Izquierdo Cortázar Software Evolution and Human Resources.


Motivation
Research Questions
Methodology
Preliminary Results
Further Work and Open Questions

Introducing developer’s turnover

Thus, there is a natural regeneration of developers.


Let us use “junior” for those who have just landed.
All of that experienced and knowledge about the project is
missed when seniors are gone.

Daniel Izquierdo Cortázar Software Evolution and Human Resources.


Motivation
Research Questions
Methodology
Preliminary Results
Further Work and Open Questions

Introducing developer’s turnover

It is estimated in around 6 months the time to be productive


as the same level as seniors.
Even more if more sophisticated work is in progress.

Daniel Izquierdo Cortázar Software Evolution and Human Resources.


Motivation
Research Questions
Methodology
Preliminary Results
Further Work and Open Questions

Introducing developer’s turnover

Thus, how to measure that knowledge gap left by developers?


Source code lines / functions / files / modules.
We are dealing with the idea of “orphaning”.
And we are proposing a way to measure that knowledge gap.

Daniel Izquierdo Cortázar Software Evolution and Human Resources.


Motivation
Research Questions
Methodology
Preliminary Results
Further Work and Open Questions

Previous definitions

Committer: Person who has the right to submit changes to


the source code management system (SCM).
Author: In some SCMs the real author could be specified
(such as Git).
Non-active committer: That committer who left the project in
a specific date.
Orphaned line: That line owned by a non-active committer.
This line will remain until this is removed or modified.

Daniel Izquierdo Cortázar Software Evolution and Human Resources.


Motivation
Research Questions
Methodology
Preliminary Results
Further Work and Open Questions

Intuition

Areas with high orphaning tend to remain in time.


Bugs found in orphaned areas will take more time to be fixed.
Developers tend to work on their own source code.
Others...

Daniel Izquierdo Cortázar Software Evolution and Human Resources.


Motivation
Research Questions
Methodology
Preliminary Results
Further Work and Open Questions

Why could this be interesting?

Using the idea of orphaning, we could answer some questions:


Looking for abandoned areas in your project: full orphaned
files/modules.
How much orphaning is found in my project?: The higher the
less knowledge over the source code.
Check orphaned areas left by key developers: Then try to
re-collocate your best developers when some other leave.

Daniel Izquierdo Cortázar Software Evolution and Human Resources.


Motivation
Research Questions
Methodology
Preliminary Results
Further Work and Open Questions

Index

1 Motivation

2 Research Questions

3 Methodology

4 Preliminary Results

5 Further Work and Open Questions

Daniel Izquierdo Cortázar Software Evolution and Human Resources.


Motivation
Research Questions
Methodology
Preliminary Results
Further Work and Open Questions

Some Initial Questions

So far, we have a new “metric” which provides information


about the quantity of orphaned code in your project.
(Knowledge loss due to developers turnover).
In the following: so what?. This metric needs something more
to be validated.
This information should be matched/correlated with some
other.

Daniel Izquierdo Cortázar Software Evolution and Human Resources.


Motivation
Research Questions
Methodology
Preliminary Results
Further Work and Open Questions

Some Initial Questions

The first approach consists of matching orphaning and bug


prediction/fixing process:
Is there any kind of relation between orphaning and bug fixing?
Is there less maintenance in orphaned areas?
Is it possible to have “orphaning” as a metric to measure
maintainability or code decay?
Detecting areas with high orphaning, means lower maintenance
of them? (perhaps they are mature enough).

Daniel Izquierdo Cortázar Software Evolution and Human Resources.


Motivation
Research Questions
Methodology
Preliminary Results
Further Work and Open Questions

Hypothesis

General questions:
The higher the regeneration of developers, the higher the
number of orphaned lines.
The lower the regeneration of developers, the lower the
number of orphaned lines.

Daniel Izquierdo Cortázar Software Evolution and Human Resources.


Motivation
Research Questions
Methodology
Preliminary Results
Further Work and Open Questions

Specific questions: (Real relation between orphaning and bugs


activity).
The knowledge gap tends to be absorbed by other active
developers.
The larger areas with orphaned code, the ...:
... larger number of remaining open bug reports.
... longer time to fix those bugs.
... longer time to be picked up.
... more tossing changes found.
... more number of predicted bugs appear.

Daniel Izquierdo Cortázar Software Evolution and Human Resources.


Motivation
Research Questions
Methodology
Preliminary Results
Further Work and Open Questions

Index

1 Motivation

2 Research Questions

3 Methodology

4 Preliminary Results

5 Further Work and Open Questions

Daniel Izquierdo Cortázar Software Evolution and Human Resources.


Motivation
Research Questions
Methodology
Preliminary Results
Further Work and Open Questions

CVSAnalY: 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): Lisp Object string;
1.8 (rms 11-Sep-92): {
1.8 (rms 11-Sep-92): Lisp Object tail;
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 (Fmake char table (Qkeymap, Qnil), tail));
1.1 (jimb 06-May-91): }

...

Daniel Izquierdo Cortázar Software Evolution and Human Resources.


Motivation
Research Questions
Methodology
Preliminary Results
Further Work and Open Questions

Orphaning

Projects which initially offer a Git repository (e.g.: the one


used by the Linux Kernel).
The differences between one version and next one are
obtained and stored in a MySQL database.
If a developer leaves the project, her lines become orphaned.

Daniel Izquierdo Cortázar Software Evolution and Human Resources.


Motivation
Research Questions
Methodology
Preliminary Results
Further Work and Open Questions

Adding Bugs Information

There are two possibilities:


Try to match orphaned lines with what we know (retrieving
real information from BTS).
Try to predict bugs based on existing source code and changes.

Daniel Izquierdo Cortázar Software Evolution and Human Resources.


Motivation
Research Questions
Methodology
Preliminary Results
Further Work and Open Questions

Index

1 Motivation

2 Research Questions

3 Methodology

4 Preliminary Results

5 Further Work and Open Questions

Daniel Izquierdo Cortázar Software Evolution and Human Resources.


Motivation
Research Questions
Methodology
Preliminary Results
Further Work and Open Questions

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 Software Evolution and Human Resources.


Motivation
Research Questions
Methodology
Preliminary Results
Further Work and Open Questions

Orphaned Lines vs Size

Size and Orphaned Lines Evolution


1200000

1000000
Number of Lines

800000

600000 Ev. Total Lines


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

200000

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

Daniel Izquierdo Cortázar Software Evolution and Human Resources.


Motivation
Research Questions
Methodology
Preliminary Results
Further Work and Open Questions

Index

1 Motivation

2 Research Questions

3 Methodology

4 Preliminary Results

5 Further Work and Open Questions

Daniel Izquierdo Cortázar Software Evolution and Human Resources.


Motivation
Research Questions
Methodology
Preliminary Results
Further Work and Open Questions

Work in Progress

Still working on the tool to extract information: the examples


shown are based on an older version.
Also, understanding the bug prediction based on source code.
Improving the tool to extract information from BTS.
Analyzing results at file granularity.

Daniel Izquierdo Cortázar Software Evolution and Human Resources.


Motivation
Research Questions
Methodology
Preliminary Results
Further Work and Open Questions

Open Questions

We still do not know what exactly means orphaning: matching


that with bug prediction/bug fixing is expected to help.
Limitations:
Mature areas could be wrong validated as orphaned areas.
Communities such as PostgreSQL are quite restrictive: The
commit rights are owned by few people.
Working at the level of line could avoid from getting richer
information.
Blank lines, changes such as spaces, adding licenses
information, etc.

Daniel Izquierdo Cortázar Software Evolution and Human Resources.


Motivation
Research Questions
Methodology
Preliminary Results
Further Work and Open Questions

Questions?

Thanks for your attendance!


Questions?

Daniel Izquierdo Cortázar Software Evolution and Human Resources.

Das könnte Ihnen auch gefallen