Haben Sie Kompetenz-Schulden? Was passiert, wenn Entwickler ihre Codebasis verlernen

Hartmut Schlosser
©Shutterstock/ Ethan Daniels

Ein Software-Projekt ist wie ein altes Schiff auf hoher See – die Mannschaft ist ohne Ende damit beschäftigt, es vor dem Untergang zu retten. Diese Metapher steht im Zentrum eines lesenswerten Blogeintrags von Niklas Björnerstedt, in dem er auf den zeitlichen Verfallsprozess einer Codebasis eingeht.

Landläufig bekannt ist der Begriff „Technical Debt“ von Ward Cunningham. Ein Projekt häuft sich technische Schulden an, wenn sich das Verständnis eines Problems zunehmend von dessen Umsetzung im Code unterscheidet. Mit dieser Definition hatte Cunningham 1992 darauf hingewiesen, dass Software-Entwicklung ein Prozess ist, der das ständige Anpassen einer Codebasis an sich verändernde Bedingungen beinhaltet – beispielsweise an neu gewonnene Einsichten zur Lösung eines Problems.

Etwas konkreter bezieht Björnerstedt die technischen Schulden auf Framework-Updates. Nahezu jedes Projekt macht heute von Frameworks Gebrauch, und diese Frameworks verändern sich. Technische Schulden häufen sich an, wenn sich die Art der Verwendung eines Frameworks von der eigentlich vorgesehenen Art entfernt.

So weit, so gut. Neu ins Spiel bringt Björnerstedt nun aber den Begriff der Kompetenz-Schulden, den er neben den der technischen Schulden stellt. Kompetenz-Schulden definiert er als Lücke zwischen dem, was sich im Code eines Projektes befindet, und dem, was ein Projektteam davon versteht.

Ein Beispiel

Ein Projekt besteht aus dem Basis-Code und macht von zwei Frameworks Gebrauch. Im Team arbeiten drei Entwickler am Projekt. Nun wird sich das Wissen um den Basis-Code und die Frameworks ungleich verteilen. Entwickler A kümmert sich mehr um Framework 1, Entwickler B um Framework 2, etc. Genauso wie es eine gewisse Schnittmenge des von allen geteilten Wissens gibt, sind stets auch Codeteile involviert, von denen niemand etwas versteht – wer kennt schon alle Details eines Frameworks oder alle alten Routinen eines Legacy-Projektes?

Genauso wie die technischen Schulden vergrößern sich nun auch diese Kompetenz-Schulden mit der Zeit, wenn man nichts dagegen unternimmt: Die Funktionsweise eines Algorithmus gerät in Vergessenheit, Team-Mitglieder werden ausgetauscht, neue Framework-Features werden nicht mitgelernt.

Und schon steht ein seit langem funktionierendes Stück Software nach Jahren des Stillstands vor dem Problem, dass niemand mehr so richtig weiß, warum es funktioniert. Die „Unwartbarkeit“ eines Projektes liegt oft nicht an technischen Schulden, sondern an solchen Kompetenz-Schulden: Man muss sich wieder sehr lange in eine Codebasis, in Frameworks einarbeiten, um ein Projekt warten zu können. Typischerweise machen sich Manager dann Gedanken, ein altes Projekt mit neuen Leuten und neuen Technologien gleich ganz neu aufzusetzen…

Was tun?

Die Frage lautet nun: Was kann man gegen solche Kompetenz-Schulden unternehmen?

Björnerstedt gibt drei Hinweise:

  • Regelmäßige Refactorings helfen nicht nur gegen technische Schulden, sondern auch gegen Kompetenzschulden, da man sich mit dem Code auseinandersetzt und ihn besser verstehen lernt.
  • Pair Programming dient nicht nur dazu, schnellere und fehlerfreiere Ergebnisse zu liefern, sondern die Kompetenz gleichmäßig im Team zu verteilen.
  • Regelmäßige Framework-Updates zwingen dazu, sich die Neuerungen im Framework anzueignen und zu reflektieren, was sie für die eigene Codebasis bedeuten.

Soll das Software-Boot also nicht untergehen, gilt es sowohl technische als auch Kompetenz-Schulden kontinuierlich abzubauen.

Some forces such as employee turnover pull the ship down. Other forces such as refactoring help keep the boat floating. Only by keeping a constant focus on both technical and competence debt can we keep the boat floating in the long run.

Eine schlüssige Metapher?

Aufmacherbild: An old cargo ship has run aground von Shutterstock / Urheberrecht: Ethan Daniels

Geschrieben von
Hartmut Schlosser
Hartmut Schlosser
Content-Stratege, IT-Redakteur, Storyteller – als Online-Teamlead bei S&S Media ist Hartmut Schlosser immer auf der Suche nach der Geschichte hinter der News. SEO und KPIs isst er zum Frühstück. Satt machen ihn kreative Aktionen, die den Leser bewegen. @hschlosser
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: