Pożyczkę pieniężną zaciągniętą w banku trzeba zwrócić wraz z odsetkami. Co to jest dług techniczny (technical debt), jak powstaje podczas tworzenia oprogramowania i jak go „się spłaca” poprzez refaktoryzację? Dlaczego może spowodować porażkę projektu informatycznego (lub biznesowego), a także jak radzić sobie z tego rodzaju ryzykiem?

źr. commadot.com

Dług techniczny 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 analogii 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 pojawiania 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”. Taką definicję długu technicznego można znaleźć na blogu annakolm.pl o zarządzaniu projektami.

Refaktoring, czyli szybki zwrot pożyczki

źr. Pixabay

Jak wiadomo, pożyczkę pieniężną każdy musi zwrócić wraz z odsetkami. W przypadku tworzenia oprogramowania, „zwrot pieniędzy” wymaga tzw. refaktoryzacji programu (lub projektu), w miarę pozyskiwania przez programistów wiedzy o tym, jak współdziała on z innymi aplikacjami, oraz z których funkcji korzystają (lub nie albo chcieliby) użytkownicy końcowi. Refaktoringiem określa się proces wprowadzania zmian w projekcie/programie, w wyniku których zasadniczo nie zmienia się funkcjonalności. Refactoring, czyli weryfikacja lub czyszczenie kodu źródłowego, służy zazwyczaj poprawie jakości i czytelności kodu, pozwala uprościć i ujednolicić niektóre fragmenty aplikacji.

Celem refaktoryzacji nie jest tworzenie nowej funkcjonalności, ale utrzymywanie odpowiedniej jakości systemu. W ramach refaktoryzacji niektóre elementy systemu poddaje się modyfikacji, w celu wpasowania ich w przyjęte standardy i wzorce, a także poszukuje się nowych standardów i wzorców, które pojawiły się w systemie w trakcie jego rozwoju. Na końcu precyzyjne się je definiuje.

Zaciągnięty dług pieniężny, jeśli nie będzie prawidłowo zarządzany i obsługiwany, może z łatwością wymknąć się spod kontroli (pojawia się tzw. spirala zadłużenia). Analogiczne reguły dotyczą zadłużenia technicznego.

Dług techniczny – zagrożenie dla projektów biznesowych

W biznesie metafora „dług techniczny” jest często używana, aby zilustrować sytuację, w której organizacja będzie zmuszona w przyszłości wydać więcej pieniędzy wskutek nie rozwiązania problemu technicznego, który pojawił się wcześniej. Może to skutkować wykolejeniem projektów biznesowych realizowanych przez przedsiębiorstwo. Jeżeli organizacja, wiedząc, że musi podjąć określone niezbędne w danym czasie działania – zignoruje to, wówczas ryzykuje, że może zapłacić za to w przyszłości czasem, pieniędzmi lub utratą swojej reputacji. Z upływem czasu rozwiązanie pierwotnego problemu będzie jeszcze trudniejsze, ponieważ nowe okoliczności mogą jeszcze bardziej go skomplikować. Ostatecznie, problem może osiągnąć punkt zwrotny, kiedy organizacja będzie zmuszona zadecydować, co zrobić z pierwotnie zaciągniętym długiem – czy nadal inwestować czas i środki, żeby rozwiązać nawarstwiający się, nadal nabrzmiewający problem, czy też pogodzić się ze stratami poniesionymi na nieudany projekt?

Jak powstaje dług techniczny i jego rodzaje?

Jako przykładowe problemy, powodujące powstawanie długu technicznego, wymieniane są: skróty (niestarannie napisane fragmenty kodu), błędy, niedostateczne testowanie oprogramowania lub nadmierne testowanie manualne zamiast zautomatyzowania testów, problemy na etapie wdrożenia i integracji, nie uwzględnianie zmian biznesowych lub technologicznych oraz tworzenie aplikacji z użyciem starych technologii. Wspomniane wyżej przykładowe problemy tworzące dług techniczny nie są sobie równoważne. Części z nich można uniknąć. Jednakże 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.

źr. Pixabay

Wyróżnić można trzy rodzaje długu technicznego: natywny (mimowolnie, lekkomyślnie zaciągany dług,), nieunikniony (trudny do przewidzenia, nieuchronny) oraz strategiczny (zaciągany świadomie, by osiągnąć określone korzyści ekonomiczne).

Określeniem dług techniczny po raz pierwszy posłużył się twórca oprogramowania Ward Cunningham, znany z tworzenia pierwszego serwisu internetowego typu wiki. Według niego, udostępnianie nowego oprogramowania tak szybko, jak to tylko możliwe, nie musi być złe. Pożyczone środki pieniężne można wydać od razu. Podobnie oprogramowanie, które zostanie szybko dostarczone w postaci wydajnej aplikacji może przynieść natychmiastową korzyść firmie, a jednocześnie programiści zyskują cenne informacje zwrotne na temat tego, jak ich kod działa w rzeczywistym świecie.


Leksykon 2017

 

 

Napisane przez Stefan Kaczmarek