We’ve long been users of wall displays to show our Jenkins builds, and we’ve found it an excellent way of avoiding the “broken windows syndrome”. It has been really useful to be able to see at a glance which builds are failing.
Lately, though, we’ve had so many builds that the information ceased to be useful. The wall display plugin rendered our hundred or so jobs so small that although devs could see that there was something red, they would have to get up and walk closer to the screen if they wanted to read what that job was! Clearly, it was no longer functioning as the quick heads-up we wanted. The mass of green builds for projects that may not have been touched in months (but that we may want to use again) was obscuring the active projects.
It says what now?
So I thought: what if we only showed builds that we were actually working on? The only caveat is that we always want to show broken/unstable builds (whether active or not) – broken is broken!
Therefore, I forked the Jenkins walldisplay plugin and added a new feature to it to allow us to set the range of how far back to show builds:
We set ours to “Active today”, which shows jobs that have been active in the last 24 hours (and any broken jobs, of course). This way, we only see what we are actually working on. If a job is not run, it will automatically “drop off” the screen once its last run date is before the display threshold. Once it runs again, hey presto! it pops back up on the build screen. Here it is running:
Much better! The screen is now readable from 10 metres or so.
I submitted a pull request, which has been accepted, so hopefully this feature will be available in the main repos soon!
Signal/noise is an incredibly important thing to control in software. You can have all the fancy systems in the world, but they are of little use to you if the “useful now” is drowned in the “useful yesterday”.