Ein Software-System, das über viele Jahre wartbar bleibt und kontinuierlich einen Business Value erwirtschaftet, benötigt einiges an Planung, Entwicklung und Wartung. Bei der Wahl der zugrundeliegenden Technologien bemerken wir oft, wie wichtig es ist, Technologien nach ihrem Reifegrad zu wählen, statt nur den aktuellen Trends zu folgen (Boring Technology). Denn klar ist, jede Technologie ist nur so gut wie das Problem, das sie löst.
Während sich Anforderungen weiterentwickeln und die Software auf Änderungen reagieren muss, kommt es unweigerlich zu technischen Schulden. Doch nicht alle technischen Schulden sind gleich. Ist Legacy Code das gleiche? Nicht ganz, aber am Ende zählt vor allem: Wie groß ist der Aufwand, das System warten zu können? (Technische Schulden und Legacy Code) .
Was hilft gegen technische Schulden? Zum einen sind technische Schulden auch ein Management-Problem (Technische Schulden sind - trotz ihres Namens - kein rein technisches Problem). Aber auch auf individueller Ebene ist ein gewisser Mindset basierend auf Engagement, Demut und Empathie notwendig (Das Mindset für langlebige Software-Systeme).
Bewährt hat sich in unserer Erfahrung eine Kombination aus Blueprints und der Scout Rule (Tech-Debt Dilemma). Ein Klassiker, der es sich zu lesen lohnt, ist Working with Legacy Code von Michael Feathers.