SlideShare a Scribd company logo
Open Source Community Metrics
Tips and Techniques for Measuring Participation


                 FOSDEM 2013


                Dawn M. Foster
           Community Lead at Puppet Labs

                  @geekygirldawn
              dawn@puppetlabs.com
                 puppetlabs.com
Metrics are Useful for Open Source Projects

  ●   Measure progress in your community over time
  ●   Who contributes
  ●   Where are people contributing
  ●   Spot trends
  ●   Gauge interest
  ●   Learn more about key contributors
  ●   Recognize contributions




                                2
Example: Components of an Open Source Community




                        3       http://www.flickr.com/photos/korou/2586472234
Example: Puppet Metrics December 2012
                            Summary
        5131 members and 887 messages in Puppet-Users
         941 members and 108 messages in Puppet-Dev
                919 nicks on #puppet IRC channel
          1942 Puppet Forge accounts and 726 modules
                    3728 Redmine accounts
              444 forks / 1082 watchers of Puppet


              Six Month Comparison (July 2012)
       4420 members and 1198 messages in Puppet-Users
         830 members and 120 messages in Puppet-Dev
               873 nicks on #puppet IRC channel
         1405 Puppet Forge accounts and 442 modules
                   3064 Redmine accounts
              342 Forks / 904 watchers of Puppet


http://PuppetLabs.com/community/metrics
                            4
Example: June 2011 MeeGo Community Metrics Summary
• 439,963 unique people visited this month (430,070 last month).
 – 1,796,288 pageviews (1,857,907 last month); 599,573 total visits (597,658 last month)
• 25,801 people are members of MeeGo.com (was 24,019 last month)
 – Dev ML subscribers = 4772; Community = 3736; iL10N = 2607; SDK = 3197
• Mailing Lists: 5890 posts this month; 200 people posted 2+ msgs
• Forums: 2255 posts. 242 people posted 2+ messages
• New Bugs Created: 1938; Bugs Resolved: 2871
• Downloads: 52,627 1.2 Netbook, 626 1.2 IVI, 1505 1.1 N900, 3072 Tablet
• Active Users: Estimated at 800 – 1000 people.
 – Mailing Lists: 302 people with unique email addresses posted (308 last month)
 – Forums: 412 people posted at least one item (262 last month)
 – Bugzilla: 773 people performed some action (624 last month)
 – Wiki: 276 edited the wiki (205 last month)
 – IRC: 410-520 people logged into #meego simultaneously most days



                 http://wiki.meego.com/Metrics
                                             5
What are the Right Metrics for YOUR Project

 ●   Goals
     ●   What are your overall goals for the project?
     ●   How can you measure progress toward those goals?
     ●   What is important to you and your progress?
 ●   Trends
     ●   What should you measure to recognize trends?
     ●   How do you recognize when something is going wrong?
     ●   Do you notice big improvements?




                  Note: I measure way too much
                                  6          http://www.flickr.com/photos/bandfan/5548675317/
Mailing Lists: mlstats

  Mailing List Stats is a command line tool used to analyze
   mailing list archives. It downloads the archives, places
 them in a directory and stores all the information contained
           in each mailing list post into a database




                http://libresoft.es/tools/mlstats


                               7
Mailing Lists: mlstats for LibreOffice Developer List
●   Grab data from your mailing & store in db (repeat per ML)
       –   mlstats --db-user=root --db-password=
           http://lists.freedesktop.org/archives/libreoffice/
●   Top Content Query: All or By Month
       –   select subject, count(*) as c from messages group by subject
           order by c;
       –   select subject,monthname(first_date) as m, year(first_date) as
           y, count(*) as c from messages group by subject,
           month(first_date) order by y, m, c;
●   Top Poster Query
       –   select p.email_address,count(*) as c from messages as
           m,messages_people as p where
           m.message_id=p.message_ID group by p.email_address
           order by c;


                                       8
Mailing Lists: LibreOffice Top Content Result (graphed)
                                              [Libreoffice] LibreOffice WikiHelp
                                           [Libreoffice] Assertions and Logging
                       [ANN] Please use Gerrit from now on for Patch Review
                             [Bug 35673] LibreOffice 3.4 most annoying bugs
                                                        [Libreoffice] (no subject)
                                               Static src analysis of LibreOffice
                                   [Libreoffice] minutes of tech. steering call ...
                                   [Libreoffice] minutes of tech steering call ...
                                                              License statement
                                                                       No subject
[Libreoffice] [Bug 31865] [Task]: LibreOffice 3.3 release blockersnt/ stoppers
                                                          minutes of ESC call ...
                             [Bug 44446] LibreOffice 3.6 most annoying bugs
                                                                                                          Bugzilla Auto-posts
                 [Libreoffice] [Bug 37361] LibreOffice 3.5 most annoying bugs
                             [Bug 37361] LibreOffice 3.5 most annoying bugs
                 [Libreoffice] [Bug 35673] LibreOffice 3.4 most annoying bugs

                                                                                      0   100 200 300 400 500 600 700




                        What are people talking about?
                                                                9
Mailing Lists: LibreOffice Top Posters Result
               caolanm@redhat.com                2222
               bugzilla-daemon@freedesktop.org   1929
               michael.meeks@suse.com            1521
               michael.meeks@novell.com          1434
               sbergman@redhat.com               1224
               gerrit@gerrit.libreoffice.org     1076
               pmladek@suse.cz                    972
               nthiebaud@gmail.com                942
               thb@documentfoundation.org         880
               kendy@suse.cz                      776
               bjoern.michaelsen@canonical.com    723
               mstahl@redhat.com                  689
               serval2412@yahoo.fr                638
               kyoshida@novell.com                612
               tml@iki.fi                         556
               dtardon@redhat.com                 491
               l.lunak@suse.cz                    490
               oolst@nouenoff.nl                  474
               timar74@gmail.com                  473


      Who contributes to ML discussions?
                                        10
IRC: Multiple Analysis Tools Depending on Log Format

 Generates IRC stats for active people, by hour of the day,
       by day, most used words, quotes and more.


            http://royale.zerezo.com/irssistats/
                http://pisg.sourceforge.net/
        http://code.google.com/p/superseriousstats/




                            11
IRC




      12
IRC




      13
Code Contributions: Ohloh




                 http://www.ohloh.net/p/puppet

                               14
New Contributors: Ohloh




                 http://www.ohloh.net/p/puppet

                               15
Recent Commits with Filter: Ohloh




                  http://www.ohloh.net/puppet

                               16
Bugs

 ●   New bugs vs. resolved bugs
     ●   Can't just look at monthly trends
     ●   Need to take release cycle into account
     ●   Before release: more resolved bugs
     ●   After release: more new bugs
 ●   Participants
     ●   People who file new bugs
     ●   Participate in bugs (comment, etc.)
     ●   Careful with people who resolve bugs (usually QA)




                                       Image: http://www.thegeekstuff.com/2010/05/install-bugzilla-on-linux/

                                  17
Media Wiki




             18
Media Wiki

 ●   Get Statistics
     ●   http://wiki.meego.com/Special:Statistics
     ●   http://wiki.meego.com/api.php?
         action=query&meta=siteinfo&siprop=statistics&format=ya
         mlfm




                                 19
Automate: Scripts & Business Intelligence
 ●   A less than elegant method (figure out what you want)
     ●   Giant bash script
     ●   Uses wget, awk, mysql queries, etc.
     ●   Dumps a bunch of csv files on my hard drive
 ●   A better dashboard approach (WIP)
     ●   Open source metrics dashboard (business intelligence)
     ●   Uses Pentaho for reporting, runs regularly and produces a
         dashboard anyone can view at any time
     ●   http://www.webdetails.pt/




                                 20
Automate: Custom Code + Graphite
 ●   What we have now at Puppet
 ●   Lots of custom Ruby code
 ●   2 Projects:
     ●   Gather: Gathers data from
         various sources
     ●   Metrics: Calls Gather and
         displays output using Graphite
 ●   Generates one image file per graph plus a yaml file with
     min / max metadata
 ●   Uses Graphite Render URL API to display data
     ●   http://graphite.readthedocs.org/en/0.9.10/render_api.html
 ●   I manually add arrows to explain bumps in graphs

                                 21
Example: Custom Code + Graphite




                        22
Now What?

 ●   Report Regularly
     ●   Monthly – may be too often
     ●   Quarterly? Yearly?
 ●   Share the reports with the
     community
     ●   http://puppetlabs.com/community/metrics
     ●   http://wiki.meego.com/Metrics
     ●   https://www.tizen.org/community/community
         -metrics
 ●   Recognize
     ●   Recognize your top contributors
                                                     http://www.flickr.com/photos/play4smee/2439494411/




                                         23
Dawn Foster
Community Manager at Puppet Labs

         @geekygirldawn

     dawn@puppetlabs.com




       http://www.flickr.com/photos/tlk/5630885373/

More Related Content

PDF
Open Source Community Metrics LibreOffice Conference
PDF
Open Source Community Metrics: LinuxCon Barcelona
PDF
How do we develop open source software to help open data ? (MOSC 2013)
PDF
Creating Open Data with Open Source (beta2)
PPTX
RDF for PubMedCentral
PPTX
20100614 ISWSA Keynote
PPTX
Graph and RDF databases
PDF
Data Visualization at Twitter
Open Source Community Metrics LibreOffice Conference
Open Source Community Metrics: LinuxCon Barcelona
How do we develop open source software to help open data ? (MOSC 2013)
Creating Open Data with Open Source (beta2)
RDF for PubMedCentral
20100614 ISWSA Keynote
Graph and RDF databases
Data Visualization at Twitter

Similar to Open Source Community Metrics for FOSDEM (20)

PDF
Crunching the numbers: Open Source Community Metrics at OSCON
PDF
Crunching the numbers: Open Source Community Metrics
PDF
Open source community metrics
PDF
ScaleCamp 2009 - Last.fm vs Xbox
PDF
The Lives of Others: Open-Source Development Practices Elsewhere
PDF
2013 spider - LibreOffice QA Community
PDF
Pronk like you mean it
ODP
20 cool things python
PDF
Practical Open Source Software for Libraries (part 2)
PDF
Ln monitoring repositories
PDF
2011 02-14-libre
PDF
Metrics driven engineering (velocity 2011)
PDF
BOF "Everything about MySQL bugs"
ODP
User2hackerin30minutes
PDF
Python vs JLizard.... a python logging experience
PDF
State of the Framework Address: Recent Developments in the Metasploit Framework
PPS
Open Source Library System Software: Libraries Are Doing it For Themselves
PDF
Technical Services Tools Redux Handout
PDF
Get your FLOSS problems solved
Crunching the numbers: Open Source Community Metrics at OSCON
Crunching the numbers: Open Source Community Metrics
Open source community metrics
ScaleCamp 2009 - Last.fm vs Xbox
The Lives of Others: Open-Source Development Practices Elsewhere
2013 spider - LibreOffice QA Community
Pronk like you mean it
20 cool things python
Practical Open Source Software for Libraries (part 2)
Ln monitoring repositories
2011 02-14-libre
Metrics driven engineering (velocity 2011)
BOF "Everything about MySQL bugs"
User2hackerin30minutes
Python vs JLizard.... a python logging experience
State of the Framework Address: Recent Developments in the Metasploit Framework
Open Source Library System Software: Libraries Are Doing it For Themselves
Technical Services Tools Redux Handout
Get your FLOSS problems solved
Ad

More from Dawn Foster (20)

PDF
CHAOSS Metrics Overview and Examples
PDF
Be a Good Corporate Citizen in Kubernetes
PDF
Overcoming Imposter Syndrome to Become a Conference Speaker!
PDF
How to Be a Good Corporate Citizen in Open Source
PDF
Open Source Collaboration and Companies: Finding the Right Balance
PDF
Navigating Open Source Risk
PDF
Measuring Project Health at VMware
PDF
Navigating Open Source Risk
PDF
Collaborative Leadership: Governance Beyond Company Affiliation
PDF
Collaborative Leadership: Governance Beyond Company Affiliation
PDF
Collaborative Leadership: Governance Beyond Company Affiliation
PDF
Collaborative Leadership: Governance Beyond Company Affiliation
PDF
Is this Open Source Project Healthy or Lifeless?
PDF
Collaboration in Linux Kernel Mailing Lists
PDF
Be a Good Corporate Citizen in Kubernetes
PDF
Being a Good Corporate Citizen in Open Source
PDF
Building Community for your Company’s OSS Projects
PDF
Building Community for your Company’s OSS Project
PDF
How to be a terrible hiring manager
PDF
A week in the Life of Kubernetes
CHAOSS Metrics Overview and Examples
Be a Good Corporate Citizen in Kubernetes
Overcoming Imposter Syndrome to Become a Conference Speaker!
How to Be a Good Corporate Citizen in Open Source
Open Source Collaboration and Companies: Finding the Right Balance
Navigating Open Source Risk
Measuring Project Health at VMware
Navigating Open Source Risk
Collaborative Leadership: Governance Beyond Company Affiliation
Collaborative Leadership: Governance Beyond Company Affiliation
Collaborative Leadership: Governance Beyond Company Affiliation
Collaborative Leadership: Governance Beyond Company Affiliation
Is this Open Source Project Healthy or Lifeless?
Collaboration in Linux Kernel Mailing Lists
Be a Good Corporate Citizen in Kubernetes
Being a Good Corporate Citizen in Open Source
Building Community for your Company’s OSS Projects
Building Community for your Company’s OSS Project
How to be a terrible hiring manager
A week in the Life of Kubernetes
Ad

Recently uploaded (20)

PDF
cuic standard and advanced reporting.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Getting Started with Data Integration: FME Form 101
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
Machine learning based COVID-19 study performance prediction
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Empathic Computing: Creating Shared Understanding
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PPTX
1. Introduction to Computer Programming.pptx
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
cuic standard and advanced reporting.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
MYSQL Presentation for SQL database connectivity
Building Integrated photovoltaic BIPV_UPV.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
Getting Started with Data Integration: FME Form 101
Network Security Unit 5.pdf for BCA BBA.
MIND Revenue Release Quarter 2 2025 Press Release
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Machine learning based COVID-19 study performance prediction
Spectral efficient network and resource selection model in 5G networks
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Empathic Computing: Creating Shared Understanding
gpt5_lecture_notes_comprehensive_20250812015547.pdf
1. Introduction to Computer Programming.pptx
Digital-Transformation-Roadmap-for-Companies.pptx
A comparative analysis of optical character recognition models for extracting...
Unlocking AI with Model Context Protocol (MCP)
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...

Open Source Community Metrics for FOSDEM

  • 1. Open Source Community Metrics Tips and Techniques for Measuring Participation FOSDEM 2013 Dawn M. Foster Community Lead at Puppet Labs @geekygirldawn [email protected] puppetlabs.com
  • 2. Metrics are Useful for Open Source Projects ● Measure progress in your community over time ● Who contributes ● Where are people contributing ● Spot trends ● Gauge interest ● Learn more about key contributors ● Recognize contributions 2
  • 3. Example: Components of an Open Source Community 3 http://www.flickr.com/photos/korou/2586472234
  • 4. Example: Puppet Metrics December 2012 Summary 5131 members and 887 messages in Puppet-Users 941 members and 108 messages in Puppet-Dev 919 nicks on #puppet IRC channel 1942 Puppet Forge accounts and 726 modules 3728 Redmine accounts 444 forks / 1082 watchers of Puppet Six Month Comparison (July 2012) 4420 members and 1198 messages in Puppet-Users 830 members and 120 messages in Puppet-Dev 873 nicks on #puppet IRC channel 1405 Puppet Forge accounts and 442 modules 3064 Redmine accounts 342 Forks / 904 watchers of Puppet http://PuppetLabs.com/community/metrics 4
  • 5. Example: June 2011 MeeGo Community Metrics Summary • 439,963 unique people visited this month (430,070 last month). – 1,796,288 pageviews (1,857,907 last month); 599,573 total visits (597,658 last month) • 25,801 people are members of MeeGo.com (was 24,019 last month) – Dev ML subscribers = 4772; Community = 3736; iL10N = 2607; SDK = 3197 • Mailing Lists: 5890 posts this month; 200 people posted 2+ msgs • Forums: 2255 posts. 242 people posted 2+ messages • New Bugs Created: 1938; Bugs Resolved: 2871 • Downloads: 52,627 1.2 Netbook, 626 1.2 IVI, 1505 1.1 N900, 3072 Tablet • Active Users: Estimated at 800 – 1000 people. – Mailing Lists: 302 people with unique email addresses posted (308 last month) – Forums: 412 people posted at least one item (262 last month) – Bugzilla: 773 people performed some action (624 last month) – Wiki: 276 edited the wiki (205 last month) – IRC: 410-520 people logged into #meego simultaneously most days http://wiki.meego.com/Metrics 5
  • 6. What are the Right Metrics for YOUR Project ● Goals ● What are your overall goals for the project? ● How can you measure progress toward those goals? ● What is important to you and your progress? ● Trends ● What should you measure to recognize trends? ● How do you recognize when something is going wrong? ● Do you notice big improvements? Note: I measure way too much 6 http://www.flickr.com/photos/bandfan/5548675317/
  • 7. Mailing Lists: mlstats Mailing List Stats is a command line tool used to analyze mailing list archives. It downloads the archives, places them in a directory and stores all the information contained in each mailing list post into a database http://libresoft.es/tools/mlstats 7
  • 8. Mailing Lists: mlstats for LibreOffice Developer List ● Grab data from your mailing & store in db (repeat per ML) – mlstats --db-user=root --db-password= http://lists.freedesktop.org/archives/libreoffice/ ● Top Content Query: All or By Month – select subject, count(*) as c from messages group by subject order by c; – select subject,monthname(first_date) as m, year(first_date) as y, count(*) as c from messages group by subject, month(first_date) order by y, m, c; ● Top Poster Query – select p.email_address,count(*) as c from messages as m,messages_people as p where m.message_id=p.message_ID group by p.email_address order by c; 8
  • 9. Mailing Lists: LibreOffice Top Content Result (graphed) [Libreoffice] LibreOffice WikiHelp [Libreoffice] Assertions and Logging [ANN] Please use Gerrit from now on for Patch Review [Bug 35673] LibreOffice 3.4 most annoying bugs [Libreoffice] (no subject) Static src analysis of LibreOffice [Libreoffice] minutes of tech. steering call ... [Libreoffice] minutes of tech steering call ... License statement No subject [Libreoffice] [Bug 31865] [Task]: LibreOffice 3.3 release blockersnt/ stoppers minutes of ESC call ... [Bug 44446] LibreOffice 3.6 most annoying bugs Bugzilla Auto-posts [Libreoffice] [Bug 37361] LibreOffice 3.5 most annoying bugs [Bug 37361] LibreOffice 3.5 most annoying bugs [Libreoffice] [Bug 35673] LibreOffice 3.4 most annoying bugs 0 100 200 300 400 500 600 700 What are people talking about? 9
  • 11. IRC: Multiple Analysis Tools Depending on Log Format Generates IRC stats for active people, by hour of the day, by day, most used words, quotes and more. http://royale.zerezo.com/irssistats/ http://pisg.sourceforge.net/ http://code.google.com/p/superseriousstats/ 11
  • 12. IRC 12
  • 13. IRC 13
  • 14. Code Contributions: Ohloh http://www.ohloh.net/p/puppet 14
  • 15. New Contributors: Ohloh http://www.ohloh.net/p/puppet 15
  • 16. Recent Commits with Filter: Ohloh http://www.ohloh.net/puppet 16
  • 17. Bugs ● New bugs vs. resolved bugs ● Can't just look at monthly trends ● Need to take release cycle into account ● Before release: more resolved bugs ● After release: more new bugs ● Participants ● People who file new bugs ● Participate in bugs (comment, etc.) ● Careful with people who resolve bugs (usually QA) Image: http://www.thegeekstuff.com/2010/05/install-bugzilla-on-linux/ 17
  • 19. Media Wiki ● Get Statistics ● http://wiki.meego.com/Special:Statistics ● http://wiki.meego.com/api.php? action=query&meta=siteinfo&siprop=statistics&format=ya mlfm 19
  • 20. Automate: Scripts & Business Intelligence ● A less than elegant method (figure out what you want) ● Giant bash script ● Uses wget, awk, mysql queries, etc. ● Dumps a bunch of csv files on my hard drive ● A better dashboard approach (WIP) ● Open source metrics dashboard (business intelligence) ● Uses Pentaho for reporting, runs regularly and produces a dashboard anyone can view at any time ● http://www.webdetails.pt/ 20
  • 21. Automate: Custom Code + Graphite ● What we have now at Puppet ● Lots of custom Ruby code ● 2 Projects: ● Gather: Gathers data from various sources ● Metrics: Calls Gather and displays output using Graphite ● Generates one image file per graph plus a yaml file with min / max metadata ● Uses Graphite Render URL API to display data ● http://graphite.readthedocs.org/en/0.9.10/render_api.html ● I manually add arrows to explain bumps in graphs 21
  • 22. Example: Custom Code + Graphite 22
  • 23. Now What? ● Report Regularly ● Monthly – may be too often ● Quarterly? Yearly? ● Share the reports with the community ● http://puppetlabs.com/community/metrics ● http://wiki.meego.com/Metrics ● https://www.tizen.org/community/community -metrics ● Recognize ● Recognize your top contributors http://www.flickr.com/photos/play4smee/2439494411/ 23
  • 24. Dawn Foster Community Manager at Puppet Labs @geekygirldawn [email protected] http://www.flickr.com/photos/tlk/5630885373/