Code Change Impact Visualisation

Ein webbasiertes Dashboard, das Code Change Impact Analysis direkt ins Sprint Planning integriert. Es unterstützt Scrum Teams dabei, potentielle Auswirkungen eines Changes frühzeitig zu erkennen und in ihren Schätzungen zu berücksichtigen.

Text
Hauptansicht mit Planungsdashboard

Ausgangslage

Code Change Impact Analysen untersuchen, welche Bereiche einer Software durch eine geplante Änderung betroffen sein könnten. Dadurch lassen sich Abhängigkeiten, mögliche Seiteneffekte und Risiken frühzeitig erkennen und bestenfalls mitigieren. Bisher bestehende Tools richten sich meist an Entwickler und bereiten ihre Ergebnisse sehr technisch auf, was es Rollen wie dem Product Owner erschwert, diese Tools zu nutzen. Ein Beispiel ist das vorangegangene IP6-Projekt, auf dessen Grundlage nun eine Visualisierung der Code Change Impact Analyse entwickelt werden soll. Durch eine verbesserte Darstellung der Ergebnisse sowie eine erleichterte Bedienung können Impact Analysen für weitere Benutzerkreise geöffnet werden.

Zielsetzung

Ziel des Projekts ist die Entwicklung einer Applikation, welche die Ergebnisse einer Code Change Impact Analyse verständlich visualisiert und in das Sprint-Planning des Scrum Frameworks integriert. Product Owner und Entwickler sollen dadurch Auswirkungen, Risiken und Zusammenhänge von Backlog-Tickets schneller erfassen und miteinander vergleichen können. Die Anwendung soll so eine gemeinsame, datenbasierte Grundlage für die Diskussion und Priorisierung von Tickets schaffen.

UI Entwicklung

UI Entwicklung

Während des Projekts durchlief das UI Design mehrere Iterationen. Vom einfachen Sketch über eine erste Umsetzung bis zum finalen Dashboard wurden sowohl Platzierung als auch Aussehen und Aussagekraft der einzelnen Elemente immer wieder kritisch hinterfragt.

Analysemöglichkeiten

Analysemöglichkeiten

Die Applikation ermöglicht es Nutzern auch eigene Erfahrungen einzubringen. Durch das Auswählen potentiell betroffener Klassen können Entwickler die Analyse beinflussen und eigene Einschätzungen mit in das Ergebnis einfliessen lassen.

Integration des CLI-Tools

Integration des CLI-Tools

Aufgrund einer zukunftsgerichteten Ausrichtung der Applikation (Sprint Planning vs. Commit-Analyse des CLI-Tools) wurde die bestehende Anwendung erweitert und liefert die Grundlage für eine automatische Ersteinschätzung der Tickets

Ergebnisse

Als Ergebnis des Projekts wurde ein Angular Prototyp entwickelt, der die Ergebnisse einer Code Change Impact Analyse verständlich aufbereitet und direkt in den Sprint-Planning-Prozess integriert. Mithilfe einer Anbindung an einen Git-Service (GitHub, GitLab, Gitea) erhält die Applikation die Daten des aktuellen Sprints und erweitert diese mit den eigenen Werten. Neben den vorhandenen Ticketinformationen werden zusätzliche Kennzahlen wie Spread, Severity und Impact verwendet, um mögliche Auswirkungen eines Changes besser einschätzen zu können. Scrum Teams können die Applikation als Grundlage für Diskussionen rund um die für den nächsten Sprint geplanten Tickets nutzen und mithilfe des Dashboards die Auswirkungen ihrer Entscheidungen in Echtzeit mitverfolgen. Zusätzlich können Nutzer verschiedene Tickets vergleichen und somit die verfügbaren Kapazitäten eines Sprints optimal ausschöpfen.

Kernfunktionen:

  • Verwaltung mehrerer Projekte innerhalb des gleichen Nutzerprofils
  • Verschieben von Tickets per Drag-and-drop in den geplanten Sprint.
  • Verschiedene Diagramme basierend auf den geplanten Tickets
  • Detailansicht zur Bearbeitung und Analyse einzelner Tickets.
  • KI-gestütze Ersteinschätzung von Severity, Spread und Impact
  • Auswahlmöglichkeit betroffener Klassen zur Verfeinerung der Impact Analyse
  • Vergleichsmöglichkeit für zwei oder mehrere Tickets

Eine initiale Einschätzung der Impact Werte kann von der Applikation übernommen werden. Dies ermöglicht auch Nutzern, welche nur einen limitierten Überblick über den Sourcecode des Projekts haben, die Impact Analyse zu nutzen und eine grobe Einschätzung des Impacts zu erhalten. Mithilfe des Express-Backends und der darin enthaltenen Anbindung des CLI-Tools wird ein Request gebaut, welcher per API an eine KI weitergeleitet wird. Die Anfrage wird mit Informationen wie Beschreibung des Tickets, Projektstruktur oder Klassennamen angereichert. Developer, welche bereits eine eigene Idee zum Impact eines Tickets haben, können mithilfe der Applikation auch diese Einschätzung mit einfliessen lassen. Dazu wird eine Übersicht der Projektstruktur bereitgestellt, aus der der Nutzer die betroffenen Klassen selektieren kann. Diese werden dann im Request hervorgehoben und priorisiert betrachtet.

User-Tests mit Nutzern aus der agilen Projektwelt konnten im zeitlichen Rahmen dieses Projektes nicht durchgeführt werden. Diese müssen zeigen, ob die implementierten Features den gewünschten Nutzen bringen und die Nutzung einer Impact Analyse im Arbeitsalltag der Entwickler steigert.

Technische Schlüsselbegriffe

  • Code Change Impact AnalysisAnalyse der durch eine Codeänderungen betroffenen Bereiche einer Software sowie die potentiell daraus entstehenden Risiken
  • SpreadBeschreibt das Ausmass einer Codeänderung und gibt an, wie viele Komponenten beziehungsweise Tests davon betroffen sind
  • SeverityBeschreibt die Schwere einer Codeänderung. Das Ändern eines Operanden wirkt sich stärker auf die Funktion einer Methode aus als das Ändern eines Variablennamens
  • AngularWeb-Framework zur Entwicklung des interaktiven Frontends und diversen Visualisierungen
  • Express JSWeb-Framework für das Backend, welches unter anderem Authentisierung, Datenspeicherung und die Anbindung der Applikation übernimmt

Team

Martin Castro
Tom Ritter

Betreuer
Martin Kropp
Fabian Affolter