Build Trafficlights

Some years ago we discovered that our software build system was a little slow when changes were being merged into the repository. The reason was simply that with such a large project we had to separate a number of the larger tests from the tests that were triggered during the merge so that the developers were not forced to wait so long to get their code changes merged. The downside was that the developers code could be quickly merged but subsequent tests might then detect problems that the initial merge tests had missed.

The solution was the build traffic light. This was initially a simple USB connected traffic light connected to a single developer's machine. However this idea quite quickly caught on and other developers wanted to be able to be notified easily when a build was broken and we started adding features.

Client application

The traffic light application was written as a windows service that could query the build server for the current status and push that status out to any listening clients. The service also hosts a lightweight web service so that users could see the status in the browser and see statistics about the time spent building or broken. However it was decided to write the client as a system tray application which could pop up a notification if the build failed and could display the status as a red or green light in the tray or as an always on top window.

Lighting the building

While most developers where happy to have the client installed, they found that the requirement to keep an eye on the application meant they sometimes missed the status change. So to make the change clearly visible to all, it was decided to experiment with another notification system and we went for the Philips Hue range of lights. These come in various forms and use Zigbee based peer to peer networking to cover the entire building.

There was initially concern that Zigbee might be hacked but updates to the Hue hub have removed such a threat (for now). But we always need to be aware that bad guys could attemtp to infiltrate the system. That said, any hack that might take control of the lights would not have a severe impact on the business aside from inconvenience,

Lockdown mode

With nearly the entire organisation working from home we realised that the lights were no longer as practical as before. Instead the majority of developers are using Microsoft Teams to communicate and it was decided to add another client to the repertoire. Now a Teams group has been established and when one or more builds changes to a failed state, a message is sent to the group. This allows the developers to be alerted and follow a link to the build service to see which builds are causing a problem. This allows the developer to also respond to the message to indicate if they are working on a fix.