Top 50: Interview with Kohsuke Kawaguchi of the Hudson Project
Kohsuke Kawaguchi, a staff engineer at Sun Microsystems, is one of the most active project owners and developers on java.net, so it was no surprise to me that several of the top 50 most active
projects on the site each month belong to Kohsuke. The project I chose to ask him about is Hudson.
Q: How would you describe your project, in a nutshell?
A: Hudson is an extensible continuous integration engine. It's a tool for
software developers. It always builds your projects on the server and
thereby provides visibility into your project.
Q: Who is using Hudson and what are they doing with it?
A: Most of the time, an open source project has no good way of tracking
who's using it. That said, I occasionally check the access log to the
website, and that gives me some insights about who's using it.
I tend to see companies and organizations that I don't know, but I also
see names of big companies. So I guess the short answer is that "it's
all kinds of people." It's also used widely within Sun.
Q: Can you give me an example?
Q: What made you decide to start this project?
A: I'm a very lazy guy and so I often forget to commit some files. This, of
course, breaks the build for other people in my team, so I started this
as a way of making sure that I'm not making that mistake.
My colleagues liked it (I guess they are also lazy like me!) and it
eventually became very popular among my group.
Q: Is working on Hudson part of your day job?
A: Until recently, it was strictly my hobby project (that just so happened to
be useful for my day job). But this has changed a few months ago, and I
can now work on it during my day job, to some extent.
But I still spend a lot of my private time on it.
Q: A popular open source project is a lot of work; what keeps you going?
A: Initially, I really just wanted to be as lazy as possible and have the
computer do as much work for me as possible. In other words, I've been
very diligently working on Hudson so that I can be lazy. :-)
Feedback from my colleagues and users has been a great motivator, too.
As a "homo faber," it really
makes me happy that my work is used by other people.
Q: What would you like to see added to the java.net project section?
I don't have anything against Collab.net, but it would have been really
nice if the system that runs java.net has been developed on java.net
itself. Then we could have all pitched in to help improve the system.
Q: Of your project members, how many of them contribute to Hudson?
A: Hudson has perhaps a handful of contributors to the core project. There are
more people who write plugins, IDE integration tools, etc.
Q: How do you manage community member contributions?
A: One "technique" that I developed over the years is to compartmentalize
the system so that people can freely develop their
additions/plugins/extensions/etc. without affecting the core code.
It reduces the communication overhead, and this way people feel attached
to their plugins.
Q: Why did you choose the MIT license?
A: For me, the goal of the license is not to prevent reuse. The MIT license is
ideal in that sense since it's one of the least restrictive licenses.
Q: What has been your most difficult challenge?
A: Designing a good, usable, and visually pleasing UI is a very difficult
task, and I often don't know a good answer. For example, should I use
radio buttons or drop-down combo box? How much space should I put here
and there? I'd imagine a professional UI designer just "knows" what to
do, just like I know instinctively how to design code.
Q: What has been your biggest surprise?
A: Perhaps my most pleasant surprise was that three individuals started
developing IDE plugins for three major IDEs. To me, it was an indication
that people are really finding Hudson useful, to the point that
it is worth investing their own time in.
|width="1" height="1" border="0" alt=" " />|