Skip to content

Instantly share code, notes, and snippets.

@notmyname
Created February 12, 2016 19:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save notmyname/a60673d006419fff78cd to your computer and use it in GitHub Desktop.
Save notmyname/a60673d006419fff78cd to your computer and use it in GitHub Desktop.
The X axis is time, from the first date in the repo until today. The
contributors are added on the Y axis in the order in which they
started contributing to the project. For each contributor, there is a
solid line from the date of their first contribution to the last day
of activity in the repo. The color of this line varies from black to
red. The more active a contributor is during their period of
contribution, the brighter red the line is. The blue boxes are for
days active as a patch author and the green boxes are for days active
as a code reviewer.
That raises a question: what makes someone counted as "active"?
Somewhat arbitrarily, a contributor is marked as active for 14 days
for a patch and 5 days for a review. So if you authored a patch today,
you'd be counted active for the next 2 weeks. There's nothing
especially scientific about 14 days or 5 days. I chose those for two
reasons. First, I know that it takes a while to write a patch, so it's
not accurate to say that you're only active for the single day in the
commit. Some patches take longer than others, but I figure that if you
show up in IRC and you've got a patch that you wrote within the last
2 weeks, you're pretty active in my book. A similar logic is applied
for the 5 day window for code reviews. Secondly, looking at the scale
of the X axis, aesthetically I want a balance between fine resolution
and visual clarity. The values chosen seem to result in a visually
pleasing graph (at least to me).
So charts and graphs are nice (and I'll be the first to say that a
pretty graph can be valuable in and of itself), but real value comes
when you can use the data to draw conclusions. I've been able to draw
two conclusions from this visualization.
First, I can see that there are 3 general classes of contributors:
active contributors, one-time contributors, and active-with-gaps
contributors. The active-with-gaps group is made of people like Donagh
Mccabe, Andrew Hale, and Brian Cline. I happen to know all three of
them, and they are operators who are running clusters in production.
Their activity looks like several one-time commits separated by months
of inactivity. I speculate that this is from something like "Time to
deploy, and it broke. Submit a patch. A year later, upgrade, patch
what broke. etc". What this tells me is that there is a group of
people who are important to the community but do not show up in
traditional flashy "who's active" graphs. From experience, I know that
these individuals offer some of the best feedback and wisest council
to the rest of the community.
Second, I can see that a contributor who is active and stays around a
long time ends up doing more reviews than authoring patches. This
tells me that as part of on boarding new community members, I need to
encourage people to do reviews. This seems to keep people involved and
gives them some sticking power in the community.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment