Thursday, October 24, 2013

KK, Jenkins and the Triumph of Technology

Kohsuke Kawaguchi is the most brilliant developer and creator I have gotten the chance to work with (we work together at CloudBees). I just got back from the Jenkins Users Conference, where 450 people from around the world (literally) attended and another 500+ watched via live video stream.

In his keynote, KK reviewed his concerns with having created Jenkins.  (It is the defacto "Continuous Integration Server".  Many, many companies use it to "build, test and deploy" their software - meaning it winds up being the glue that glues the pieces together of many of the applications people use today like Yahoo, Netflix, EBay, Amazon Kindle, cell phones, etc. Not to mention big companies like Cisco, AMEX, Macy's, Nordstrom and literally tens of thousands of others.)

To "build, test and deploy" all of these applications, he estimates it takes 3 Facebook sized data centers running pretty much full time 24 hours a day, 7 days a week, 365 days a year. He was concerned about contributing to global warming. He rationalized it when he found a very large wind farm that produces enough energy to run these three Facebook-sized data centers, and has promised to continue to work on this great project.

KK created Jenkins when he worked at Sun under it's original name of Hudson.  There he incubated it and started an open source community.  I've always liked open source and had tremendous respect for those developers who created successful projects. Open source is like showing everyone in the world exactly everything that you have done (how many people are willing to show all of their work in public?).  It takes a lot of courage to do that, and if you are able to create a project that people use enough to fill up 3 FB data centers then you have really done something.

I respect KK more because of how he saved the project from Oracle back in 2010. Oracle had purchased Sun and there was a mindless manager who tried to corrupt the project.  KK stood his ground when Oracle started doing really stupid things, and "forked" the project.  This was a huge decision on his part since Hudson was his baby, and he would have to restart many things (thank goodness for open source and he did not have to re-write the code).

Jenkins was born in late 2010. Oracle fought this hard. By February it appeared that Jenkins was going to be the winner. This was a very, very trying time for KK.  

With the success of Jenkins that was aptly demonstrated today, KK made the right decision.  

There are two key reasons for the success of Jenkins.  First is KK's brilliance in seeing a problem and creating great code that solved the problem. The second is the community that has built up around Jenkins. There are two aspects to this community. One is the fact KK architected Jenkins to make it easy for others to "plug into".  This has led to hundreds and hundreds of plug ins that provide a solution far broader than any single company could offer. The second aspect of the community is people's willingness to help. Whether it was Tyler Croy's support and help or Andrew Bayer's calm guidance and graphic capability to create the new Jenkins logo.

And this is where KK separates himself from the amazingly few other brilliant developers. His ability to build that community. The picture at the top of this blog shows KK kneeling down to sign autographs today on a butler bobblehead (he signed these for over an hour today). His humble bearing - kneeling at the feet of others, selecting the butler icons for his project to demonstrate the fact his software was meant to serve others, or giving the shy, embarrassed smile when he sees the line of autograph seekers getting longer all are the essence of why he is successful.

Thank you, Kohsuke. For giving us the chance to learn from you and sharing your creations in the unselfish way you have.