Czym jest dług technologiczny? Dług technologiczny zaciągamy zawsze, kiedy w projektach informatycznych idziemy na skróty. Kiedy budujemy rozwiązania nieskalowalne i kiedy przeciwstawiamy sobie pojęcia wysokiej jakości i szybkiej dostawy. Budowanie oprogramowania, w którym od początku nie dbamy o achitekturę systemową lub o kodowanie oprogramowania wiąże się ze wzrostem naszego zadłużenia. Koszty te zazwyczaj nie są widzoczne w "teraz" projektu informatycznego, ale będą musiały zostać pokryte prędzej czy później.
Wikipedia wskazuje na następujące powody powstawania długu:
- presja biznesowa (jak pokazano poniżej)
- brak podejścia procesowego lub brak zrozumienia biznesowego dla długu
- brak elastyczności przy budowaniu oprogramowania
- brak testowania
- brak dokumentacji
- brak współpracy
- budowowanie jednego systemu przez wiele organizacji w izolacji
- opóźniona refakturyzacja
Poniższy wykres [jest to tłumaczenie wykresu ze strony http://faheemsohail.com/2011/03/scrum-and-xp-go-hand-in-hand/] prezentuje realizację zadań w funkcji czasu. Niebieska linia pokazuje optymalny czas dostawy skonfrontowany z czasem dostawy wymuszonym (zazwyczaj) przez tzw. deadline. Nierelistyczne oczekiwania wyznaczają zaciągnięcie długu technologicznego.
Z pespektywy testowania / jakości oprogramowania dług technologiczny łatwo zwizualizować regułą 1:10:100. Jeśli w fazie definiowania wymagań (1) nie zapłacimy za ich wysoką jakość, to w fazie dostawy do klienta jest wysoce prawdopodobne, że poniesiemy koszty stókrotnie większe (100).
W projektach wykonuje się dużą ilość różnego rodzaju "oszczędności", które realnie są zaciągnięciem pożyczki technologicznej. Z perspktywy testowania dług pojawi się za każdym razem kiedy:
- nie dopilnuje się testowalności wymagań
- budżet na testowanie zostanie zredukowany
- czas na testowanie zostanie skrócony
- testowanie zostanie źle zaplanowane
- nie wykonany zostanie przypadek testowy
- informacja z testowania nie zostanie wykorzystana
- etc.
Stworzenie pojęcia długu technicznego przypisuje się Wardowi Cunninghamowi.
Źródła:
http://en.wikipedia.org/wiki/Technical_debt
http://faheemsohail.com/2011/03/scrum-and-xp-go-hand-in-hand/