Beratungs-Hotline

Jede Sekunde zählt Wie unsere Software das Spendensammeln unterstützt

Projekte

Wie schon im letzten Jahr haben wir auch 2017 das race4hospiz Benefiz-Kartrennen unterstützt, mit dem Spendengeld für das Kinderhospiz Balthasar in Olpe gesammelt wird. Bei diesem 9-Stunden-Rennen geht es zugleich "um nichts" – und um alles: Es ist eine Veranstaltung unter Freunden des Motorsports für den guten Zweck, alle machen mit, um möglichst viel für das Kinderheim herauszuholen.

Zugleich fahren viele professionelle FahrerInnen mit, die Teams kämpfen durchaus hart um den Sieg. Im Umfeld dieses 9-Stunden-Rennens geht es nicht nur ums Dabeisein, sondern um jede Sekunde, jede schnellere Runde, jeden besseren Wechsel.

Als uns im Dezember 2015 zwei Vertreter des Vorstandes des race4Hospiz eV besuchten und erklärten, welche Software wir liefern sollten, war schnell klar, dass es nicht nur um "eine kleine Stoppuhr-App" ging. TeamControl soll die Fahrzeiten und Zeitstrafen dokumentieren. Dafür ist es notwendig, alle Fahrerwechsel zu erkennen, den Teams zuzuordnen und die Zeiten richtig zu berechnen. Es gab eine in Java geschriebene Vorversion, die folgende Defizite hatte:

  • Einzelplatzlösung, nicht netzwerkfähig
  • kein Support für RFID-Leser
  • keine Anzeige der Zeitstrafen
  • relativ unkomfortabel

Es liegt in der Natur der Sache, dass eine webbasierte Lösung mehrplatzfähig ist. Auch der Zugriff der Teams auf ihren eigenen Bereich ist somit kein Problem. Aber wie schließt man USB-Geräte an einen Browser an? Wie kommen unsere RFID Lesestationen ins Spiel?

Terminals mit Raspberry Pi

Wir haben uns dazu entschieden, die zusätzliche Hardware an Terminals zu betreiben, für die wir Raspberry Pi Minicomputer verwenden. Die sind preiswert, zuverlässig und haben genug Leistung. So schaut unsere Architektur in FMC-Notation aus:

FMC Aufbau Teamcontrol

Das erfordert, dass es eine API geben muss, über die Terminals und Web-Anwendung miteinander reden. Das macht die Implementation aufwändiger. Gleichzeitig gewinnen wir aber so die Möglichkeit, mehrere Lesestationen gleichzeitig zu betreiben, was uns in diesem Jahr sehr geholfen hat.

Intensives Testen

Wenn das Rennen läuft, muss alles funktionieren: Änderungen am System während des Rennens sollte man unbedingt vermeiden, auch wenn das technisch möglich ist. Vor dem Einsatz kann man das hektische Treiben, das während des Rennens herrscht, nur bedingt simulieren. Um dennoch die Stabilität des Systems zu gewährleisten, haben wir im Vorfeld intensiv auf automatisierte Unit-Tests gesetzt.

Durch diese haben wir zahlreiche Buchungssituation, die während des Rennens auftreten können, simuliert und bei jeder Änderung am Code vollständig prüfen lassen. Auch viele denkbare Fehlbedienungen wie vergessene oder Doppelbuchungen haben wir trainiert. Von Hand wär das nicht zu machen gewesen, weil wir zuletzt mehrere hundert Tests definiert hatten. Durch die hohe Testdichte und -relevanz konnten wir vor dem Rennen zahlreiche Sonderfälle identifizieren und korrekt in der Software abbilden, so dass es am Renntag tatsächlich nicht eine einzige Störung gab. Das macht uns stolz.

Continous Integration

Für unsere Projekte setzen wir stets Gitlab ein, das professionelle Verwaltungswerkzeug auf der Basis von git. Gitlab enthält auch Funktionen zur continous integration, bei dem jede noch so winzige Änderung am Quelltext eine vollständige Überprüfung der gesamten Codebasis nach sich zieht. Gleichzeitig erheben wir Kennzahlen zur Softwarequalität (wie zB die Testabdeckung oder andere Metriken) und erhalten ein quantitative Analyse des Fertigstellungsgrades des Softwareprojektes.

Viel Aufwand für Top-Qualität

Machen wir uns nichts vor: Der Aufwand war hoch. Gut 12 Mannwochen reine Entwicklungszeit wurden in die Fertigstellung der Software investiert, was einem Marktwert von mehr als 45.000 EUR entspricht. Wir haben diese Leistung für den Race4Hospiz eV pro bono erbracht, weil wir glauben, dass der gute Zweck den Aufwand rechtfertigt. Aber nicht nur das: Race4Hospiz hat uns vertraut, einen innovativen Ansatz zu einem Top-Ergebnis zu vollenden. Das war auch für uns eine Gelegenheit, auf die wir gewartet und über die wir uns gefreut haben.

Ich wünsche mir, dass mehr Kunden den Mut haben, innovative Wege zu beschreiten, wenn dem zu lösenden Problem so optimal begegnet werden kann.