Software Product Quality Dashboard

Qualitätsmanagement im Softwareentwicklungsprozess: Entwicklung eines intuitiven Dashboards.

Text

Ausgangslage

Unternehmen, die digitale Lösungen anbieten sehen sich heutzutage mehr denn je mit der Herausforderung konfrontiert, dass die Produktlandschaft immer komplexer wird. Anforderungen an Software werden vielseitiger, Unternehmensstrukturen entwickeln sich weiter und die ganze Industrie befindet sich in einem ständigen Wandel. Umso wichtiger ist es für Unternehmen einen umfassenden Überblick über die Qualität ihrer Produktpalette zu behalten, fehlerbehaftete Komponenten davon schnell zu erkennen und anzugehen und die Ressourcen für neue Entwicklungen sinnvoll einzusetzen.

Zielsetzung

Das Projekt zielt darauf ab, die Zusammenarbeit und Entscheidungsfindung in agilen Entwicklungsprojekten zu verbessern. Dafür soll ein UI-UX Prototyp entwickelt werden, der es Benutzenden ermöglicht durch eine geschickte Visualisierung der User Stories, Features und Epics und deren Zusammenhänge, einen ganzheitlichen Blick auf den Zustand eines Projekts, dessen Qualität und auf die geplanten Erweiterungen zu werfen. Diese Implementierung soll zudem ermöglichen, dass IT und Business eine gemeinsame Schnittstelle erhalten, über die sie sich einen Überblick verschaffen, ein gemeinsames Verständnis entwickeln können und zur engeren Zusammenarbeit motiviert werden. Im Vordergrund stehen dabei eine gute Übersichtlichkeit, eine intuitive Darstellung und die Funktionalität zur Kommunikation zwischen den Stakeholdern.

Feature Map

FHNW

Mit der Feature Map kann man für angeplante Features eine Besprechungsgrundlage herbeiziehen, Features die beispielsweise von der IT als Low-Cost eingestuft werden und aus Business Sicht als High-Value eingestuft werden, sind in der gründen Zone leicht aufzufinden. Hingegen Features die von der IT als schwer oder kostspielig eingestuft werden sowie auch aus Businesssicht nicht viel Mehrwert mit sich bringen, werden rot eingestuft. Die Idee hierbei ist also die schnelle visuelle Veranschaulich und Verallgemeinerung für beide Perspektiven (IT & Business) zu schaffen.

Bugrate-Chart

FHNW

Auf Grund von historischen Daten kann man leicht erkennen, wie viele Bugs eine Applikation (oder eine Komponente innert einer Applikation) bis anhin verursacht hat. Auf einen Release Cycle betrachtet kann man dadurch auch abschätzen was die maximale Buganzahl ist, bei welcher die Applikation dennoch am Ende des Cycles bugfrei bereitgestellt werden kann.
In diesem Chart stellen wir diese "Guideline" gegenüber der momentanen Situation um zu Veranschaulichen ob wir am Ende des Release-Cycles qualitativ eher im grünen, gelben oder roten Bereich landen werden. (Abgebildet ist ein Weihnachtsrelease von 60 Tagen Feature-Entwicklungszeit (bis "Feature Freeze") + 15 Tagen, an welchen noch Bugs behoben werden können (bis "Code Freeze"), obendrauf nochmals ca. 8 Tage Hotfixzeit, wo nur noch dringendes behoben werden darf. Andere Release-Cycles könnten auch weniger oder gar mehr Tage beinhalten.

Burnup-Chart

FHNW

Das klassische Burnup-Chart aus einem Sprint sollte jeder Entwickler kennen, auch wenn es vielleicht oft nicht so toll aussieht! Für unser Product Quality Dashboard haben wir dieses umtransformiert um einen Release-Cycle abzudecken, welcher aus mehreren Sprints besteht. Da für einen Release Features eingeplant werden, kann man als Guideline die abgeschätzen Stories benutzen, und die Jira-Historien nutzen um zu veranschaulichen wie der Fortschritt des Entwicklungsteams im gegebenen Release-Cycle ist. Auch hier ist wichtig zu betrachten, dass die Guideline das Total beim Feature-Freeze erreicht, da danach keine Features mehr von Entwicklerteams eingereicht werden dürfen. Wie wir sehen können hat in diesem Beispiel das Entwicklerteam den Feature-Freeze verpasst grundlegend verpasst und die Ziele nicht erreicht, die am 54. Tag vollendeten Stories werden erst im nächsten Release-Cycle verfügbar sein.

Feature overview

FHNW

Zusätzlich zu den oben genannten Charts brauchen wir für das Business & die IT natürlich auch eine Ansicht wo man direkt sehen kann was der Fortschritt einzelner Features ist, wo die Bugs entstehen etc. Dies haben wir auf Grund von Umfrageergebnissen tabellarisch gelöst, es werden jeweils direkt nur die Features angezeigt, welche sich im ausgewählten Release-Cycle befinden.

Ergebnisse

Unsere Lösung umfasst mehrere Funktionen, die dabei helfen, den Status eines Softwareprojekts einfach und übersichtlich darzustellen:

  • Automatisch generierte Notizen, wenn Informationen über einen Lead geändert wurden.
  • Feature Map: Eine grafische Darstellung von Features basierend auf Kosten (Cost) und Nutzen (Gain). Diese Karte zeigt auf einen Blick, welche Features den größten Mehrwert bei geringen Kosten bringen und welche möglicherweise kritisch hinterfragt werden sollten.
  • Bugrate-Chart: Dieses Diagramm zeigt, ob es realistisch ist, den aktuellen Release-Zyklus ohne offene Bugs abzuschließen. So können Risiken frühzeitig erkannt und adressiert werden.
  • Burnup-Chart (Release-Ebene): Statt auf einzelne Sprints bezogen, zeigt dieses Chart den Fortschritt über den gesamten Release hinweg. Es hilft dabei zu erkennen, ob ein Projekt im Zeitplan liegt und die gesetzten Ziele erreichen kann.
  • Filter: Die Ansicht kann nach Release, Komponente (z. B. eine Applikation oder ein Modul) und Team gefiltert werden, um die Informationen je nach Bedarf einzugrenzen.
  • Tabellarische Schnellansicht: Eine Tabelle gibt eine kompakte Übersicht über alle Features des aktuellen Releases. Sie bietet eine schnelle Möglichkeit, den Status und wichtige Details zu prüfen.
  • Verbesserte Kommunikation: Bei Qualitätsabweichungen, wie zum Beispiel bei roten oder gelben Statusanzeigen in Bugrate-Chart oder im Burnup-Chart, kann die IT die Ursachen direkt im System begründen. Diese Begründungen sind für das Business einsehbar, sodass beide Seiten ein gemeinsames Verständnis der Situation entwickeln können. Dies erleichtert die Zusammenarbeit und hilft, schneller fundierte Entscheidungen zu treffen.
  • etc.

In diesem Projekt wurde ein intuitives Dashboard entwickelt, das technische und geschäftliche Perspektiven zusammenführt, um die Qualität von Softwareprojekten übersichtlich darzustellen.

Mithilfe von Visualisierungen wie der Feature Map, dem Bugrate-Chart und dem Burnup-Chart können Entscheidungsprozesse effizienter gestaltet werden. Die Filter- und Kommunikationsfunktionen unterstützen dabei, relevante Informationen zielgerichtet bereitzustellen und die Zusammenarbeit zwischen IT und Business zu stärken.

Technische Schlüsselbegriffe

  • Feature MapEine grafische Darstellung, die Features nach ihrem Kostenaufwand (Cost) und Nutzen (Gain) einordnet. Features mit hohem Nutzen und geringen Kosten befinden sich im grünen Bereich, während solche mit hohem Aufwand und geringem Nutzen im roten Bereich eingeordnet werden. Dies erleichtert eine schnelle visuelle Bewertung aus IT- und Business-Perspektive.
  • Bugrate-ChartEin Diagramm, das zeigt, ob ein Release-Zyklus innerhalb der festgelegten Bug-Toleranz abgeschlossen werden kann. Es stellt eine "Guideline" gegenüber dem aktuellen Zustand dar, um frühzeitig Probleme in der Softwarequalität zu identifizieren.
  • Burnup-ChartEine modifizierte Version des klassischen Burnup-Charts, das den Fortschritt eines gesamten Release-Zyklus zeigt. Es visualisiert, ob die geplanten Features fristgerecht abgeschlossen werden, und nutzt abgeschätzte Storypoints als Guideline.
  • ReleaseEin festgelegter Zeitraum oder eine Version, in der neue Funktionen oder Verbesserungen in einer Software veröffentlicht werden. Ein Release umfasst oft mehrere Entwicklungsphasen.
  • KomponenteEin klar abgegrenzter Teil einer Software, der eine spezifische Funktion erfüllt. Zum Beispiel kann eine Komponente ein Modul wie eine Zahlungsfunktion in einer App sein.
  • TeamEine Gruppe von Personen, die gemeinsam an der Entwicklung einer Software arbeiten. Teams haben oft spezielle Rollen, wie Entwickler, Tester oder Designer.
  • StorypointsEine Einheit, mit der Entwickler die Komplexität oder den Aufwand einer Aufgabe (Story) in der Softwareentwicklung einschätzen. Sie helfen bei der Planung, wie viel Arbeit in einem bestimmten Zeitraum erledigt werden kann.
  • FeatureEine einzelne Funktion oder Eigenschaft einer Software, die einen bestimmten Nutzen für die Benutzer bietet, wie zum Beispiel eine Suchfunktion oder ein Bezahlmodus.

Kund:in

Logos

Fachhochschule Nordwestschweiz FHNW
Generalsekretariat
Bahnhofstrasse 6
5210 Windisch
Zur FHNW Website

Team

Marco Ruch
Jorge Gaetano Lopez Diaz

Betreuer
Martin Kropp
Fabian Affolter