Dependencies + Trends = Depentrendcy

Dependencies + Trends = Depentrendcy

Software wird immer modularer aufgebaut, damit steigt auch die Wiederverwendung. Im Zuge dieser Wiederverwendung entstehen Abhängigkeiten zu anderen Projekten – zum Beispiel NuGet-Abhängigkeiten in .NET oder Node-Abhängigkeiten in Angular.

Wer schon einmal an einem größeren Angular-Projekt mitgearbeitet hat, weiß, dass gerade in Angular die Anzahl der Abhängigkeiten schnell wachsen kann. Das Problem dabei? Diese Abhängigkeiten können rasch veralten – vor allem der Webbereich ist bekannterweise sehr schnelllebig. Außerdem gilt: Je mehr Abhängigkeiten ein Projekt hat, desto schwerer ist es, den Überblick zu bewahren.

Abbildung Softwaretagebuch

Abbildung 1: Verlauf der technischen Schulden im Softwaretagebuch

Die Lösung?

Während meines Berufspraktikums bei softaware habe ich versucht, diesem Problem mit dem Projekt „Depentrendcy“ entgegenzuwirken. Eine Übersicht, welche Abhängigkeiten in welcher Version verwendet werden, schafft mehr Klarheit über Abhängigkeiten zu anderen Projekten. Außerdem gibt es empfohlene Versionen für Abhängigkeiten, die dabei helfen, aktualisierbare oder veraltete Abhängigkeiten zu identifizieren. Diese empfohlenen Versionen werden von erfahrenen EntwicklerInnen festgelegt, die eine qualifizierte Einschätzung der Aktualität liefern können.

Mehr Transparenz

Eine solche Verwaltung von Abhängigkeiten und ihren Versionen bietet nicht nur EntwicklerInnen einen schnellen Überblick – in Zukunft sollen auch die Kunden der softaware einen Einblick in die Aktualität ihrer Projekte haben. Zusätzliche Widgets im hauseigenen Software-Tagebuch geben unter anderem einen Überblick über den Verlauf der technischen Schulden (also die Veralterung des Systems) und die aktuell verwendeten Abhängigkeiten. Die Informationsaufbereitung erfolgt aber nicht nur visuell – zusätzlich schickt ein Bot wichtige Informationen über die Abhängigkeiten aus.

Abbildung Abhängigkeiten

Abbildung 2: Aktuelle Abhängigkeiten mit Ampelvisualisierung

Aktueller Stand

Das Projekt befindet sich gerade zum Teil noch in der Entwicklungsphase. Die Abhängigkeiten einiger Projekte werden bereits jede Nacht einmal automatisch analysiert. Des Weiteren existieren bereits Widgets für das Tagebuch und ein Bot. Beides wird voraussichtlich in naher Zukunft in Einsatz genommen und hoffentlich sowohl von allen EntwicklerInnen der softaware als auch von unseren Kunden gerne verwendet.