Atlassian, the company known for its JIRA issue tracker and Confluence wiki, released today Bamboo, a continuous integration server. Artima spoke with Atlassian's Jon Silvers about build telemetry, one of Bamboo's unique features.
Bamboo is Atlassian's new continuous integration server. In addition to offering the usual fare of continuous build and integration, Bamboo is geared to collect and report an extensive set of build and project statistics. Such statistics can be invaluable to developers as well as managers in assessing a project's health, according to Atlassian's Jon Silvers:
We put together what we call build telemetry. It’s the concept of being able to measure your builds remotely and learn from what you’re doing.
A lot of build servers will tell you when a build fails, but what they don’t do is help you see the big picture. We put together a bunch of statistics that can be pulled up in reports, and [that] will help you to see things like what projects are doing well or how projects perform compared to some time ago. With those statistics, you can find out if builds break as often as they used to, or which tests break the most, and, when things break, how long does it take to fix those test cases. Those types of things hopefully help the team to become a lot smarter.
Silvers noted that such statistics help not only managers, but also those developers who work in large, distributed teams:
A lot of these statistics help managers so that they can see the process of the builds and how things are going. But they help the developer, too. You might want to take a look at builds that take a long time, and understand where the problems are happening. You may be able to see something that [can] speed things up.
By running the tests continuously, and automating the build process, you can work with a large, distributed team. Members of the team will be continuously checking things in, and the continuous build server is always building that code. You’re not waiting for weeks or months and learn things about the current state of the project, and instead find out what is breaking a lot faster.
Silvers also pointed out that Bamboo integrates well with Atlassian's popular JIRA issue tracker:
Integration with a lot of our products is just beginning. You can tie an issue that has been checked into JIRA to particular builds, and you can tie build problems back to those issues as well. You can also raise build issues within JIRA, too.
At what team size do you think continuous integration makes sense?
CI makes sense from day one, for a team member of one. Because even if nobody else is going to break the code but you, you are still going to do it.
Even if your build works on your desktop, with your copy of the SCM tree, a CI server ensures that what is checked in works, on the system it is hosted on. At work we run Cruise Control on Windows and Linux, Java 1.5 and 1.6, so catch system specific problems a single developer doesnt catch.
Even if you don't have a dedicated server, a VMWare or Xen image can host your CI runtime quite nicely.
Setting up a CI system is probably the most profound thing a project can do, as it changes your development lifestyle. The hard part is having the team care when it breaks, and putting in the time to keep it working. I hope that Bamboo is easier to keep alive than CC is, in this respect.