Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Analyzing Development Metrics: What We can learn (at Akademy-es 2012)

Analyzing Development Metrics: What We can learn (at Akademy-es 2012)

Akademy-es 2012
Zaragoza on 19th May, 2012
More information: http://www.kde-espana.es/akademy-es2012/programa.php

Bitergia

June 05, 2012
Tweet

More Decks by Bitergia

Other Decks in Technology

Transcript

  1. Analyzing development metrics: what can we learn
    Jesus M. Gonzalez-Barahona
    [email protected]
    http://identi.ca/jgbarah http://twitter.com/jgbarah
    Bitergia
    GSyC/LibreSoft, Universidad Rey Juan Carlos
    Akademy-es, Zaragoza, May 19th, 2012
    Updated on Aug 7th, 2012
    Jesus Gonzalez-Barahona (Bitergia) Analyzing development metrics Akademy-es 2012 1 / 23

    View full-size slide

  2. c 2012 Bitergia
    Some rights reserved. This presentation is distributed under the
    “Attribution-ShareAlike 3.0” license, by Creative Commons, available at
    http://creativecommons.org/licenses/by-sa/3.0/
    Jesus Gonzalez-Barahona (Bitergia) Analyzing development metrics Akademy-es 2012 2 / 23

    View full-size slide

  3. GSyC/LibreSoft
    Research group at Universidad Rey Juan Carlos
    About 20 persons, including students
    Focus on FLOSS (free, libre, open source software)
    One of the main research lines:
    Understanding FLOSS development
    Quantitative, empirical approach
    Based on data retrieved from FLOSS development repositories
    Participating in several R&D projects
    http://libresoft.es
    Jesus Gonzalez-Barahona (Bitergia) Analyzing development metrics Akademy-es 2012 3 / 23

    View full-size slide

  4. Alert: and international R&D project
    Active support and real-time coordination based on event processing
    in FLOSS development
    Academia, industry and FLOSS communities (KDE is involved)
    2011-2013
    Receiving information from FLOSS development repositories
    presenting with useful, updated information to developers
    http://alert-project.eu/
    Jesus Gonzalez-Barahona (Bitergia) Analyzing development metrics Akademy-es 2012 4 / 23

    View full-size slide

  5. Bitergia: an spin-off
    Company starting operations in June 2012
    Building on the experience of LibreSoft
    Offering professional products and services
    Focused on:
    Metrics about software developent
    (including community metrics)
    Specialized support for development forges
    (including metrics for projects)
    http://bitergia.com
    Jesus Gonzalez-Barahona (Bitergia) Analyzing development metrics Akademy-es 2012 5 / 23

    View full-size slide

  6. Analyzing kdevelop
    IDE for C/C++ and other programming languages
    Source code management repository:
    git: git://anongit.kde.org/kdevelop
    From: 1999-01-09 13:16:08
    To: 2012-04-24 16:52:00
    22,875 commits, 297 committers
    Issue tracking repository:
    Bugzilla: https://bugs.kde.org/ / kdevelop
    Retrieved on: 2012-06-17 14:50:00
    7,255 issue reports (tickets)
    http://kdevelop.org/
    Jesus Gonzalez-Barahona (Bitergia) Analyzing development metrics Akademy-es 2012 6 / 23

    View full-size slide

  7. Commits per month
    Time
    Commits
    2000 2002 2004 2006 2008 2010 2012
    100 300
    Jesus Gonzalez-Barahona (Bitergia) Analyzing development metrics Akademy-es 2012 7 / 23

    View full-size slide

  8. Committers per month
    Time
    Committers
    2000 2002 2004 2006 2008 2010 2012
    5 10 20 30
    Jesus Gonzalez-Barahona (Bitergia) Analyzing development metrics Akademy-es 2012 8 / 23

    View full-size slide

  9. Commits per committer per month
    Time
    Commits per committer
    2000 2002 2004 2006 2008 2010 2012
    5 10 15 20 25
    Jesus Gonzalez-Barahona (Bitergia) Analyzing development metrics Akademy-es 2012 9 / 23

    View full-size slide

  10. Commits per month (master branch)
    Time
    Commits (branch 1)
    2000 2002 2004 2006 2008 2010 2012
    0 100 300
    Jesus Gonzalez-Barahona (Bitergia) Analyzing development metrics Akademy-es 2012 10 / 23

    View full-size slide

  11. Lines added & removed per month (master branch)
    Time
    Branch 1: Lines added (black) / removed (green)
    2000 2002 2004 2006 2008 2010 2012
    0e+00 4e+05 8e+05
    Jesus Gonzalez-Barahona (Bitergia) Analyzing development metrics Akademy-es 2012 11 / 23

    View full-size slide

  12. Files involved in each commit, mean per month (master
    branch)
    Time
    Branch 1: Lines added (black) / removed (green)
    2000 2002 2004 2006 2008 2010 2012
    0e+00 4e+05 8e+05
    Time
    Files changed per commit
    2000 2002 2004 2006 2008 2010 2012
    0 20 40 60
    Jesus Gonzalez-Barahona (Bitergia) Analyzing development metrics Akademy-es 2012 12 / 23

    View full-size slide

  13. Lines changed in each commit, mean per month (master
    branch)
    Time
    Branch 1: Lines added (black) / removed (green)
    2000 2002 2004 2006 2008 2010 2012
    0e+00 4e+05 8e+05
    Time
    Lines changed per commit (mean per month)
    2000 2002 2004 2006 2008 2010 2012
    0 200 400
    Jesus Gonzalez-Barahona (Bitergia) Analyzing development metrics Akademy-es 2012 13 / 23

    View full-size slide

  14. Lines added & removed per file per month (master branch)
    Time
    ranch 1 (per change): Lines added (black) / removed (green
    2000 2002 2004 2006 2008 2010 2012
    0 50 150
    Jesus Gonzalez-Barahona (Bitergia) Analyzing development metrics Akademy-es 2012 14 / 23

    View full-size slide

  15. Density distribution of commit size (master branch)
    0 1 2 3
    0.0 1.0 2.0 3.0
    density.default(x = log10(data[, 4]))
    Logaritmic scale
    Probability density
    Files (black), lines added (red), lines removed (green)
    Jesus Gonzalez-Barahona (Bitergia) Analyzing development metrics Akademy-es 2012 15 / 23

    View full-size slide

  16. Evolution in size (master branch)
    Time
    Branch 1: Lines added (black) / removed (green)
    2000 2002 2004 2006 2008 2010 2012
    0e+00 4e+05 8e+05
    LOC − SLOC
    2000 2002 2004 2006 2008 2010 2012
    0e+00 3e+05 6e+05
    Jesus Gonzalez-Barahona (Bitergia) Analyzing development metrics Akademy-es 2012 16 / 23

    View full-size slide

  17. Tickets (time to fix, first close)
    Time to fix, first close (days)
    Density
    0 500 1000 1500 2000 2500 3000
    0.000 0.010 0.020
    Jesus Gonzalez-Barahona (Bitergia) Analyzing development metrics Akademy-es 2012 17 / 23

    View full-size slide

  18. Tickets (minutes to fix, first close, some quantiles)
    Time
    0.99 (black) / 0.95 (green) / 0.5 (red) / 0.25 (blue)
    2000 2002 2004 2006 2008 2010 2012
    0e+00 2e+06 4e+06
    Jesus Gonzalez-Barahona (Bitergia) Analyzing development metrics Akademy-es 2012 18 / 23

    View full-size slide

  19. Tickets (minutes to fix, first close, some quantiles, log)
    Time
    0.99 (black) / 0.95 (green) / 0.5 (red) / 0.25 (blue)
    2000 2002 2004 2006 2008 2010 2012
    2 3 4 5 6
    Jesus Gonzalez-Barahona (Bitergia) Analyzing development metrics Akademy-es 2012 19 / 23

    View full-size slide

  20. Tickets (open, closed) per month
    Time
    Tickets open (black) / closed (green)
    2000 2002 2004 2006 2008 2010 2012
    0 50 100 200
    Jesus Gonzalez-Barahona (Bitergia) Analyzing development metrics Akademy-es 2012 20 / 23

    View full-size slide

  21. In summary
    FLOSS development repositories have a wealth of information
    Their analysis is potentially interested to any stakeholder
    Getting the data out of the repository is not that difficult...
    ...but analysis may be
    We’re interested in deep analysis
    We’re interested in working with developers
    Which aspects of your project would you like to know?
    Jesus Gonzalez-Barahona (Bitergia) Analyzing development metrics Akademy-es 2012 21 / 23

    View full-size slide

  22. Help wanted: validation of bug seeding detection
    Validation of methodologies for detecting bug seeding
    Which lines introduced a bug?
    Several techniques...
    ...which need real developers for validation
    How to validate?
    Let a real developer determine if a certain code is involved in seeding
    a bug or not
    Potential benefits:
    Learn from your errors (personally, or as a project)
    Performance metrics
    Bug seeding evolution
    Bug seeding patterns
    Bug seeding bad smells
    If you would want to collaborate in this, let me know!
    Jesus Gonzalez-Barahona (Bitergia) Analyzing development metrics Akademy-es 2012 22 / 23

    View full-size slide

  23. This is the end
    Have you learned something
    useful?
    [I would love to know what interested you the most]
    [...and the least]
    Jesus Gonzalez-Barahona (Bitergia) Analyzing development metrics Akademy-es 2012 23 / 23

    View full-size slide