Posts Tagged ‘Agile’

Pay technical debt – Tilge deinen technischen Kredit

Wednesday, May 28th, 2008

Leider ist es nicht immer möglich Code abzuliefern mit dem man selbst bzw. das Team 100% zufrieden ist. Dies kann z.B. daran liegen dass man keine Zeit hat. Sollte dieser Grund oft oder sogar dauerhaft vorliegen sollte sich das Team allerdings die Frage stellen warum man keine Zeit hat ordentliche Arbeit abzuliefern und stattdessen legacy code produziert. Ich verwende den Begriff legacy code übrigens wie Michael Feathers im Sinne von “Code ohne Tests”.

Doch nicht nur mangelnde Zeit kann Grund dafür sein dass man Code verbessern muss, auch neue Erkenntnisse führen dazu. Der einzelne Software Entwickler sowie das Team entwickeln sich (hoffentlich…) weiter und neue Erkenntnisse bzw. ein besseres Verständnis schlagen sich in besserem Code nieder. Ferner entwickelt sich das Produkt weiter, auch dabei muss der Code “mitwachsen”. Aus gutem Grund lautet das Mantra des testdriven development (TDD) Red – Green – Refactor.

Das zeitliche Verschieben des Refactoring ist vergleichbar mit der Aufnahme eines Kredits. Je später man ihn zurück zahlt desto höher fallen die Zinsen aus. Und Zinsen haben eine extrem gefährliche Eigenschaft die oft übersehen wird: sie wachsen exponentiell! Auch diese Eigenschaft lässt sich auf die Softwareentwicklung übertragen. Schiebt man Verbesserungen am Code zu lange vor sich her hat man irgendwann den big ball of mud, einen dicken ekligen Klumpen Code an den sich niemand mehr ran wagt.

Fazit:

  • Technischen Kredit so schnell wie möglich zurück zahlen
  • TODO Kommentare schreiben um die “Kredite” wiederzufinden (ReSharper hat einen To-Do Explorer um alle TODO Kommentare anzuzeigen)
Technorati-Tags: ,