Gamification als Treiber von Codequalität

Seite 3: Gamification-Tools

Inhaltsverzeichnis

Um Gamification im Rahmen eines Softwareentwicklungsprojekts einzusetzen, sind diverse Metriken zu erfassen und in Spielemechaniken einzubetten. Solche Metriken manuell zu erheben und in Spielemechaniken zu überführen, ist kaum möglich. Man sollte also meinen, dass es eine Reihe Tools gibt, die Entwickler dabei unterstützen. Tatsächlich fördert eine Recherche im Internet aber kein Werkzeug zu Tage, das es ermöglicht, Metriken aus diversen Datenquellen zusammenzuführen und Spielemechaniken wie Ranglisten, Awards, Badges oder Level-Ups um diese Metriken herum zu definieren. Im Folgenden wird deshalb beschrieben, welche Eigenschaften ein solches Gamification-Tool haben müsste.

Zunächst muss ein solcher Gamification-Server Metriken aus diversen Quellen einsammeln können
(s. Abb. 1).

Ein Gamification-Server greift auf Systeme des Softwareentwicklungsalltags zu, um Metriken zu sammeln und sie verschiedenen Spielemechaniken zuzuführen (Abb. 1).

Die Metriken werden von Fremdsystemen wie einem Codequalitäts-Server eingesammelt und über den Zugriff auf das Versionskontrollsystem den einzelnen Entwicklern zugeordnet. Die meisten Systeme dieser Art bieten APIs an, über die sich bestimmte Metriken abfragen lassen. Auf Seiten der Fremdsysteme ist somit keine Anpassung nötig, lediglich die Abfragen der Metriken sind innerhalb des Gamification-Servers zu implementieren.

Alternativ bieten manche Systeme die Möglichkeit, sogenannte Hooks einzurichten, die bei bestimmten Aktivitäten ausgelöst werden und aktiv Daten zum Gamification-Server übertragen können. Dafür muss der Server stets verfügbar sein, da die Hooks ansonsten ins Leere laufen. Weiterhin muss er die Möglichkeit bieten, die eingesammelten Metriken zu Spielemechaniken wie den erwähnten Ranglisten zu konfigurieren. Diese Konfiguration findet in einer Administrationsoberfläche statt. Die dort konfigurierten Spielemechaniken lassen sich dann den Teilnehmern zur Verfügung stellen.

Die Teilnehmer selbst greifen über eine weitere Weboberfläche auf den Gamification-Server zu. Für diese sind kreative Ideen zur ansprechenden Gestaltung gefragt, da sie aktiv dazu beiträgt, ob die angebotenen Spielemechaniken angenommen werden oder nicht. Jeder Teilnehmer sollte dabei selbst entscheiden können, welche Daten und Erfolge er mit den anderen Teilnehmern teilen möchte. Hat er diese Wahlfreiheit nicht, besteht die Gefahr des Vertrauensverlusts.

Beim Einsatz von Gamification muss man sich auch der potenziellen Gefahren bewusst sein. Sobald bestimmte Metriken einer konkreten Person zugeordnet und diese Werte von Teilnehmern gegenübergestellt werden, gibt es nicht nur diejenigen, die ganz oben stehen, sondern zwangsläufig auch jene, die in einer Punkteliste am unteren Ende stehen. Bei einer nicht eingeschränkten Gegenüberstellung besteht die Gefahr, dass alle Mitspieler sehen können, wer schlecht abschneidet. Das kann schnell negative Folgen haben, zum Beispiel ein sinkendes Ansehen bei den Kollegen oder die Schwächung des Selbstvertrauens. Ebenso gefährlich ist es, wenn Vorgesetzte die für die Gamification gedachten Metriken zur Messung der Arbeitsleistung der Mitarbeiter heranziehen. Da sie aber nie ein vollständiges Bild der Leistung einer Person darstellen, sollten Verantwortliche nicht vorschnell falsche Schlüsse ziehen.

Eine weitere Gefahr besteht bei der Verwendung falscher Mechaniken oder Ziele und bei Teilnehmern, die der Gamification eine unverhältnismäßig hohe Bedeutung beimessen. Fokussiert sich der Mitarbeiter zu sehr auf das strikte Erreichen seiner Ziele, gerät möglicherweise der Sinn der Gamification (die Förderung der Arbeitsqualität) in den Hintergrund.

Nachfolgend ein Beispiel für eine falsche Motivation dieser Art: Eine Stadt hat ein Rattenproblem. Der Bürgermeister entscheidet, die Bürger für jede gefangene Ratte mit einem Kopfgeld zu belohnen. Einige Bürger sehen jedoch das Ziel nicht darin, die Stadt zu säubern, sondern ausschließlich die winkende Prämie, die sie mit steigender Zahl gefangener Ratten erhöhen können. Sie entschließen sich, selbst Ratten zu züchten, die sie zum Bürgermeister bringen, um die Prämie zu kassieren.

Potenzielle Gefahren sollten deshalb insbesondere beim Einsatz von Gamification im Arbeitsumfeld von den Beteiligten im Vorhinein analysiert und diskutiert werden. Es wäre zum Beispiel ausreichend, Ranglisten auf die ersten drei Plätze zu beschränken, sodass lediglich die besten Plätze hervorgehoben sind, nicht jedoch die schlechtesten. Weiterhin gilt es, Vorgesetzte dahingehend zu sensibilisieren, dass die Ergebnisse nicht in Bezug auf die Gesamtleistung der Mitarbeiter aussagekräftig sind. Am besten sorgt man mit technischen Mitteln wie einem erforderlichen Login dafür, dass Vorgesetzte gar keinen Zugriff auf die Daten haben.

Um die Teilnehmer nicht in eine falsche Richtung zu motivieren, ist es wichtig, die Zweckmäßigkeit der Mechaniken und Ziele zu prüfen. Statt einer Prämie pro Ratte hätte der Bürgermeister aus dem Beispiel vielleicht erst bei Erreichen des Ziels "rattenfreie Stadt" eine Prämie ausloben sollen, zum Beispiel ein großes Bürgerfest auf Kosten der Stadt. Auch wenn es sich dabei um ein vermeintlich weniger motivierendes Kollektivziel handelt, kann es besser geeignet sein als ein falsch gesetztes Einzelziel. Ein Beispiel für den Erfolg von Kollektivzielen sind zum Beispiel Crowdfunding-Kampagnen, bei denen viele Teilnehmer jeweils wenig Geld beisteuern, um sogenannte "Stretch Goals" zu erreichen, die jeweils ein weiteres Feature des Produkts für alle Teilnehmer freischalten.

Gamification kann ein Mittel sein, Spaß in den Arbeitsalltag im Allgemeinen und in die Softwareentwicklung im Speziellen zu bringen. Gleichzeitig kann sie dazu beitragen, die Arbeitsqualität zu verbessern. Insbesondere Metriken, die sich aus einer statischen Codeanalyse gewinnen lassen, eignen sich zum Erstellen von Spielemechaniken, da sie einfach zu gewinnen und meistens objektiv bewertbar sind.

Bei der Einführung von Gamification muss man sich aber stets der damit einhergehenden Gefahren bewusst sein, um negative Auswirkungen auf die Arbeit zu verhindern. Zur Unterstützung von Gamification in der Softwareentwicklung gibt es leider noch keine ausgereiften Werkzeuge, sodass sich hier erst eine Community finden muss, aus der diese Werkzeuge hervorgehen.

Tom Hombergs
ist Softwarearchitekt bei der adesso AG und trägt dort die technische Verantwortung in Softwareentwicklungsprojekten. Nebenbei ist er auf GitHub aktiv und entwickelt unter anderem ein Werkzeug zur Gamification von Codequalität.

Thorben Schiller
ist Software Engineer bei der adesso AG und engagiert sich neben dem Projektgeschäft im Hochschulumfeld, um Studenten auf den Softwareentwicklungsalltag vorzubereiten. Das Thema Gamification in der Softwareentwicklung war bereits das Thema seiner akademischen Abschlussarbeit.
(ane)