Workshop sponsored by Bitergia, focused on how to measure free, open source projects, and how these metrics can produce valuable information for different professional profiles. Brussels, Belgium, January 29th 2016.
/ LibreSoft (URJC) http://bit.ly/sda-workshop-1 Software Development Analytics Workshop Brussels (Belgium), January 29st 2016 Jesus Gonzalez-Barahona (Bitergia) Software Development Analytics Workshop Jan 2016 1 / 58
under the “Attribution-ShareAlike 3.0” license, by Creative Commons, available at http://creativecommons.org/licenses/by-sa/3.0/ Jesus Gonzalez-Barahona (Bitergia) Software Development Analytics Workshop Jan 2016 2 / 58
Dealing with dynamic complexity 3 Sources of information 4 The community 5 The processes 6 Real cases 7 Final remarks Jesus Gonzalez-Barahona (Bitergia) Software Development Analytics Workshop Jan 2016 3 / 58
URJC @jgbarah Daniel Izquierdo: Co-founder, data analyst at Bitergia @dizquierdo Jesus Gonzalez-Barahona (Bitergia) Software Development Analytics Workshop Jan 2016 6 / 58
sources) Analytics for development communities Analytics for development processes Real cases from the real world Jesus Gonzalez-Barahona (Bitergia) Software Development Analytics Workshop Jan 2016 7 / 58
open book Fork and play! https://jgbarah.gitbooks.io/evaluating-foss-projects/ Jesus Gonzalez-Barahona (Bitergia) Software Development Analytics Workshop Jan 2016 8 / 58
by Jes´ us Corrius, CC Attribution 2.0] http://www.flickr.com/photos/jcorrius/2302302707/ Jesus Gonzalez-Barahona (Bitergia) Software Development Analytics Workshop Jan 2016 10 / 58
to... ...track what’s happening ...understand why it’s happening ...react quickly ...evaluate results of reaction If data is available analytics may come to the rescue Jesus Gonzalez-Barahona (Bitergia) Software Development Analytics Workshop Jan 2016 11 / 58
Mercurial, Bazaar, etc. Today: most of them accessible through git... but not always the information is what appears to be (eg: branches in Subversion and git) Can be integrated with other tools: Gerrit, GitHub, etc. Jesus Gonzalez-Barahona (Bitergia) Software Development Analytics Workshop Jan 2016 16 / 58
Author: Santiago Due~ nas <[email protected]> AuthorDate: Fri Oct 11 12:55:44 2013 +0200 Commit: Santiago Due~ nas <[email protected]> CommitDate: Fri Oct 11 12:55:44 2013 +0200 [db] Add author’s commit date Some SCMs, like Git, make a distinction between the dates the committer and author pushed the changes. Jesus Gonzalez-Barahona (Bitergia) Software Development Analytics Workshop Jan 2016 17 / 58
index 579e103..4b0066d 100644 --- a/pycvsanaly2/DBContentHandler.py +++ b/pycvsanaly2/DBContentHandler.py @@ -149,7 +149,7 @@ class DBContentHandler (ContentHandler): self.actions = [] profiler_stop ("Inserting actions for repository if self.commits: - commits = [(c.repository_id) for c in self.commit + commits = [(c.author_date, c.repository_id) for c profiler_start ("Inserting commits for repository cursor.executemany (statement (DBLog.__insert__, self.commits = [] Jesus Gonzalez-Barahona (Bitergia) Software Development Analytics Workshop Jan 2016 18 / 58
that were committed commits may still sit in “children” repos History can be rewritten forces to retrieve full history once and again Commits may change while moving from repo to repo eg: rebasing Authors, committers may not be what they should eg: merges via web interface in GitHub Dates for commits are usually in developer’s time: allows for time zone analysis Jesus Gonzalez-Barahona (Bitergia) Software Development Analytics Workshop Jan 2016 19 / 58
RedMine Trac ... Each with a different model, data, operations... Jesus Gonzalez-Barahona (Bitergia) Software Development Analytics Workshop Jan 2016 20 / 58
Description. Opening date. Ticker opener. Ticket asignee. Priority. State. Then you have: State changes Comments Attachments Related info ... Jesus Gonzalez-Barahona (Bitergia) Software Development Analytics Workshop Jan 2016 22 / 58
requests Design Policy discussions ... Different models make comparison difficult The responsiveness of a project is related to how it deals with tickets Tickets are a communication tool too Jesus Gonzalez-Barahona (Bitergia) Software Development Analytics Workshop Jan 2016 25 / 58
review pre-merge change review Different methods: Mailing lists (eg: Linux) Gerrit (eg: OpenStack) GitHub pull requests (eg: ElasticSearch) Usually, references to tickets and commits Much of the control on the software lies here Jesus Gonzalez-Barahona (Bitergia) Software Development Analytics Workshop Jan 2016 26 / 58
Mailing list archivers (Gmane) Forums: too many to mention Question/Answer sites: StackOverflow, Askbot Information is always archived Jesus Gonzalez-Barahona (Bitergia) Software Development Analytics Workshop Jan 2016 29 / 58
ACS, it didn’t happen” May be difficult to mine: no easily downloadable archives policies of no scrapping Privacy issues: mangling email addresses Forums: diversity forces many retrieval tools Question/answer sites: can be massive Jesus Gonzalez-Barahona (Bitergia) Software Development Analytics Workshop Jan 2016 30 / 58
Not always text/based (eg: videoconferences) Notes: In many cases, lack of archives Privacy concerns: considered informal communication Difficult to track identities Jesus Gonzalez-Barahona (Bitergia) Software Development Analytics Workshop Jan 2016 31 / 58
tracking, async communication User community: async communication, ... Ecosystem community: difficult to track Software may include beacons: tracking usage Jesus Gonzalez-Barahona (Bitergia) Software Development Analytics Workshop Jan 2016 33 / 58
code management system reporting, commenting or fixing bugs: issue tracking system submitting patches or reviewing them: code review system sending messages: async or sync communication systems Jesus Gonzalez-Barahona (Bitergia) Software Development Analytics Workshop Jan 2016 34 / 58
certain period. People active for a certain period. Evolution of any of them. Trends for any of them. Difficult to compare between projects Interesting to compare inside project (different subprojects, different time frames) Jesus Gonzalez-Barahona (Bitergia) Software Development Analytics Workshop Jan 2016 35 / 58
[the ASF] created a term we have coined “Pony Factor” (because ASF is full of ponies, or people who think they are ponies). Pony Factor (PF) shows the diversity of a project in terms of the division of labor among committers in a project. Pony Factor is determined as: “The lowest number of committers whose total contribution constitutes the majority of the codebase” https://ke4qqq.wordpress.com/2015/02/08/pony-factor-math/ Jesus Gonzalez-Barahona (Bitergia) Software Development Analytics Workshop Jan 2016 43 / 58
from companies (elephants). The elephant factor shows the diversity of a project in terms of the division of labor among companies (by mean of developers affiliated with them). Elephant factor is determined as: “The lowest number of companies whose total contribution (in commits by their employees) constitutes the majority of the commits” Jesus Gonzalez-Barahona (Bitergia) Software Development Analytics Workshop Jan 2016 44 / 58