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

Analyzing development metrics: what can we learn

Analyzing development metrics: what can we learn

An preliminary analysis of the evolution of the source code and issue reports of the kdevelop project. Presented at Akademy-es 2012. A quick glimpse of what CVSAnalY and bicho tools can do. Results shown are thanks to the support of LibreSoft and Bitergia.

More Decks by Jesus M. Gonzalez-Barahona

Other Decks in Research

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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  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