Co to jest dług techniczny?

Dług techniczny jest to pojęcie związane z realizacją projektów informatycznych. Jest to zbiór wielu różnych problemów technicznych, które pojawiają się podczas realizacji projektu informatycznego, a ich rozwiązanie (lub nie) ma wpływ na dalszy proces realizacji projektu. Dzięki analogi do długu finansowego, który dla większości jest pojęciem znanym, łatwiej jest zrozumieć, że zaciągnięcie długu technicznego wiąże się nie tylko z rozwiązaniem błędu (spłatą raty bazowej), ale także z dodatkowymi konsekwencjami pojawianie się tego błędu (spłata raty odsetkowej). Najczęściej im więcej błędów liczy dług techniczny i im dłużej nie są one spłacane tym większe i mniej przewidywalne niesie on za sobą konsekwencje dodatkowe.

Przykłady problemów, które tworzą dług techniczny:

  • skróty – kawałki kodu, które ze względu na brak czasu zostały napisane mniej dokładnie,
  • błędy – wykryte problemy w oprogramowaniu, które nie zostały jeszcze naprawione,
  • niewystarczające pokrycie testami – obszary oprogramowania, które powinny być dogłębnie testowane, a nie są,
  • nadmierne testowanie manualne – testowanie wykonywane przez ludzi, które powinno zostać zautomatyzowane,
  • problemy na etapie wdrożenia i integracji – czynności wykonywane na tym etapie są zbyt czasochłonne i podatne na błędy,
  • przestarzały projekt – projekt, który stracił sens w wyniku zmian biznesowych lub technologicznych,
  • brak lub niedopasowanie doświadczenia – na przykład aplikacja została napisana w technologii, która nie jest już wspierana

 

Jakie są rodzaje długu technicznego?

Wspomniane wyżej przykładowe problemy tworzące dług techniczny nie są sobie równoważne. Części z tych problemów można uniknąć, a części nie. Niektórych problemów możemy nawet nie być świadomi, a na inne decydujemy się świadomie i z pełną premedytacją uwzględniając konsekwencje i korzyści ekonomiczne z nich płynące. Ze względu na wspomniane kryteria (nieuchronność i świadomość) wyróżnić można trzy rodzaje długu technicznego:

Natywny dług techniczny  (inne nazwy to: lekkomyślny dług techniczny, mimowolny dług techniczny, bałagan) – jest to dług, który powstaje w wyniku niedbałości, kiepskich praktyk inżynieryjnych, niedojrzałości biznesu. Można go wyeliminować poprzez szkolenia, stosowanie dobrych praktyk, podejmowanie odpowiedzialnych decyzji biznesowych.

Nieunikniony dług techniczny – jest to dług, którego nie można ani przewidzieć, ani się przed nim uchronić. Wynika on z faktu, iż rozpoczynając projekt nie jesteśmy w stanie ze 100% pewnością przewidzieć jak potoczą się jego losy, a niektóre decyzje, plany, projekty podjęte na początku pracy nad produktem będą w trakcie jego realizacji musiały zostać zmienione.

Strategiczny dług techniczny – jest to dług, który zaciągany jest świadomie, ponieważ płynące z niego korzyści ekonomiczne przewyższają konsekwencje. Organizacja może na przykład świadomie zdecydować się na zastosowanie skrótów, aby wprowadzić produkt na rynek w kluczowym dla siebie momencie. Z tego rodzaju decyzjami trzeba być bardzo ostrożnym, gdyż łatwo przy kalkulacji korzyści finansowych nie uwzględnić np. kosztu opóźnienia w wydaniu kolejnej wersji produktu wynikającego z czasu potrzebnego na spłatę długu zaciągniętego przy realizacji wersji pierwszej lub co gorsze pod wpływem dalszych nacisków dopuścić do niespłacanie tego długu.

 

Artykuł opracowany na podstawie podręcznika „SCRUM. Praktyczny przewodnik po najpopularniejszej metodyce Agile.” autorstwa Kenneth S. Rubin. Mój artykuł jest jedynie wstępem do zagadnienia długu technicznego. W rozdziale 8. wspomnianej książki znajdziemy dodatkowe informacje na temat przyczyn i konsekwencji długu, a także odpowiedź na pytanie jak z nim postępować.

2 komentarze

  1. Krótko i na temat, bardzo zgrabnie napisane. Skróty – co to znaczy, że pewne kawałki kodu są mniej dokładnie: a no jakieś zmienne globalne, dodatkowy if, lub kopiuj wklej w kodzie zamiast zgrabnej pętli z funkcją :) Pozdrawiam!

Leave a Reply

*

*