Hudson’s Secret: Kohsuke

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 SurveyIndeed Jobs, and Devoxx 2009 Whiteboards.  And the latest connected data shows steady growth:

Number of (Connected and Enabled) Installations Using Hudson

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.

Activity at Hudson can be browsed using SVNSearch or FishEye. From SVNSearch check first the Collaboration Graph showing the way contributors collaborate through code – KK is a the center.

Collaboration Graph for Hudson. Nodes are Authors

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.

Thanks for Hudson, Kohsuke!


22 thoughts on “Hudson’s Secret: Kohsuke

  1. So basically, the project is going to be screwed if he ever decides to get a life. It’s really not healthy for any project, open source or otherwise, to be so reliant on one person.

    1. KK has a life; wife and kid – although he is a bit more geeky than your normal dad (see the lego globe).

      I probably overplayed the hours. KK is really incredibly productive; up there with Peter Deutsch.

      If KK left Hudson, the project would slow down a lot, but it would survive because there are so many other committers. More realistically, if there was a fork, whoever Kohsuke follows, wins.

  2. Thanks for a great post, Eduardo. KK is very modest, and it was time someone explained what he has done and how many it has impacted so positively. This is an example of one of the great things about open source – talent can make it thru all the mess of the world…

  3. Hi,
    Nice blog…What are the other top 3-5 developers you know? For me, KK is really number one, by far…Amazing guy, and such a nice person! You have to see him working in his office…Such a fantastic experience. Multi-tasked at the extreme…
    Reminds me the post office guy in MIB (see last part of this )
    So glad I worked a bit with him, one of the great time within Sun and Sun folks

    1. Its hard to compare folks, but I’ve worked with some very good guys at PARC, in the old JavaSoft and at Spring. I didn’t want to rank between them, thus the range.
      Thanks for the image of the MIB mail sorter.

  4. “More realistically, if there was a fork, whoever Kohsuke follows, wins.”

    There is a BIG difference between a fork and a totally incompatible fork. So actually, whoever is able to make use of Kohsuke code wins, and that could be all both prongs of the fork. In the magical world of modern revision control, every checkout is a mini fork 🙂

    1. I agree. GIT and Hg (about time that OSS switched to DSCM) and gitHub (*that* is new) change the dveloper dynamics.
      I am still hoping we can avoid a fork. Biggest impact would be on the users.

  5. KK is more than the Hudson’s Secret, he is more like the community secret! A modest gifted project leader.

    It takes more than a great CI tool to build a community and to turn it to be that popular…

    I vote for Kohsuke.

    Eduardo, great post – thanks!

  6. Hmm. Seems like jenkins would win this game since KK is with then…Though I wish both projects (Oracle Hudson) and the forked Jenkins will port each others’ good implementations so that users don’t have to choose either of the two but could stick in one but be able to get updates of the other.

Leave a Reply

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

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

Google+ photo

You are commenting using your Google+ 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 )


Connecting to %s