Zugegeben, die Idee eines “Extreme Feedback Devices” ist für agile Projekte nicht wirklich neu. Sie stellen den Zustand es aktuellen Softwarebuilds unmittelbar für das gesamte Team – durchaus sehr plastisch – dar, z.B. in Form einer Ampel. Rot steht für einen fehlgeschlagenen Compile, gelb für fehlgeschlagene Tests und grün für alles Schoko. Über die Sinnhaftigkeit kann man vielleicht vorher schmunzeln, aber so ein Teil wirkt. Ich habe Tests noch nie so schnell gefixt gesehen.

Als ich einen Teil der Buildprozesse beim Deutschen Ring auf den Hudson Buildserver umgestellt habe, bin ich auf das “Red Bear Alert Extreme Feedback Device” gestossen. Die Idee, farbige Lampen über eine USB-Steckdose zu schalten war so einfach und genial – das wollte ich auch. Leider habe ich keinen reine 5V-USB-Lösung gefunden, dafür aber eine relativ kostengünstige Steckdosenleiste, die sich per USB von einem Windowsrechner steuern lässt. Da ich den Spaß privat bezahlt habe, sollten noch ein paar günstige Lampen dazu und fertig.
Die Einzelteile
- SIS-PM Steckdosenleiste über USB schaltbar (EUR 25,- mit Conradgutschein)
- 3 Mal Grönö von IKEA (3 x EUR 3,99)
- je 1 Paket rote, grüne und gelbe Glühbirnen von IKEA (3 x EUR 2,59)
Macht zusammen EUR 44,47 … geht noch.
Der Zusammenbau
Der Zusammenbau ist straight forward. Glühbirne in Lampe, Lampe in Steckdose, Steckdose per USB an einen Windowsrechner.

Dann die Software für die SIS-PM von Gembird herunterladen und installieren (für die man leider lokale Adminrechte benötigt!).

Zur besseren Ansteuerbarkeit habe ich eindeutige, sprechende Namen über die Gembirdsoftware vergeben. Anschließend habe ich das Kommandozeileninterface getestet. Einziges Manko ist, dass man den aktuellen Zustand der Leiste nicht via Kommandozeile abgreifen kann.
pm.exe -on Ampel -Gruen
pm.exe -off Ampel -Gelb
Ansteuern über das Netzwerk
Unser Softwarebuild erfolgt dezentral, deshalb sollte das Device über HTTP angesprochen werden. Getreu dem Motto “Für einen Mann mit einem Hammer ist die Welt voller Nägel” habe ich eine kleine Javakapsel um die Kommandozeilenaufrufe geschrieben, die über HTTP verschiedene Methoden zur Verfügung stellt:
buildFailed– Der Compile ist fehlgeschlagen, die Ampel wird rottestsFailed– Die Tests sind fehlgeschlagen, die Ampel wird gelbok– Alles Schoko, die Ampel wird grünbuilding– Ein neuer Build wurde gestartet. Die Ampel blinkt in Ihrer aktuellen Farbedisco– Die Vorführfunktion für Gäste ;-)
Intern zieht die Software einen Jetty hoch, der die HTTP-Anfragen verarbeitet und via SWT liegt ein Icon im Tray, mit der sich die Anwendung steuern lässt.

Integration in den Buildprozess
Die Integration in unseren ANT-Buildprozess war denkbar einfach. Über den GET-Task lassen sich URLs aus ANT aufrufen:
<get src="http://bob.intra....de/feedack/ringwelt/ok" dest="${java.io.tmpdir}/.feedback"/>
Fertig. Übrigens: Das Kategoriebild für “Codecrunch” ist die Buildampel beim Deutschen Ring in Aktion!
Hier mal ein anderes Extreme Feedback Device: http://www.jensjaeger.com/2010/04/extreme-feedback-device-the-batman-lamp/
10:29:10
Hallo,
legst Du den Sourcecode zu deinem Java-Wrapper zufällig offen? Würde mich und mein Team freuen :)
Andreas
12:11:35