Open Source community tools for Inner Source projects

In a recent post we’ve seen how to set up Inner Source in your company is a cultural change question. Companies need to increase inner transparency, confidence and collaboration for breaking the functional silos in order to create a proper environment to develop software between motivated peers and enable code/knowledge reuse.

Laptop on a work table with DIY and construction tools all around top view hobby and crafts concept

Open Source development communities use several tools for enabling collaboration and transparency. Companies can take advantage of them for their inner software development projects. Let’s see some examples from our experience tracking collaborative software development and helping companies in their Inner Source projects analysis:

Source Code

Linux Foundation projects define source code as

“the version of software as it is originally written (i.e., typed into a computer) by a human in plain text…Source code is primarily used as input to the process that produces an executable program (i.e., it is compiled or interpreted). It is also used as a method of communicating algorithms between people”.

Source Code give us a lot of information about the code authorship (even organizations diversity), quantity of code, evolution over time of the code (code aging), geographical diversity, etc. We can track several metrics related with source code and KPI like Pony Factor or Bitergia’s Zapata Factor and even profile code contributors (core vs. casual code contributors, contributors demography).

Git has become the standard tool for collaborative development (and the core of well known services like Github, Gitlab or Bitbucket). GrimoireLab supports it from the very first day. Other tools like Baazar and Mercurial can also be tracked.

Selection_028

Tickets/issues

Tickets and issue tracking systems are the most common management tools for a software project. By tracking tools like Github Issues, JIRA or Bugzilla with GrimoireLab, we can get information about backlog, evolution, project management speed, etc.

detail_backlog_acc_time

Code Review

Code review is systematic examination of computer source code (Wikipedia) usually done to review code contributions. It can be made with some tools such as Gerrit, GitHub Pull Requests, Review Board, etc.

Code Review Analytics can provide insights about review process bottle necks (review iterations, time to merge, etc.) and can give inputs about contributors code quality perception, activity and performance of the project.

Beyond these simple metrics, analyzing code review process is key to identify valuable external contributors and fair play among people from different organizations / areas.

Continuous integration

In software engineering, continuous integration (CI) is the practice of merging all developer working copies to a shared mainline several times a day, in combination with automated unit tests or or build servers, which automatically run the unit tests periodically or even after every commit and report the results to the developers.

Jenkins is one of the most common tools for CI and supported by GrimoireLab too. CI is becoming an standard practice in distributed contributions, which is crucial on Inner Source projects.

Mail list, forums, questions & answers forums

Mail lists and forums are one of the most important tools for collaborative software development. Newbies questions, decisions about the code, features, bugs and issues are discussed in these lists and forums.

Threads in the mailing lists can show what part of the project has more activity or where the project is stacking. But they can also be combined with the rest of the dev tools (JIRA, git, Jenkins, etc.), and by tracking them combined we can get metrics related to the whole collaborative development process like time from idea to deployment, iterations, people involved, etc.

Some examples of the tools GrimoireLab tracks in this area are Mailman, GMane, mbox files, Discourse, StackOverflow, Askbot, etc.

Wiki

A wiki is a website that provides collaborative modification of its content and structure directly from the web browser. In a typical wiki, text is written using a simplified markup language and often edited with the help of a rich-text editor. Wikis are a very common tool for documentation, done collaboratively, from basic software use guides to architecture descriptions.

Wiki edition activity analysis show how alive documentation is, who is involved. Thanks to GrimoireLab, we are already doing MediaWiki and Confluence activity analytics for some customers.

Chat or real time communication

Real-time communication tools, like IRC or Slack, are fundamental in collaborative software development, even more with people geograplically distributed. Chat activity is one of the items you can observe to measure diversity and demography of the project, beyond code contributors.

What else?

There are many other tools that can be used for collaborative development. For example, we track projects Meetup activity, Twitter impact, etc. Open Source and Inner Source communities share a lot, but their scopes are different, so the tools usage may be different. Which ones are you using in your company’s projects?

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Create a free website or blog at WordPress.com.

Up ↑

%d bloggers like this: