Jak duży jest Twój dług technologiczny?
Od dłuższego czasu pracuję nad książką n.t. zmiany osobistej dla programistów. Jednocześnie jednak, im bardziej się zagłębiam w temat i im dłużej pracuję z developerami i testerami, tym więcej widzę fajnych koncepcji z programowania, które należałoby potraktować w drugą stronę – i zaadaptować je do rozwoju osobistego.
Jedną z takich koncepcji jest tzw. dług technologiczny.
Dług technologiczny to sytuacja, w której programiści wybierają w swojej pracy rozwiązania tu i teraz łatwe, ale… ma to swoją cenę. Rozwiązania te oznaczają bowiem, że w dalszej pracy wprowadzanie zmian może być coraz trudniejsze, a cały kod stanie się niepotrzebnie skomplikowany. Coraz trudniej będzie zapewnić jego bieżące działanie oraz spróbować jakoś go zmienić. Do tego powrót i korekta tego co już zrobiliśmy będzie też coraz trudniejsza i bardziej czasochłonna. Trzeba bowiem będzie nie tylko skorygować pierwotny dług, ale też wszystkie te „nadbudówki”, które powstały po jego zastosowaniu. Ta rosnąca cena spłaty długu sprawia, że coraz trudniej się do tego zabrać – a jednocześnie codzienna praca robi się coraz trudniejsza i bardziej upierdliwa. Tak źle i tak niedobrze.
W wersji ekstremalnej zespół utrzymujący dany system ma na tyle dość, że rezygnuje, a następcy nie są w stanie się połapać w tym gordyjskim węźle kodu, więc niejako muszą zacząć pracę od napisania danego systemu od nowa…
Co sprzyja presji czasowej…
Która sprzyja decydowaniu się na łatwe, choć długoterminowo niewydajne rozwiązania, bo przecież czas goni…
Co oczywiście generuje nowy dług technologiczny i związane z nim problemy.
I tak w koło Zegrzysławie.
Brzmi znajomo? Czy w jakichś obszarach swojego życia nie popełniasz przypadkiem podobnych błędów?
Długiem technologicznym będzie np. nie poruszenie istotnej, ale nieprzyjemnej kwestii w związku. Z każdą kolejną taką sytuacją może być bowiem coraz trudniej ją poruszyć – no bo skoro już tak długo się żyje i nic z tym nie robi, to może lepiej nic dalej nie mieszać? Tylko oczywiście skoro raz taka rzecz frustrowała, to z każdym kolejnym jej powtórzeniem frustracja będzie prawdopodobnie narastać. A jednocześnie poruszenie jej może być faktycznym szokiem dla drugiej osoby – „Jak to, przeszkadza Ci to? Czemu tak długo nie mówiłeś/aś?” Np. Jeśli regularnie dostajesz prezenty, które zupełnie Ci nie pasują, ale druga osoba jest przekonana, że są dla Ciebie fajne, to z każdym kolejnym prezentem wskazanie, że nie do końca Ci to pasuje może być coraz bardziej problematyczne
Długiem technologicznym będzie odkładanie decyzji np. o zmianie pracy, rozstaniu czy odwrotnie, oświadczynach. Z każdym kolejnym tygodniem czy miesiącem wyjście z obecnej sytuacji może być coraz trudniejsze, ale jednocześnie może ona być coraz trudniejsza w podtrzymaniu.
Długiem technologicznym będzie wiele naszych decyzji odnośnie edukacji czy zadbania o siebie. „Dzisiaj nie mam czasu na trening, ale w przyszłym tygodniu…” może prowadzić do nieskończonego wręcz odkładania wyprawy na siłownię… co sprawi, że wysiłek niezbędny do faktycznego zadbania o siebie będzie coraz większy i coraz bardziej zniechęcający.
Na dług technologiczny – tak w programowaniu jak i w życiu – łatwo się zdecydować. Nasz mózg jest nastawiony bardzo na „tu-i-teraz”. 50 tysięcy lat temu na sawannie na sawannie rzadko kiedy planował długoterminowo. To wciąż w nas siedzi. Przyszłość planujemy nierealistycznie i ułomnie. Jesteśmy zwykle hurraoptymistyczni co do tego ile będziemy mieli czasu by naprawić błędy i wyprostować skróty, które teraz podejmujemy.
Tyle, że tak nie będzie. Nie będzie więcej czasu. Może go być co najwyżej mniej. Dlatego musimy na ten dług reagować tu, teraz, dzisiaj.
Oczywiście, przyczyn długu może być więcej, niż tylko uwarunkowania naszego mózgu. Dlatego warto się przyjrzeć klasycznym przyczynom długu technologicznego w programowaniu i pomyśleć jak odnoszą się do naszego życia. Typowe problemy z długiem technologicznym biorą się w programowaniu z takich kwestii jak:
- Szeroko rozumiana presja by skończyć coś „na już”.
- Brak odpowiedniego zdefiniowania celów i ograniczeń zanim coś zaczniemy.
- Brak świadomości samej koncepcji długu technologicznego i tego, co z niego wynika.
- Brak otwartej komunikacji, współpracy i wymiany wiedzy.
- Równoległa, niezintegrowana praca nad daną rzeczą na kilka różnych sposobów.
- Ociąganie się z wdrożeniem korekty długu.
- Ignorowanie uprzednio założonych standardów i dobrych praktyk.
- Brak wiedzy i zrozumienia.
- Rozlana odpowiedzialność.
- Zmiany w ostatniej chwili.
- Brak weryfikacji postępów i efektów w toku realizacji danego działania.
Jak możesz te kwestie odnieść do codziennego życia? Co tutaj należałoby zmienić?
Dług technologiczny to fajna i prosta koncepcja, o którą warto wzbogacić myślenie rozwojowe. Warto jednak skończyć jedną ważną kwestią – dług technologiczny nie zawsze jest zły. Czasem jest dobrą decyzją, także długoterminowo – pod warunkiem, że relatywnie szybko się nim zajmiemy i go spłacimy.
To również warto przyjąć do swojego życia. Po prostu raz na jakiś czas analizować gdzie ten dług się u nas pojawia i rezerwować konkretny czas i energię by o niego zadbać i go spłacić.
Masz pytanie z zakresu kompetencji miękkich/soft skills? Kanał Self Overflow dostarcza odpowiedzi z tego zakresu, dostosowanych w szczególności do potrzeb osób z sektora IT. Co tydzień nowe filmy z odpowiedziami na pytania od naszych widzów!
Przykładowe pytania: