Koniec i basta! Czas na rozmowy się skończył, czas… działać!

Pandemia przykucnęła i zaczyna wolno pełzać, maseczki zaczęły nam lekko opadać, a na horyzoncie z całą mocą ujawniły się problemy prawdopodobnie jeszcze bardziej istotne…

Swoimi działaniami ludzkość zaciągała dług u przyrody całymi wiekami, przy czym co istotne, ów dług był zaciągany… bezrefleksyjnie. Przyszedł jednak czas jego spłaty, a nikt nie kwapił się do rozmów z wierzycielem, naturą. Były prośby, potem sygnały ostrzegawcze, a następnie cóż… pojawili się komornicy. Ostatnie dramatyczne pożary w Australii, inwazja szarańczy w Kenii, oraz, żeby nie szukać daleko, ogromna susza i niedobory opadów sięgające kilku lat w Polsce pokazują dobitnie, że ludzkość w swoich brudnych butach wniknęła nazbyt głęboko w świat przyrody. Stąd bardzo trafne wydaje się porównanie kataklizmów do komornika, którego wysyła nam matka natura, bo inaczej z nami rozmawiać już nie można. Jesteśmy głusi jak pień i nic do nas nie dociera: globalnego ocieplenia przecież nie ma, a stopień w tą czy w tamtą stronę, jakie to ma znaczenie? Ważne, żeby wydobywać węgiel i ropę naftową przez kolejnych 200 lat! Tyle tylko, że nie wiadomo, czy będzie komu i dla kogo wydobywać?

Bardzo często podobnie bywa z długiem technologicznym, jest zaciągany całymi latami … bezwiednie (więcej o pojęciu długu technologicznego możesz przeczytać tutaj). Po drodze mamy sygnały ostrzegawcze, ale je ignorujemy, po czym przychodzi czas spłaty długu … hurtowo. I mamy problem. Awaria goni awarię, a naszego kodu spaghetti żaden szanujący się programista nie chce dotykać. Co zatem robić? Przede wszystkim zatrzymać się i zmierzyć ów dług. Są narzędzia umożliwiające pomiar wielkości długu technologicznego oraz zarządzanie nim. Jednym z nich jest SonarQube. Narzędzie to wspiera analizę kodu zgodnie ze zdefiniowanymi wcześniej zasadami, potrafi obsłużyć ponad 20 języków oprogramowania. Na analizie technicznej nie będę się skupiał, chciałbym napisać, jakie to ma znaczenie od strony biznesowej:

  • jesteśmy w stanie zmierzyć swój dług technologicznych (w dniach, miesiącach, a może nawet w latach), jest on dla nas widoczny, co samo w sobie jest już wartością, a jeszcze możliwe jest utrzymywanie go w ryzach oraz aktywne zarządzanie nim,
  • możemy rozpocząć zarządzanie jakością nowego kodu, co jest o tyle istotne, że nasz dług technologiczny nie ulega dalszemu zwiększaniu (ustawiamy odpowiednie reguły w SonarQube),
  • jeżeli zarządzanie jakością kodu się zwiększy (np. poprzez kodowanie zgodne ze sztuką) mamy mniej bugów, co przekłada się wprost na większe zadowolenie klienta,
  • możemy tworzyć potoki CI/CD w wykorzystaniem GitLab (wyjaśnienie pojęć CI/CD znajdziesz tutaj),
  • zaoszczędzony czas powstały z wykorzystania testów automatycznych możemy wykorzystać na większą ilość testów manualnych (np. krytycznych funkcjonalności),
  • tworząc testy jednostkowe tworzymy swoistą dokumentację dla kodu, który ktoś kiedyś napisał, a nikt już nie wie jak go naprawić (o testach jednostkowych przeczytasz tutaj),
  • możemy zmniejszyć koszty testów regresyjnych,
  • i na koniec, chociaż z całą pewnością nie jest to najmniej ważne,  przez zastosowanie powyższego narzędzia mamy więcej czasu na zbieranie informacji zwrotnej od klienta – brzmi znajomo :)?

Na koniec kilka zdań, żeby trochę odczarować złe skojarzenie ze słowem dług. Jeżeli dług zaciągamy świadomie i mamy go pod kontrolą, to w długu nie ma nic złego. Problemy się zaczynają gdy nad nim nie panujemy lub nie mamy świadomości, że istnieje. Czasami zatem jest uzasadnione, żeby zaciągnąć dług, także technologiczny. W jakiej sytuacji? Potrafię sobie wyobrazić okazję biznesową, w której firma może zarobić dużo w krótkim czasie. Wtedy idziemy na pewne technologiczne kompromisy, potocznie mówimy, że coś jest wtedy zrobione „na sznurki”. Ważne jest, żeby taki dług zaciągnąć świadomie, mieć go cały czas pod kontrolą. Polecam także wpis Henrika Kniberga, w którym opisuje on zagadnienie „dobrego” i „złego” długu technologicznego tutaj.

Liczę, że chociaż trochę przybliżyłem wam zagadnienie długu technologicznego. Wierzę, że będziecie wspierać swoje zespoły w zmaganiach nad utrzymywaniem ich długów technologicznych w ryzach, albo przynajmniej namówicie ich, żeby pochylili się nad tym zagadnieniem :). A w temacie długu zaciągniętego u matki natury: apeluję – nie zapożyczajmy się u niej więcej. Zacznijmy spłacać to, co już “pożyczyliśmy”. Każdy może zacząć od siebie, powinniśmy także wystarczająco mocno naciskać na decydentów, żeby ten proces się rozpoczął w skali globalnej. Powodzenia!  :).

Dodaj komentarz