Topic: Analyse von Zusammenarbeit und Projektfortschritt in GitLab

Topic: Analyse von Zusammenarbeit und Projektfortschritt in GitLab

Personal details

Title Analyse von Zusammenarbeit und Projektfortschritt in GitLab
Description

Bei größeren Softwareprojekten entstehen während der Entwicklung zahlreiche Informationen über den Projektverlauf. Issues werden erstellt und bearbeitet, Commits durchgeführt, Merge Requests eröffnet und reviewed sowie Milestones geplant und abgeschlossen. GitLab stellt viele dieser Informationen bereit, bietet jedoch nur begrenzte Möglichkeiten, daraus einen übergreifenden Eindruck über den aktuellen Zustand eines Projekts und die Zusammenarbeit innerhalb eines Teams zu gewinnen.

Gerade in studentischen Softwareprojekten wäre es hilfreich, problematische Entwicklungen frühzeitig erkennen zu können. Beispiele hierfür sind über längere Zeit unbearbeitete Aufgaben, fehlende Reviews, stark ungleich verteilte Aktivitäten oder Arbeiten, die erst kurz vor einem Milestone abgeschlossen werden.

Ziel dieser Abschlussarbeit ist die Konzeption und Entwicklung einer webbasierten Anwendung, die GitLab-Projektdaten analysiert und daraus Informationen über Projektfortschritt und Zusammenarbeit innerhalb eines Entwicklungsteams ableitet.

Home institution Department of Computing Science
Associated institutions
Type of work practical / application-focused
Type of thesis Bachelor's
Author Dr. Marco Grawunder
Status available
Problem statement

Im Rahmen der Arbeit soll zunächst untersucht werden, welche Informationen GitLab über die Entwicklung eines Projekts bereitstellt und welche Kennzahlen geeignet sind, um Projektverlauf und Zusammenarbeit abzubilden.

Darauf aufbauend soll eine Anwendung entwickelt werden, die relevante Informationen aus GitLab automatisiert erfasst, analysiert und übersichtlich visualisiert.

Mögliche Analysen sind beispielsweise:

  • Entwicklung der Anzahl offener und abgeschlossener Issues,
  • Durchlaufzeiten von Issues und Merge Requests,
  • über längere Zeit unbearbeitete Issues,
  • Merge Requests ohne oder mit sehr spätem Review,
  • Aktivität vor Milestone- oder Sprint-Enden,
  • Verteilung von Issues, Commits und Reviews innerhalb des Teams,
  • Analyse von Zusammenarbeit zwischen Teammitgliedern,
  • Identifikation stark isolierter Arbeitsbereiche,
  • Erkennung wiederkehrender organisatorischer Auffälligkeiten,
  • Darstellung der Entwicklung des Projekts über einen längeren Zeitraum.

Besonderes Augenmerk soll darauf gelegt werden, nicht lediglich einzelne Aktivitäten zu zählen. Eine hohe Anzahl von Commits ist beispielsweise nicht automatisch ein Indikator für einen hohen Beitrag zu einem Projekt. Stattdessen sollen geeignete Kennzahlen und Kombinationen verschiedener Informationen untersucht werden.

Project Health und Frühwarnindikatoren

Ein möglicher Schwerpunkt der Arbeit ist die Entwicklung sogenannter Project-Health-Indikatoren.

Das System könnte beispielsweise automatisch Hinweise erzeugen wie:

  • mehrere Issues wurden seit längerer Zeit nicht bearbeitet,
  • ein Milestone endet in wenigen Tagen, obwohl noch viele Aufgaben offen sind,
  • mehrere Merge Requests warten seit längerer Zeit auf ein Review,
  • ein großer Teil der Entwicklung findet erst unmittelbar vor Abgabefristen statt,
  • einzelne Komponenten werden nur von jeweils einer Person bearbeitet,
  • Reviews finden überwiegend innerhalb derselben kleinen Gruppe statt.

Dabei soll untersucht werden, welche dieser Indikatoren tatsächlich geeignet sind, problematische Projektverläufe frühzeitig zu erkennen.

Analyse der Zusammenarbeit

Zusätzlich können Beziehungen zwischen Teammitgliedern betrachtet werden.

Hierzu könnte beispielsweise ein Kollaborationsgraph erstellt werden:

  • Wer bearbeitet gemeinsam Issues?
  • Wer reviewed Merge Requests anderer Personen?
  • Welche Entwickler arbeiten regelmäßig an denselben Komponenten?
  • Wie stark ist das Wissen über unterschiedliche Bereiche eines Projekts verteilt?

Eine solche Darstellung könnte helfen zu erkennen, ob tatsächlich im Team gearbeitet wird oder sich weitgehend voneinander getrennte Teilgruppen bilden.

Technische Umsetzung

Die Anwendung soll als eigenständige Webanwendung entwickelt und über die Schnittstellen von GitLab angebunden werden.

Für die Umsetzung bieten sich beispielsweise folgende Technologien an:

  • Spring Boot für das Backend,
  • Angular bzw. TypeScript für das Frontend,
  • GitLab REST- oder GraphQL-API,
  • OAuth2 zur Authentifizierung,
  • GitLab Webhooks zur Aktualisierung von Projektdaten,
  • geeignete Bibliotheken zur Darstellung von Diagrammen und Graphen.

GitLab soll dabei das führende System für Issues, Merge Requests und weitere Projektdaten bleiben. Die zu entwickelnde Anwendung dient ausschließlich zur zusätzlichen Analyse und Visualisierung.

Mögliche Fragestellungen

Mögliche Forschungsfragen sind beispielsweise:

  • Welche GitLab-Metriken eignen sich zur Beschreibung des Zustands eines Softwareprojekts?
  • Welche Kombination verschiedener Metriken ermöglicht eine frühzeitige Erkennung problematischer Projektverläufe?
  • Wie kann die Zusammenarbeit innerhalb eines Entwicklungsteams sinnvoll visualisiert werden?
  • Welche Kennzahlen sind geeignet, ohne individuelle Leistungen allein anhand einfacher Aktivitätsmetriken zu bewerten?
  • Können aus GitLab-Daten typische Muster erfolgreicher bzw. problematischer Projektverläufe identifiziert werden?
  • Welche Informationen sind für Projektteams bzw. betreuende Personen besonders hilfreich?

Evaluation

Die entwickelten Verfahren sollen anhand realer oder historischer GitLab-Projekte evaluiert werden.

Dabei kann beispielsweise untersucht werden, ob identifizierte Auffälligkeiten mit tatsächlich aufgetretenen Problemen übereinstimmen und welche dargestellten Informationen von Entwicklerinnen und Entwicklern als hilfreich wahrgenommen werden.

Optional könnten historische Daten mehrerer Projekte miteinander verglichen werden.

Erwartete Ergebnisse

Erwartet werden:

  • die Analyse geeigneter Kennzahlen für Projektfortschritt und Zusammenarbeit,
  • die Konzeption eines entsprechenden Analysemodells,
  • die Implementierung eines prototypischen Systems,
  • geeignete Visualisierungen,
  • sowie eine Evaluation der entwickelten Verfahren.

Der genaue Umfang kann abhängig von Art und Umfang der Abschlussarbeit angepasst werden. Für eine Bachelorarbeit kann der Schwerpunkt auf der Visualisierung und grundlegenden Analyse liegen. Für eine Masterarbeit können insbesondere Verfahren zur automatischen Erkennung auffälliger Projektverläufe oder die Analyse historischer Projektdaten vertieft werden.

Requirement

Hilfreich sind Kenntnisse in Software Engineering und Webentwicklung. Erfahrungen mit Spring Boot, Angular/TypeScript, GitLab oder Datenanalyse sind von Vorteil, können aber auch im Rahmen der Arbeit vertieft werden.

Created 30/09/26

Study data

Departments
  • Informationssysteme - Data Science
Degree programmes
  • Bachelor's Programme Business Informatics
  • Bachelor's Programme Computing Science
Assigned courses
Contact person