Pojęciownik: dług technologiczny

Matka chodzi po swoim niewielkim mieszkaniu i ogarnia temat długu. Nie chodzi tym razem o debety na koncie, hipoteki i inne instrumenty finansowego wyzysku ludu pracującego, chodzi o nieposprzątane mieszkanie i nieuprzątnięty kod. Wbrew pozorom to prawie to samo.

Co to jest dług technologiczny?

Kiedy dzieciaki zasypią swój pokój zabawkami, możesz je posprzątać na dwa różne sposoby. Pierwszy to podniesienie każdej rzeczy i odłożenie na właściwe jej miejsce, drugi to podniesienie każdej rzeczy i odłożenie jej gdziekolwiek – byle nie leżały na wierzchu. Potem krzyczysz radosne: „u mnie działa!” i znikasz.

Jeśli zabawki były odłożone na właściwe im miejsce, wszystko jest w porządku. Jeśli zabawki zostały odłożone gdziekolwiek, np. do wieeeelkiego pudła na zabawki, to dalej masz bałagan, choć nie wygląda. Bałagan jest w tym pudle. Jeśli dzieci chcą się pobawić, żeby np. mogły skompletować wszystkie pionki do chińczyka, muszą całe to pudło najpierw wywalić na środek, potem znaleźć pionki i dopiero wtedy mogą grać. Myślisz, że posprzątają to pudło, czy zaczną grać od razu? No ja też uważam, że raczej nie sprzątną, a to znaczy, że wieczorem znowu masz do pozbierania wszystkie zabawki, które zbierałeś wczoraj w tym grę, a nie tylko grę. To jest własnie dług technologiczny.

Kiedy ktoś pisze kod na odpierdziel, bo nie chce mu się stosować dobrych praktyk, kiedy ktoś pisze kod, który odbiega od standardów kodowania, bo nie zna standardów, wtedy zaciągany jest dług technologiczny. Żeby do oprogramowania z długiem dodać nową funkcjonalność, musisz najpierw wywalić całe pudło zabawek na środek, przeorać je do dna, wybrać co potrzeba, a potem posprzątać. A co, jeśli to potrzebne jest rozrzucone po kilku wielkich pudłach z zabawkami? Dług bardzo wydłuża czas kodowania, sprawia, że praca przy kodzie jest znacznie mniej przyjemna, żeby nie powiedzieć, że męcząca i frustrująca. Dług, w końcu, zachęca do zrobienia jeszcze większego bałaganu, demotywuje i winduje koszt utrzymania kodu w tempie wykładniczym, co przekłada się na bardzo realne i często bardzo duże pieniądze.

Jak z tego wyjść?

Wyjście z długu nie jest łatwe. Wymaga konsekwencji, czasu i kasiory.

Nie bałagań!

Pierwsza i najprostsza zasada brzmi: nie dokładaj bałaganu!

Jeśli masz poprawić jakąś funkcjonalność i widzisz bajzel w kodzie, który za tę funkcjonalność odpowiada. poświęć trochę więcej czasu i napisz swoją część dobrze. Odpowiadasz za to, co piszesz i co zostawiasz „potomnym”, podpisujesz zmiany, których dokonujesz, swoim nazwiskiem – szanuj nazwisko.

Popraw poprzednika

…z miłością. Niech pamięta wół, jak cielęciem był!

No dobra, dla jakości kodu nie ma znaczenia jak zwyzywasz tego, kto pisał przed Tobą, ważne, żeby plik, który otwierasz, został zamknięty dopiero jak poprawisz miejsca, w których jakość kodu jest niezadowalająca. Zawsze to będzie krok do przodu. Wróćmy do obrazu ze sprzątaniem zabawek: jak wyjmiesz z tego wielkiego pudła zabawek wszystkie maskotki na półkę 1, klocki wsadzisz do szuflady na klocki, a gry na półkę 2, to te rzeczy już kolejny raz nie będą przeszkadzać przy szukaniu konkretnej zabawki. A i dzieci – wiem z doświadczenia – łatwiej potem sprzątną zabawkę po użyciu.

Reasumując

Dobry programista to człowiek, który szanuje pracę swoją i innych, nie zostawia tykających bomb kolegom i koleżankom, zachowuje standardy. Jeśli programujesz, masz robić to tak, żeby każde miejsce kodu, którego dotkniesz, było lepsze po spotkaniu z Tobą. A jeśli dodatkowo jesteś moim mężem i to czytasz, to tak samo rozbrajaj dług technologiczy bałaganiu w naszym mieszkaniu. To znaczy, jak przejdziesz gdzieś, a jest tam bałagan, to po drodze coś ogarnij. Np. jak rozrzucę w pięknej chwili wszystkie swoje ubrania po chałupie, to je pozbieraj i zanieś do prania zanim dzieci znajdą. One piękna chwili nie zrozumieją, pomyślą, że tak trzeba i dorzucą swoje ciuchy powiększając zaciągnięte zobowiązania względem estetyki naszego mieszkania.

One thought on “Pojęciownik: dług technologiczny

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *