Czym jest dług technologiczny? To, w skrócie mówiąc, wszystkie projekty tworzone przez zespoły IT, które zawierają kod pisany byle jak, na szybko i byleby zdążyć przed terminem. Te projekty działają, ale nie zostały odpowiednio zoptymalizowane, nie skorzystano w nich z najlepszych możliwych (i dostępnych) rozwiązań, co oznacza, że działają „na kredyt” i przyjdzie moment, gdy będzie trzeba cały projekt przepisywać od nowa, z lepszymi rozwiązaniami. Jak można walczyć z długiem technologicznym i jakie są jego przyczyny – dowiesz się, czytając dzisiejszy artykuł.
W artykule wymieniono:
- Dług technologiczny. Przyczyny
- Jak można uchronić się przed długiem technologicznym?
- Co zrobić, jak masz dług technologiczny?
Dług technologiczny. Przyczyny
Ward Cunningham, programista z USA trafnie porównał dług technologiczny do długu finansowego, tj. zaciągania kredytu, który prędzej, czy później będzie trzeba spłacić, co przyczyni się do zwiększenia kosztów projektowych w przyszłości. Jakie są najczęściej wymieniane przyczyny powstawania długu technologicznego?
1. Presja czasu
To niestety najczęściej wymieniany powód, dla którego kod wykorzystywany w projekcie technologicznym jest niedopracowany. Presja terminów, na które naciska klient, powoduje, że ciężko jest wdrożyć te optymalne rozwiązania i wybiera się tanie i szybkie, byleby działały. W ten sposób dług technologiczny się powiększa, niskojakościowy kod obniża jakość i efektywność projektu, ale zostanie oddany na czas, więc wszystko gra, prawda?
2. Brak analiz jakościowych projektu
Często w projektach brakuje poprzedzenia ich głęboką analizą jakościową, która uwzględniałaby wszystkie aktualizacje, jakie będą konieczne do zachowania 100% wydajności projektu w przyszłości. Takie projekty często zbyt mocno koncentrują się na nowych funkcjonalnościach, a nie na elastycznym dostosowywaniu rozwiązań do konkretnych problemów, które mogą się pojawić w czasie użytkowania produktu.
3. Nastawienie na nowe sztywne rozwiązania
Dostarczanie nowych funkcjonalności do produktu/projektu powinno być zaplanowane jeszcze przed jego rozpoczęciem, z uwzględnieniem zmian, które mogą się pojawić w trakcie jego codziennego użytkowania. Skupianie się tylko i wyłącznie na opracowywaniu coraz to nowych aktualizacji i usprawnień, bez optymalizacji starszych rozwiązań spowoduje, że produkt nie będzie działał prawidłowo po pewnym czasie lub będzie trzeba tworzyć kod źródłowy projektu od początku.
4. Opieranie się na najtańszych i najłatwiejszych rozwiązaniach
Tanio, dobrze i szybko? Niestety, tylko w pragnieniach. Rzeczywistość wygląda tak, że możesz mieć tanio, szybko i niedbale, albo długo, ale solidnie. Niestety, klienci zdają się tego nie rozumieć, wywierają presję na zespołach projektowych, efektem czego deweloperzy wybierają tanie i łatwo dostępne rozwiązania, żeby wyrobić się w terminie. To oczywiście w przyszłości będzie miało swoje konsekwencje w postaci długu technologicznego, ale póki wszystko działa zgodnie z założeniami, nikt o tym nie myśli.
5. Brak odpowiednich kompetencji w zespole projektowym
Niestety, brak specjalistów na rynku IT powoduje, że czasami nie ma wykwalifikowanych programistów w zespołach projektowych, a to wpływa na jakość projektowanego kodu. Tam, gdzie nie ma odpowiedniego zaplecza programistycznego, wybiera się uniwersalne rozwiązania, które niestety nie sprawdzą się wszędzie.
Jak można uchronić się przed długiem technologicznym?
Istnieje kilka sposobów, które mogą zniwelować ryzyko powstania długu technologicznego. Kluczowe jest odpowiednie zaplanowanie poszczególnych etapów projektowych, by móc w późniejszych działaniach skupić się jedynie na ich realizacji, zamiast na łataniu nieprzewidzianych błędów. Co jeszcze możesz zrobić, by zmniejszyć ryzyko pojawienia się długu technologicznego w Twojej firmie?
!. Jakość nad terminowość
Mimo że klient naciska, presja czasu jest ogromna, to warto w każdej rozmowie z nim przekonywać go, że jakość świadczonych usług wiąże się z dłuższym oczekiwaniem na realizację projektu, czy wystąpieniem opóźnień we wdrożeniu go. Jest to trudne zadanie, bo klient zazwyczaj chce mieć szybko i terminowo oddany projekt, który będzie działać zgodnie z ustaleniami. Tam, gdzie się da, warto jednak szukać szybkich, ale elastycznych rozwiązań, aby uniknąć przykrych niespodzianek, związanych z nieprawidłowym działaniem produktu w przyszłości.
2. Regularne testowanie
W każdym zespole projektowym powinni być zatrudnieni testerzy oprogramowania, którzy będą sprawdzali efektywność i niezawodność projektu na każdym etapie. To właśnie dzięki ich pracy, programiści są w stanie poprawić projekt jeszcze zanim trafi on w ręce klienta. Code Review powinno być podstawowym procesem, który regularnie odbywa się w ramach codziennej pracy zespołów pracujących nad projektem.
3. Odpowiednie planowanie każdego etapu projektu
Odpowiednie rozplanowanie każdego etapu, podzielenie go na mniejsze części, podział obowiązków, ustalenie terminów to coś, co jest totalną podstawą pracy z projektem i powinno być wykonane jeszcze zanim przystąpi się do jego realizacji. Takie szczegółowe planowanie, włącznie z analizą ryzyka pozwoli na znacznie efektywniejszą pracę i przyspieszy procesy projektowe.
Co zrobić, jak masz dług technologiczny?
Co możesz zrobić, jeśli już odkryjesz, że dług technologiczny dotyczy i Ciebie? W pierwszej kolejności dobrze jest przeanalizować sytuację, wychwycić etap, w którym pojawiło się najwięcej błędów i o ile to możliwe, warto je skorygować. Dług technologiczny niekoniecznie oznacza ponowne tworzenie projektu od samego początku, najczęściej problem dotyczy konkretnego etapu prac projektowych. Możesz spróbować podzielić aplikację na mniejsze części, aby osobno poddać je refaktoryzacji.
Nietechnicznym rozwiązaniem jest dbanie o jakość usług zespołu projektowego, inwestycja w szkolenia pracowników oraz zwiększanie świadomości biznesowej wśród klientów. Dług technologiczny nie powstaje sam z siebie, a jego najczęstszą przyczyną jest presja klienta, który chce otrzymać gotowy projekt zgodnie z umową. Czasem, chciałoby się powiedzieć, że cierpliwość popłaca, ale nie każdy klient będzie skory do wydłużenia terminu oddania projektu.