Using an extreme feedback device

I am a techie. I like cool technical gadgets. A garage door that opens when I tell Siri to do so? Neat! But sometimes, just sometimes, these cool gadgets can actually improve productivity.

An extreme feedback device (XFD) is a device that is supposed to create an unavoidable feedback to a certain action. In software developement it is generally used as feedback for continious integration systems (CI).

Why do we need that?

When we push a commit into our repository, our CI starts building it and sends an email containing all warnings and errors of the build to every developer. An email like this is usually ignored, especially because there are so many of them. So sometimes a warning passes unnoticed for a day or two until is becomes hard to spot it.

What is needed is immediate, unavoidable feedback. Or in other words: Extreme Feedback.

The blog of Softwareschneiderei contains an interesting article about extreme feedback devices and how to use them. It gave me an my collegue Klaus-Martin Reichert an idea to implement our own.

The idea

Well our idea was simple. Use a stripe of RGB-LEDs that glow in different colors depending on the status of our repository. A stripe is supposed to be attached below the monitor of every developer.

For starters the LEDs would have four states:

  • Off:  The build is fine. No need to draw attention away from programming.
  • Blue: The CI is currently building the newest revision.
  • Yellow: There have been warnings in the last build.
  • Red: There have been errors in the last build.

Of course this can easily be expanded or altered.

The output device

To reduce the implementation effort we looked around for a USB-Controlled-RGB-LED-Stripe and found one. BlinkStick offers a broad selection of exactly the  kind of LEDs we were looking for. Specifically the BlinkStick-Strip was interesting for our cause, since it can easily be attached to the bottom of a monitor. Including shipping costs we paid about 25€ each. The price sounded reasonable.

2016-02-04 13.02.53

The BlinkStick-Strip offers 8 RGB-LEDs which can be controlled individually using an open source API that is available for 13 languages including Python, .NET and C. Perfect.

Details on the implementation will be explained in the next blog post.

ezgif.com-add-text

Day to day life

Someone commits changes, the LEDs starts to glow blue. The build finishes and one of three things happens: They flash green and turn off, they turn yellow or they turn red.

In my experience if they turn yellow after I pushed a commit it means that my collegue is about to come into my office with a big grin on his face saying “What did you do again?”. It is inevitable to notice the result of the build process since our boths monitors literally glow yellow if there is a warning.

This may sound like it creates a lot of pressure not to make any mistakes, but that’s not what I’m trying to say. Quite the opposite actually. It forces us to perform small code reviews on every unsuccessful build, which more than once yielded in improvements of the produced code.

Conclusion

An extreme feedback device is a great tool to visualize CI results. It noticably increased the cohesion of our development team. It is cheap, easy to implement and overall a great addition for every developement team.

Leave a comment