Viele Systeme haben allerhand unsichtbare Probleme, die man heutzutage als Technical Debt zusammenfassen kann: Code Smells, fehlende Tests und Dokumentation, schlechtes Design, unangemessene Architektur und/oder veraltete Technologie. Kleine Probleme wie Code Smells sind noch einfach zu beheben, aber substantielle Probleme, die große Teile der Codebase betreffen sind aus vielen Gründen weitaus schwieriger anzupacken. Risiko, Kosten und Wert der “Rückzahlung” von Technical Debt sind zudem schwer abzuschätzen.
Es heißt oft, dass Technical Debt zu vermeiden sei, dies ist aber letztenendes unmöglich und deshalb rückt mehr und mehr das Maximieren des Wertes von “Technical Debt Management” in den Vordergrund. Ein in die Jahre gekommenes System hat fast immer so viel Verbesserungsbedarf, dass Verbesserungen nicht blind gemacht werden dürfen. Es ist wichtig, die Stellen anzupacken, die am meisten Wert versprechen.
Hier kommen Lean Prinzipien ins Spiel um zu entscheiden, was man wann und wie verbessern sollte.
Dieser Vortrag gibt erst einen Überblick über die Technical Debt Landkarte und warum man Technical Debt managen sollte, statt einfach nur blind zu verbessern. Danach werden die Lean Prinzipien "Eliminate Waste", "Decide as late as possible", "Deliver as fast as possible" und "See the whole" diskutiert und wie man sie nutzen kann, um ein System wertorientiert zu verbessern.
Sven Johann ist Senior Consultant bei innoQ und beschäftigt sich seit vielen Jahren mit der Modernisierung von mittleren und großen Java-Anwendungen. Er ist aktiver Teilnehmer verschiedener Workshops des Software Engineering Institutes (Managing Technical Debt) und des Leibnitz Zentrums für Informatik (Dagstuhl Seminar “Managing Technical Debt”). Zudem ist er Program Chair der GOTO Amsterdam und Show Host von Software Engineering Radio.