Sonar Quest

SonarQuest

Mit Gamification zu besserer Softwarequalität

SonarQuest: Ein spielerischer Ansatz zur Verbesserung der Softwarequalität.

Zwei Fragen stellen sich uns in unseren Projekten immer wieder:

  • Wie verbessern wir die Qualität unseres Codes?
  • Wie motivieren wir Teams dazu, stetig an der Verbesserung der eigenen Software zu arbeiten?

Eine mögliche Antwort auf diese Fragen lautet: Gamification! Mit SonarQuest wurde in der viadee ein Spielkonzept und OpenSource-Tool entwickelt, das Teams bei der spielerischen Bewältigung von (Wartungs-)Aufgaben unterstützt. Angesiedelt im Kontext klassischer Rollenspiele schickt SonarQuest die Entwickler:innen auf eine Abenteuerreise: So werden Sicherheitslücken zu Monstern, fehlende Tests zu Rätseln, neue Releases zu Abenteuern. Damit die Spieler:innen nicht zu Einzelkämpfer:innen mutieren, haben wir besonderen Wert auf Teamplay und die Integration in den Arbeitsalltag gelegt. Neugierig? Spielen wir eine Runde!

Wartung –  mehr als ein notwendiges Übel

Wartungsarbeiten gelten eher als trockene Angelegenheiten. Die damit verbundenen Tätigkeiten sind selten innovativ und erfordern es immer wieder, sich mit Altlasten – sowohl von sich als auch von anderen – zu beschäftigen. Die Arbeit muss dazu oft noch nebenbei erledigt werden und erfährt zumeist eine geringere Wertschätzung als das Ergänzen neuer Funktionen (“Läuft genau wie vorher”-Effekt bei den Anwendern).

Selbst in hochmotivierten Teams ist es deshalb bisweilen schwierig, die Mitglieder dauerhaft zu motivieren, an Wartungsarbeiten zu partizipieren oder diese bestenfalls selbstständig anzugehen. Zudem fehlt dem Projektmanagement oft eine Möglichkeit der Steuerung des Wartungsprozesses, welche den Fokus auf die Stellen lenkt, die für den Qualitätsanspruch des Softwareprojektes langfristig relevant sind.

Die Idee: Wartung als Rollenspiel (RPG)

Mit SonarQuest wurde in der viadee ein Konzept entwickelt, das diese Problemstellung, die uns in unseren Projekten immer wieder begegnet, zeitgemäß adressiert: mit Methoden der Gamification, aus unserem Erfahrungsschatz als Clean Coder und agile Entwickler:innen und nicht zuletzt dem Enthusiasmus einiger überzeugter “Gamer” unter den Beteiligten.

SonarQuest - Clean Code und Gamification - join the community!

Grundlegende Idee ist es, die Erledigung von Wartungsarbeiten in ein klassisches Rollenspiel zu überführen: Sicherheitslücken werden so zu Monstern, die Auflösung technischer Abhängigkeiten zur Lösung eines Rätsels und das Team zu einer Held:innengruppe, die von der Teamleitung, dem “Gamemaster”, vor immer neue Herausforderungen gestellt wird.

SonarQuest - Clean Code und Gamification - join the community!

Basis für die zu erledigenden Aufgaben sind die Ergebnisse der statischen Codeanalyse mit dem OpenSource-Tool SonarQube. SonarQube ist das am meisten verbreitete Tool zur statischen Analyse von Programmcode in über 20 Programmiersprachen und lässt sich problemlos in die gängigen Entwicklungsumgebungen und Pipelines integrieren. Bei jedem SonarQube-Build erstellt die Analyse auf Basis von Regelwerken, die den Erfahrungsschatz einer langjährigen Community widerspiegeln, ein Set von Kennzahlen und Wartungsaufgaben. Diese Aufgaben reichen von eindeutigen Fehlern (Bugs) und Sicherheitslücken (Vulnerabilities) bis hin zu eher kosmetischen, aber dennoch notwendigen Anpassungen. Zudem werden übergreifende Qualitätsprüfungen (Quality Gate) vorgenommen und Kennzahlen erhoben, um die Entwicklung der Softwarequalität im Projektverlauf zu dokumentieren.

SonarQuest - Clean Code und Gamification - join the community!

Anstatt Entwicklungsteams die resultierenden Aufgaben zuzuweisen, werden diese in SonarQuest zu Herausforderungen (Quests) und Abenteuern (Adventures) zusammengeführt, immer verbunden mit einer von dem:der Teamleiter:in (Gamemaster) verfassten Geschichte. Der Gamemaster wird bei der Zusammenstellung von Quests und Adventures durch Auswahlmechanismen unterstützt. Aktuell ist ein Mechanismus in Arbeit, der anhand der Wahrscheinlichkeit von zukünftigen Änderungen an den betroffenen Klassen eine möglichst nachhaltige Auswahl von Issues aus den SonarQube-Daten gewährleisten und somit Wartungskosten dauerhaft senken soll.

SonarQuest - Clean Code und Gamification - join the community!

Die Spieler:innen werden in SonarQuest durch eigene Charaktere und Avatare repräsentiert, bilden auf Dauer eigene Fähigkeiten aus und können sich zusätzlich auf einem Marktplatz mit Artefakten ausstatten – ganz so wie man es von modernen Online-Rollenspielen kennt. Das Spielen von SonarQuest ist grundsätzlich freiwillig und kommt gänzlich ohne Tracking der Spieler:innen aus. Über Sonderaufgaben und Boni kann der Gamemaster Teamwork belohnen und dafür sorgen, dass neben den technischen Aspekten auch Dinge wie Termineinhaltung, gute interne Reviews oder die besonders gelungene Umsetzung von Aufgaben honoriert werden.

Join the SonarQuest-community!

SonarQuest ist ein OpenSource-Projekt und steht kostenlos auf GitHub zur Verfügung. Die viadee beteiligt sich aktiv am Aufbau einer lebendigen Community und wird die Entwicklung von SonarQuest weiter vorantreiben. Dabei hoffen wir auf viele motivierte Menschen – egal ob Gamer, Entwickler:innen, Agilist:innen, Designer:innen oder Manager:innen – die uns bei diesem Vorhaben unterstützen und die Welt von SonarQuest gemeinsam Stück für Stück ausbauen.

Wir suchen Entwickler:innen

Wir suchen Entwickler:innen, die das Clean Code Game gemeinsam mit uns weiterentwickeln. Füllen Sie einfach das Formular aus, wir melden uns dann kurzfristig bei Ihnen.


Ansprechperson

Michael Landreh

Tel: +49 251 777 77 196

Christoph Meyer
– Senior-Berater

Tel: +49 251 777 77 0

Björn Köhnke

Tel: +49 251 777770

Aktuelle Blogbeiträge

Schon sehr viele IT-Projekte haben wir auf Basis der Java-Technologie erfolgreich realisiert und so große Expertise angesammelt. Das spiegelt sich auch im viadee-Blog wider. Im Java-Blog finden Sie außerdem spannende Beiträge zu Themen wie “Clean Code”, JUnit oder Scrum.

zum Blog #Java & Architektur

Unsere Lösungen für
BANKEN, VERSICHERUNGEN, HANDEL UND WEITERE BRANCHEN

Agile MethodenAgile Methoden

Business Process ManagementBusiness Process Management

Clean CodeClean Code

CloudCloud

IT-SicherheitIT-Sicherheit

Java & ArchitekturJava & Architektur

Legacy ITLegacy IT

Frontend-EntwicklungFrontend-Entwicklung

Robotic Process AutomationRobotic Process Automation

Software-QualitätssicherungSoftware-Qualitätssicherung