Sun Microsystems, Inc.
IT management is constantly asked to do more with less. Traditionally, the focus hasbeen on hardware: wringing more productivity out of systems, consolidating to cutcosts, and so on. But when it comes to improving the efﬁciency of software developmentprocesses, it has been very difﬁcult to gain real traction—for many different reasons.The size and complexity of applications (and IDEs) keeps growing. The frequency of build/test executions keeps increasing. The diversity of development platforms andtools keeps expanding. Yet even with all the new tools and resources available, manydevelopment and testing processes are still manual, tedious, time-consuming, anderror-prone operations. And at the same time, salaries for software engineers keeprising, increasing the pressure to automate more of the development process.“Continuous integration” servers emerged a few years ago as a means of monitoringthe execution of repeated jobs. They identify the developer’s changes to checked-outsource code, build and test the project, publish the results, and communicate withmembers of the development team (allowing colleagues to see the build stability,analyze failure reports, and receive notiﬁcations of test failures, for example). Theuse of a CI server has now become standard practice for many development teams.And today, Hudson is the open source CI server of choice for development teams of all types and sizes, worldwide. The key reasons: Hudson is extremely easy to installand use; it combines ﬂexible conﬁguration features with sophisticated capabilitiessuch as distributed builds; it supports both Java™ and non-Java projects; and it isbacked by an army of code contributors—the Hudson community.In fact, the fast-growing global Hudson community has already written more than160 plug-ins, covering everything from source code management (SCM) systems suchas CVS, Subversion, Git, Mercurial, Perforce, ClearCase, BitKeeper, StarTeam, andAccurev to build scripts such as Ant, Maven, shell scripts, Ruby, Groovy, and MSBuild.Hudson also supports a wide range of build wrappers, build reports, build notiﬁers,cluster managers, and more.Simply put, Hudson can be much more than a CI server. Its extensible architectureallows it to evolve beyond simple build management and serve as a very versatiledevelopment lifecycle management system—allowing developers to promote andtag builds after the fact, run workﬂows, track changes across dependencies, monitorand graph test results over time, track and plot code coverage and coding violations,and much more.What it adds up to is a better way to develop software collaboratively—and a betterway to cut the time, effort, cost, and risk of the software development process.
3 Executive Summary