Definicja

Dług techniczny to termin ukuty przez Warda Cunninghama, który porównuje niską jakość kodu do długu finansowego. Podobnie jak w banku, „pożyczasz” czas, idąc na skróty (np. pomijając testy automatyczne lub stosując brudny kod), aby szybciej dowieźć funkcjonalność. Ten dług musi zostać spłacony wraz z „odsetkami”, którymi jest spowolnienie tempa pracy zespołu w przyszłości.

Skąd bierze się dług techniczny?

Dług techniczny nie zawsze jest wynikiem braku umiejętności. Może powstawać z różnych przyczyn:

  1. Presja czasu: Konieczność dowiezienia MVP na ważne targi lub przed końcem kwartału.
  2. Brak standardów: Nieprzestrzeganie Definition of Done lub brak procesów Code Review.
  3. Ewolucja wymagań: System zaprojektowany dla 100 użytkowników nagle musi obsługiwać 100 000. Architektura staje się „długiem”, bo przestała pasować do skali.
  4. Starzenie się technologii: Korzystanie z bibliotek, które przestały być wspierane przez producentów.

Odsetki od długu technicznego

Największym zagrożeniem nie jest sam dług, ale jego odsetki. Objawiają się one poprzez:

  • Spadek prędkości (Velocity): Implementacja prostych zmian zajmuje coraz więcej czasu.
  • Kruchość systemu: Naprawa jednego błędu powoduje powstanie trzech nowych w innych miejscach.
  • Frustracja zespołu: Najlepsi programiści odchodzą, nie chcąc pracować w „legacy code”.

Jak zarządzać długiem technicznym?

Długu nie da się uniknąć całkowicie, ale analityk i zespół muszą nim aktywnie zarządzać:

1. Rejestr długu (Technical Debt Backlog)

Zidentyfikowane miejsca w systemie, które wymagają poprawy, powinny trafiać do backlogu jako techniczne User Stories.

2. Refaktoryzacja (Spłata kapitału)

Regularne wydzielanie czasu (np. 10-20% pojemności Sprintu) na poprawę jakości istniejącego kodu bez zmieniania jego zachowania widocznego dla użytkownika.

3. Edukacja interesariuszy

Analityk biznesowy musi tłumaczyć biznesowi, że brak inwestycji w „bebechy” systemu doprowadzi do sytuacji, w której za rok nie uda się wdrożyć żadnej nowej funkcji.


Kiedy dług jest… dobry?

Podobnie jak w biznesie, kredyt bywa dźwignią. Zaciągnięcie długu technicznego może być strategiczną decyzją (tzw. Prudent Debt), jeśli:

  • Musisz zwalidować pomysł na rynku przed konkurencją.
  • Wiesz, że dany moduł jest tylko prototypem i zostanie napisany od nowa.
  • Odsetki są niższe niż zysk z szybkiego wejścia na rynek.

Typowe błędy

  • Uznawanie bugów za dług – Bug to błąd w działaniu. Dług to błąd w konstrukcji, który może generować bugi w przyszłości.
  • Brak widoczności długu – Ukrywanie problemów technicznych przed Product Ownerem.
  • Próba spłaty wszystkiego na raz – Dążenie do „perfekcyjnego kodu” może zabić projekt biznesowo.

Podsumowanie

Dług techniczny to nieunikniony element cyklu życia oprogramowania. Kluczem nie jest jego całkowita eliminacja, ale świadome zaciąganie i regularna spłata. Dzięki temu system pozostaje elastyczny, a zespół może dostarczać wartość biznesową w przewidywalnym tempie przez wiele lat.

Powiązane pojęcia:

Kliknij w pojęcie, aby przejść do jego definicji w słowniku