This post is to expand on some of the thoughts I posted on the SpringSource Blog in response to Rod Johnson’s excellent description of the SpringSource business model and its commitment to development of open source software.
Now that SpringSource has shown an ability to crank out new product releases on a seemingly weekly basis, I wanted to reflect on where Spring is positioned in the Java open source community, and how open the Spring Core project is to work done by the public.
The hypothesis of my experiment occurred to me when I happened to be reviewing Spring JIRA assignments one day. I was curious whether, following the bug assignments, the majority of development on the “Spring Core” projects (including Spring MVC and what we would consider “classic Spring”) is performed solely by SpringSource employees.
I decided to go about verifying this and would like to present my findings. Note that this is a purely objective study of a particular widely used open source project, and shouldn’t be construed as an opinion on the findings.
Edit Sept 22, 2008 Please note that although the publishing of this post by freakish timing occurred less than 24 hours after the announcement by SpringSource, I want to be clear that this article was drafted and published before I was aware of this news. As such, please don’t misread this investigation as a “response” to the announcement.
Since SpringSource is obviously a private company, I determined the list of employees by consulting publicly available information sources. Anyone is welcome to refute the claims in this article.
I have no direct working relationship with anyone at SpringSource; however, to verify the facts cited in my study, I did email an advance copy of the article to Juergen Hoeller, Spring Project Lead. Juergen kindly took the time to review it and clarify a couple facts that I wasn’t able to discern through public information. Juergen has always been friendly and considerate in the dealings we’ve had through Spring JIRA or the Spring forums, and I appreciate the help!
Read on for the analysis…
Analysis: Spring Core JIRA Bugs
Let us review bugs currently assigned (as of mid-September, 2008):
Adrian Colyer 2
Ben Hale 1
Colin Sampaleanu 2
Costin Leau 6 [1%]
John Lewis 4
Juergen Hoeller 290 [33%]
Mark Fisher 2
Ramnivas Laddad 4
Rob Harrop 16 [2%]
Sam Brannen 3
Thomas Risberg 15 [2%]
The following are confirmed SpringSource employees (easily confirmed from the Technical Leadership page on the SpringSource corporate site):
- Adrian Colyer
- Ben Hale
- Colin Sampaleanu
- Costin Leau
- Juergen Hoeller
- Mark Fisher
- Ramnivas Laddad
- Rob Harrop
- Thomas Risberg
This leaves us with the following folks, who are not disclosed on the “Technical Leadership” page.
- John Lewis (Chief Software Architect, Unicon Inc.: Reference)
- Sam Brannen (Senior Software Engineer, SpringSource: Reference)
Thus, of all bugs currently assigned in JIRA for Spring Core, there is only one non-Spring Source employee (John Lewis) responsible.
Juergen verified with me by email that John is an active contributor to the Spring Portlet project, both in providing code contributions and development direction, and is not employed by SpringSource.
Analysis: Spring Core Commit Activity
Simply having bug assignments doesn’t necessarily mean that outside contributions aren’t made. Let’s use the publicly available Atlassian FishEye site tracking commits to the Spring Core CVS repository.
If we use Fisheye to graph commits and LOC history by author, we get something like the following:
We see the major committers are:
- jhoeller: Juergen Hoeller
- trisberg: Thomas Risberg
- johnsonr: Rod Johnson
- robharrop: Rob Harrop
- springboy: ??
- sbrannen: Sam Brannen
- colins: Colin Sampaleanu
- mark-fisher: Mark Fisher
- aarendsen: ??
So, let’s track down the unknown folks in this list.
Referencing the “springboy” account in Spring JIRA (note: login required), we can see that “springboy” is Rick Evans. Rick Evans, does not currently work for SpringSource. Juergen confirmed for me by email that Rick was an Interface21 employee for some time, only recently leaving for other opportunities.
“aarendsen” is SpringSource VP and Principal Consultant Alef Arendsen (link to biography).
So, these are the top contributors over the lifetime of the Spring Core project. But if you review the chart, you can see that the contributions by “Other” drop off drastically after mid-2005. For historical reference, Interface21 (the commercial company behind Spring, now called SpringSource) was formed in August 2004 (reference).
Unfortunately, further narrowing in graphical format isn’t possible with Fisheye, so we need to go to searching by changesets. To make the results manageable, let’s search by changes made since Sept 1, 2007, and filter out the committers identified above. The goal is to see who the “other” committers are. The resulting search can be seen here.
Immediately, we see recognized SpringSource employees “nebhale” (Ben Hale), “costin_leau” (Costin Leau), “ramnivas” (Ramnivas Laddad). Let’s filter them out, too.
Alas, now we see (as of this writing) only 9 commits, 8 by “dupuisc” and 1 by “markpollack”. “dupuisc” is Christian Dupuis, a Senior Software Engineer at SpringSource (reference), and “markpollack” is Dr. Mark Pollack, founder of Spring.NET and also a SpringSource employee (reference).
Thus, in at least the past year, we have commits from no one outside of SpringSource.
AppFuse author and Spring user Matt Raible recently inquired where the source code for Spring 3.0 is publicly available. Based on discussion at the SpringOne 2008 conference, Spring 3.0M1 is/was supposed to be released around September.
If work was being done currently on the Spring 3.0 project, the source code and pending changes should be visible to those outside of SpringSource. Alas, no code for Spring Core changes are visible in the SourceForge-hosted Spring CVS or Spring SVN repository.
It may in fact be that no work is being done on Spring 3.0. Looking at JIRA, there are a total of 97 issues assigned to Spring 3.0M1, with only 1 resolved (as WONTFIX ;)).
Juergen confirmed this for me via email:
The good news is that Spring 3.0 development will start in its usual public form very soon. The first milestone wonâ€™t make the projected end of September goal that I outlined earlier this year; itâ€™s rather going to be released some time in October. In any case, look forward to a first cut of REST and EL support in 3.0 M1 already!
Given this, I would assume that we will soon start to see Spring 3.0 development appear in the usual, publicly available repository – great news!
I believe that the analysis I’ve done vets my hypothesis — that the vast majority of development on Spring Core is performed by SpringSource employees — as a true statement. I presented this to Juergen, and he framed the discussion in this way:
Many of the present committers were contributors and even committers long before they became SpringSource employees. The present situation is simply a result of SpringSource offering those committers a job! I would count that as a good thing, since those guys are full-time open source developers now.
I know that should this article become widely read, the very vocal Java community will have a variety of opinions on the facts presented. I would prefer to remain neutral on the subject, as I can see arguments on both sides of the “Is Spring Open Enough?” debate. I would like to acknowledge that there has obviously been a lot of hard work by a significant number of people bringing the Spring Portfolio to market, and the fact that much of it is available for free use is a testament to the value and power of the open source model.
Once again, I appreciate Juergen’s assistance in reviewing this article prior to publication, and I’d appreciate any comments you readers might have.