| Focused Extreme Feedback with CI Information Radiators - a case study |
|
|
|
| Friday, 19 February 2010 09:51 |
|
One of my clients is UBS Investment Bank in London. At UBS, they are into Agile in a big way. Rob Purcell and Gordon Weir of UBS asked me in to help out with some of their Maven, Test-Driven Development, Java coding and tooling practices. And one relatively minor item they were particularly keen on was to improve their information radiator, in order to raise awareness of broken builds. Although they had a large LCD screen displaying the TeamCity dashboard, the information displayed was too small to be very effective at any distance. So we decided to add a new one. Now Rob's team uses TeamCity in a big way. It turns out there are quite a few cool Information Radiator plugins available for TeamCity, such as Team Piazza and Build Wall. However most of the ones I found all took the approach of green boxes for the good builds, and red for the bad. And that limits the number of builds you can effectively place on an information radiator. And UBS have many, many build jobs. They wanted something simpler: just display the failures (after all, you don't really care about the builds that work). The information radiator also had to cope with displaying failed builds from several different TeamCity instances within the organisation. It turns out that it's quite easy to write your own information radiator in TeamCity, without having to write your own TeamCity plugin. I based the solution on Rob Bowley's customization of the External Status Widget, which came closest to doing what I wanted. The procedure is quite simple. There is a JSP file in your TeamCity installation called So after a few iterations working with Rob, we came up with a version that displays the Subversion user and commit message of the failing build, and a few other useful details. You can download a slightly generalized version of the externalStatus.jsp file here. In action, it looks like this:
You also need another screen to display the build results nicely. We wrote a JSP page called failedbuilds.jsp to do this, and placed it in the Now, when there are no failing builds on any of the TeamCity instances, it will come up with something like this:
The dashboard caused quite a sensation. It was very actively championed by management, and I often noticed people wandering pass the screen stop in their tracks and stare at it. And it served its purpose well. This is the same dashboard after two days in production:
The point of this is not to illustrate a brilliant piece of HTML/Javascript/JSP coding. Actually, it's a bit of a hack. Nevertheless, with very little effort, we put in place a solution that added real value to the development process - about 75% less broken builds after two days. Not bad for a hack! ResourcesIf you want to try this out at home, here are the files you need. Don't forget to modify the faildbuilds.jsp with the URL(s) of your own TeamCity server(s):
Trackback(0)
Comments (2)
![]() written by John Ferguson Smart, February 20, 2010
Thanks for your comments, James. I looked at CRadiator, but it is Windows-only, which is a show-stopper for many of my clients. In this case, we also explicitly needed to be able to display only the failing builds, and to aggregate build results coming from multiple TeamCity instances.
Write comment
|
Really easy to get going and if you have a lot of build you can use it's internal filtering to split over multiple displays etc