Inhaltsverzeichnis:
Definition - Was bedeutet technische Verschuldung?
Technische Verschuldung ist ein Konzept in der Programmierung, das die zusätzliche Entwicklungsarbeit widerspiegelt, die anfällt, wenn Code verwendet wird, der auf kurze Sicht einfach zu implementieren ist, anstatt die beste Gesamtlösung anzuwenden.
Technische Schulden sind häufig mit extremer Programmierung verbunden, insbesondere im Rahmen von Refactoring. Dies bedeutet, dass im Rahmen des Entwicklungsprozesses eine Umstrukturierung des vorhandenen Codes (Refactoring) erforderlich ist. Nach dieser Denkweise ist Refactoring nicht nur ein Ergebnis von schlecht geschriebenem Code, sondern basiert auch auf einem sich entwickelnden Verständnis eines Problems und dem besten Weg, dieses Problem zu lösen.
Technische Schulden können auch als Designschulden bezeichnet werden.
Techopedia erklärt die technische Verschuldung
Der Begriff wurde von Ward Cunningham geprägt, einem Programmierer, der auch für die Entwicklung des ersten Wikis bekannt ist. Technische Schulden sind eine Metapher, die Softwareentwicklung mit Finanzschulden gleichsetzt. Stellen Sie sich vor, Sie haben ein Projekt mit zwei möglichen Optionen. Man ist schnell und einfach, muss aber in Zukunft geändert werden. Der andere hat ein besseres Design, aber die Implementierung wird mehr Zeit in Anspruch nehmen. In der Entwicklung ist das Freigeben von Code als schneller und einfacher Ansatz wie das Eingehen von Schulden - es ist mit einer Zinspflicht verbunden, die für technische Schulden in der Zukunft in Form von zusätzlicher Arbeit anfällt. Die Zeit zum Refactor ist gleichbedeutend mit der Tilgung des Kapitals. Dies braucht zwar kurzfristig Zeit, verringert aber auch zukünftige Zinszahlungen.
Ward Cunningham beschreibt dieses Konzept 1992 wie folgt:
"Der Versand von First-Time-Code ist wie das Eingehen von Schulden. Ein wenig Schulden beschleunigt die Entwicklung, solange sie durch ein Umschreiben umgehend zurückgezahlt werden. Objekte machen die Kosten dieser Transaktion erträglich. Die Gefahr besteht, wenn die Schulden nicht zurückgezahlt werden. Jede Minute." Ausgaben für nicht ganz richtigen Code zählen als Zinsen für diese Schulden. Ganze Engineering-Organisationen können unter der Schuldenlast einer nicht konsolidierten Implementierung, objektorientiert oder auf andere Weise, zum Stillstand gebracht werden. "
Das Konzept bedeutet nicht, dass niemals Schulden entstehen sollten. So wie eine Hebelwirkung bei korrekter Verwendung einem Unternehmen helfen kann, kann eine schnelle Lösung eine schnellere Markteinführung in der Softwareentwicklung bedeuten. Darüber hinaus ist technische Verschuldung nicht nur schlechter Code. Schlechter Code ist schlechter Code, und technische Schulden können sich aus der Arbeit guter Programmierer unter unrealistischen Projektbeschränkungen ergeben.
