Benevol 2008: Relationship between Orphaning and Productivity

download Benevol 2008: Relationship between Orphaning and Productivity

of 31

Transcript of Benevol 2008: Relationship between Orphaning and Productivity

  • 8/8/2019 Benevol 2008: Relationship between Orphaning and Productivity

    1/31

    Introduction to OrphaningApproach

    Results and Work in ProgressFurther Work

    Relationship between Orphaning and Productivityin Evolution and GIMPProjects

    BENEVOL 2008. Eindhoven.

    Daniel Izquierdo Cortazar

    [email protected]/Libresoft, Universidad Rey Juan Carlos - University of Mons-Hainaut

    December 11, 2008

    Daniel Izquierdo Cortazar Relationship between Orphaning and Productivity in Evolution a

    http://find/http://goback/
  • 8/8/2019 Benevol 2008: Relationship between Orphaning and Productivity

    2/31

    Introduction to OrphaningApproach

    Results and Work in ProgressFurther Work

    (cc) 2008 Daniel Izquierdo Cortazar.Some rights reserved. This document is distributed under the Creative

    Commons Attribution-ShareAlike 2.5 licence, available inhttp://creativecommons.org/licenses/by-sa/2.5/

    Daniel Izquierdo Cortazar Orphaning and Productivity

    http://find/http://goback/
  • 8/8/2019 Benevol 2008: Relationship between Orphaning and Productivity

    3/31

    Introduction to OrphaningApproach

    Results and Work in ProgressFurther Work

    Table of contents

    1 Introduction to Orphaning

    2 Approach

    3 Results and Work in Progress

    4 Further Work

    Daniel Izquierdo Cortazar Orphaning and Productivity

    http://find/http://goback/
  • 8/8/2019 Benevol 2008: Relationship between Orphaning and Productivity

    4/31

    Introduction to OrphaningApproach

    Results and Work in ProgressFurther Work

    Index

    1 Introduction to Orphaning

    2 Approach

    3 Results and Work in Progress

    4 Further Work

    Daniel Izquierdo Cortazar Orphaning and Productivity

    I d i O h i

    http://find/http://goback/
  • 8/8/2019 Benevol 2008: Relationship between Orphaning and Productivity

    5/31

    Introduction to OrphaningApproach

    Results and Work in ProgressFurther Work

    Developer Turnover

    Developer turnover is a problem.

    There is a knowledge gap when senior developers leave aproject

    New developers need some time to become familiar withexisting source code

    Daniel Izquierdo Cortazar Orphaning and Productivity

    I t d ti t O h i

    http://find/http://goback/
  • 8/8/2019 Benevol 2008: Relationship between Orphaning and Productivity

    6/31

    Introduction to OrphaningApproach

    Results and Work in ProgressFurther Work

    Knowledge

    Tacit knowledge: Not measurable

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

    Daniel Izquierdo Cortazar Orphaning and Productivity

    Introduction to Orphaning

    http://find/http://goback/
  • 8/8/2019 Benevol 2008: Relationship between Orphaning and Productivity

    7/31

    Introduction to OrphaningApproach

    Results and Work in ProgressFurther 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 Cortazar Orphaning and Productivity

    Introduction to Orphaning

    http://find/http://goback/
  • 8/8/2019 Benevol 2008: Relationship between Orphaning and Productivity

    8/31

    Introduction to OrphaningApproach

    Results and Work in ProgressFurther Work

    Research Question

    How can we measure the knowledge loss due to

    developer turnover?

    Approach to measure knowledge gap left by developersIs this knowledge gap a good indicator for the projectshealth?

    Useful for managers, to determine risky zones

    We can measure the impact in number of lines of codewithout author present in the current team

    Daniel Izquierdo Cortazar Orphaning and Productivity

    Introduction to Orphaning

    http://find/http://goback/
  • 8/8/2019 Benevol 2008: Relationship between Orphaning and Productivity

    9/31

    Introduction to OrphaningApproach

    Results and Work in ProgressFurther Work

    Index

    1 Introduction to Orphaning

    2 Approach

    3 Results and Work in Progress

    4 Further Work

    Daniel Izquierdo Cortazar Orphaning and Productivity

    Introduction to Orphaning

    http://find/http://goback/
  • 8/8/2019 Benevol 2008: Relationship between Orphaning and Productivity

    10/31

    Introduction to OrphaningApproach

    Results and Work in ProgressFurther Work

    Previous Definitions

    Committer: Developer with write access to the SCM system.

    Author: Original developer of a line of codeNon-Active Committer: Committer with no activity since agiven date

    Orphaned Line: Line of code whose author is a non-active

    committer

    Daniel Izquierdo Cortazar Orphaning and Productivity

    Introduction to Orphaning

    http://find/http://goback/
  • 8/8/2019 Benevol 2008: Relationship between Orphaning and Productivity

    11/31

    p gApproach

    Results and Work in ProgressFurther Work

    CVS Log

    [...]1.246 (pj 13-Nov-01): /* Optional arg STRING supplies menu name for the keymap1.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): LispObjectstring;1.8 (rms 11-Sep-92):1.8 (rms 11-Sep-92): LispObjecttail;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): else1.8 (rms 11-Sep-92): tail = Qnil;1.1 (jimb 06-May-91): return Fcons (Qkeymap,1.137 (rms 13-May-97): Fcons (Fmakechartable(Qkeymap,Qnil), tail));1.1 (jimb 06-May-91):

    ..

    Daniel Izquierdo Cortazar Orphaning and Productivity

    Introduction to Orphaning

    http://find/http://goback/
  • 8/8/2019 Benevol 2008: Relationship between Orphaning and Productivity

    12/31

    p gApproach

    Results and Work in ProgressFurther Work

    Studying each period

    Monthly analysis

    Snapshots from each month

    Daniel Izquierdo Cortazar Orphaning and Productivity

    Introduction to Orphaning

    http://find/http://goback/
  • 8/8/2019 Benevol 2008: Relationship between Orphaning and Productivity

    13/31

    gApproach

    Results and Work in ProgressFurther 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 Cortazar Orphaning and Productivity

    Introduction to Orphaning

    http://find/http://goback/
  • 8/8/2019 Benevol 2008: Relationship between Orphaning and Productivity

    14/31

    ApproachResults 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 thedata 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 MySQLdatabase.

    Daniel Izquierdo Cortazar Orphaning and Productivity

    Introduction to OrphaningA h

    https://forge.morfeo-project.org/projects/libresoft-tools/https://forge.morfeo-project.org/projects/libresoft-tools/https://forge.morfeo-project.org/projects/libresoft-tools/https://forge.morfeo-project.org/projects/libresoft-tools/http://find/http://goback/
  • 8/8/2019 Benevol 2008: Relationship between Orphaning and Productivity

    15/31

    ApproachResults and Work in Progress

    Further Work

    Index

    1 Introduction to Orphaning

    2 Approach

    3 Results and Work in Progress

    4 Further Work

    Daniel Izquierdo Cortazar Orphaning and Productivity

    Introduction to OrphaningA h

    http://find/http://goback/
  • 8/8/2019 Benevol 2008: Relationship between Orphaning and Productivity

    16/31

    ApproachResults and Work in Progress

    Further Work

    Case Studies: GIMPand Evolution

    GIMP (GNU Image Manipulation Program) is a graphicseditor

    Daniel Izquierdo Cortazar Orphaning and Productivity

    Introduction to OrphaningApproach

    http://find/http://goback/
  • 8/8/2019 Benevol 2008: Relationship between Orphaning and Productivity

    17/31

    ApproachResults and Work in Progress

    Further Work

    Case Studies: GIMPand Evolution

    Evolution combines e-mail, calendar, address book and tasklist managements functions

    Daniel Izquierdo Cortazar Orphaning and Productivity

    Introduction to OrphaningApproach

    http://find/http://goback/
  • 8/8/2019 Benevol 2008: Relationship between Orphaning and Productivity

    18/31

    ApproachResults and Work in Progress

    Further Work

    Case Studies: GIMPand Evolution

    Both started at the same time (around 1998. At least usingthe Source Code Management system)

    Both are included by default in the GNOME desktop (usingthe same process and release cycle)

    Daniel Izquierdo Cortazar Orphaning and Productivity

    Introduction to OrphaningApproach

    http://find/http://goback/
  • 8/8/2019 Benevol 2008: Relationship between Orphaning and Productivity

    19/31

    ApproachResults and Work in Progress

    Further Work

    Orphaned Lines vs Size

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

    Time

    0

    200000

    400000

    600000

    800000

    1000000

    1200000

    NumberofLines

    Ev. Total LinesEv. Orph. LinesGIMP Total LinesGIMP Orph. Lines

    Size an Orp ane Lines Evo ution

    Daniel Izquierdo Cortazar Orphaning and Productivity

    http://find/http://goback/
  • 8/8/2019 Benevol 2008: Relationship between Orphaning and Productivity

    20/31

    Introduction to OrphaningApproach

  • 8/8/2019 Benevol 2008: Relationship between Orphaning and Productivity

    21/31

    ppResults and Work in Progress

    Further Work

    Orphaned Lines GIMP

    Just a big jump

    Core group of developers remain stable during the wholeproject

    Evolution of orphaned lines continuously decrease

    Nowadays, the number of orphaned lines reach 13%!

    Daniel Izquierdo Cortazar Orphaning and Productivity

    http://find/http://goback/
  • 8/8/2019 Benevol 2008: Relationship between Orphaning and Productivity

    22/31

    Introduction to OrphaningApproach

  • 8/8/2019 Benevol 2008: Relationship between Orphaning and Productivity

    23/31

    Results and Work in ProgressFurther Work

    Matching Orphaningand Productivity

    Work in Progress:Hypothesis: High orphaning is correlated with lowproductivity

    Daniel Izquierdo Cortazar Orphaning and Productivity

    Introduction to OrphaningApproach

    R l d W k i P

    http://find/http://goback/
  • 8/8/2019 Benevol 2008: Relationship between Orphaning and Productivity

    24/31

    Results and Work in ProgressFurther Work

    Matching Orphaningand Productivity:Evolution

    1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008

    Time

    0

    500

    1000

    1500

    2000

    ModifiedFIles

    Productivity Evolution Project

    1998 2002 2006

    Time

    0

    100000

    200000

    300000

    400000

    #O

    rphanedL

    ines

    Orphaned Lines Evolution - Evolution Project

    Daniel Izquierdo Cortazar Orphaning and Productivity

    Introduction to OrphaningApproach

    R lt d W k i P

    http://find/http://goback/
  • 8/8/2019 Benevol 2008: Relationship between Orphaning and Productivity

    25/31

    Results and Work in ProgressFurther Work

    Matching Orphaningand Productivity:GIMP

    1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008

    Time

    0

    500

    1000

    1500

    2000

    2500

    3000

    ModifiedFiles

    Productivity GIMP Project

    1998 2002 2006

    Time

    0

    100000

    200000

    300000

    400000

    500000

    #O

    rphanedLines

    Orphaned Lines Evolution - GIMP Project

    Daniel Izquierdo Cortazar Orphaning and Productivity

    Introduction to OrphaningApproach

    Results and Work in Progress

    http://find/http://goback/
  • 8/8/2019 Benevol 2008: Relationship between Orphaning and Productivity

    26/31

    Results and Work in ProgressFurther Work

    Conclusions

    Evolution: New set of developers = Increase of the

    productivity (Surprising for us!)Evolution: Old core group tended to disappear = big jumps inorphaning and productivity

    GIMP: Risky situation, if some of the core group developersdisappear

    Daniel Izquierdo Cortazar Orphaning and Productivity

    Introduction to OrphaningApproach

    Results and Work in Progress

    http://find/http://goback/
  • 8/8/2019 Benevol 2008: Relationship between Orphaning and Productivity

    27/31

    Results and Work in ProgressFurther Work

    Conclusions

    Evolution: company-driven project. People have to deal withthat code, they are paid for that job.

    GIMP: community-driven project. People just choose, perhapsthey prefer to start from scratch.

    Daniel Izquierdo Cortazar Orphaning and Productivity

    Introduction to OrphaningApproach

    Results and Work in Progress

    http://find/http://goback/
  • 8/8/2019 Benevol 2008: Relationship between Orphaning and Productivity

    28/31

    Results and Work in ProgressFurther Work

    Index

    1 Introduction to Orphaning

    2 Approach

    3 Results and Work in Progress

    4 Further Work

    Daniel Izquierdo Cortazar Orphaning and Productivity

    Introduction to OrphaningApproach

    Results and Work in Progress

    http://find/http://goback/
  • 8/8/2019 Benevol 2008: Relationship between Orphaning and Productivity

    29/31

    Results and Work in ProgressFurther Work

    Productivity

    Detection of files with high levels of orphaning

    Measure how they evolve

    New Hypothesis: High levels of orphaning (in a file) iscorrelated with low levels of productivity (in that file)

    Daniel Izquierdo Cortazar Orphaning and Productivity

    Introduction to OrphaningApproach

    Results and Work in Progress

    http://find/http://goback/
  • 8/8/2019 Benevol 2008: Relationship between Orphaning and Productivity

    30/31

    gFurther Work

    Enrich the approach

    More projects, more data.

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

    Daniel Izquierdo Cortazar Orphaning and Productivity

    Introduction to OrphaningApproach

    Results and Work in Progress

    http://find/http://goback/
  • 8/8/2019 Benevol 2008: Relationship between Orphaning and Productivity

    31/31

    gFurther Work

    Thanks for your attention

    Thanks for your attention!

    Daniel Izquierdo Cortazar Orphaning and Productivity

    http://find/http://goback/