Hudson has become the dominant Continuous Integration solution very quickly; 6 years after it started, all the surveys I’ve seen show strong majorities using Hudson: Wakaleo Poll, Eclipse Survey, Indeed Jobs, and Devoxx 2009 Whiteboards. And the latest connected data shows steady growth:
There are several reasons for this success but the main “secret weapon” has been Kohsuke’s leadership of the project (disclosure: I was Kohsuke’s manager at Sun).
Kohsuke is a very unique individual. He is among the top 3-5 developers I’ve seen during my career at Xerox PARC, Sun and Oracle; he is very fast and his code is very good. Kohsuke is also a very nice guy, humble, and with a great intuition about how to manage an open source project, which he has refined over a number of projects.
A few years ago I asked Kohsuke to share with a new group going OSS his best practices to encourage community participation. Here is his list, based on his JAXB project:
- Excellent Software
- Design for Reuse
- Make sure people can use your code
- Treat them as kings!
- Lower the Barrier of Entry
- Every step that leads to participation needs to be easy
- Quick Feedback Cycle
- Answer questions & suggestions quickly
- Deliver bug fixes & RFEs quickly
- Framework of Contribution
- Structure in which contributions happen
Hudson satisfies all of these. Notable examples include the embedded servlet, the integrated plugin repository, the plugin architecture, the fast release cycle and the low entry cost to become a contributor.
The result of all of this is that Hudson has about 70 contributors to its core and over 300 contributors to core+plugins. Of all Sun’s OSS projects I know, Hudson is the one with widest contribution base.
Kohsuke remains the largest contributor (>80% of core). His productivity seems boundless, below is a timeline (also from SVNSearch) showing 16898 commits since Nov 11th, 2004 – each dot is a commit, shown as hour-of-the-day.
And, from the same source, here are two bar charts showing per-day and per-hour activity (times are GMT):
Finally, from FishEye, here is the change data for him: 1,567,282 LoC changed, 510,896 files changed. The Line History graph is:
From this data: (a) Kohsuke works every day, (b) he has a patient wife, (c) Sun was very lucky not to pay him per-hour, and even more not to pay him per LoC!
Kohsuke started Hudson in Nov 2004 as a hobby project; over the years many Sun projects converted to using Hudson for their CI needs and Kohsuke’s time spent on Hudson increased. By early 2008 Sun recognized Hudson’s potential, assigned Kohsuke to work full-time to the project and started converting Hudson into a commercial product, with a Subscription offering and a Professional Services practice, all anchored on Kohsuke. Oracle has also recognized the value of Hudson and remains keenly interested in the project.