This blog post is also available as a podcast

Dług technologiczny może być cichym zabójcą i może prowadzić do poważnych konsekwencji dla firm eCommerce. Strata budżetu i spowolnienie tempa mogą być oznakami nierozwiązanych problemów technicznych. Jeśli problemy te nasilają się z czasem, istnieje realne ryzyko wpadnięcia w dług technologiczny. Wprowadzanie zmian w początkowej fazie projektu jest niedrogie, ale im później firma zdaje sobie sprawę, że ma problem, tym większy jest koszt. Rozpoznanie i zajęcie się długiem technologicznym ma kluczowe znaczenie dla długoterminowego sukcesu firmy eCommerce.

W tym artykule wyjaśniono definicję długu technologicznego, jak go uniknąć (czy firma w ogóle może go uniknąć) oraz dlaczego wsparcie oprogramowania i zabezpieczenie się na przyszłość mogą pomóc w tworzeniu rentownych firm e-commerce.

Czym jest dług technologiczny?

Koncepcja długu oprogramowania i technologii pojawiła się już w latach 80. XX wieku. Jednak Ward Cunningham – człowiek stojący za Manifestem Agile Software Development, wprowadził tę koncepcję w 1992 r. jako komponent technologii i oprogramowania. Opisał on koncepcję długu technologicznego następująco:

„Wysyłanie kodu po raz pierwszy jest jak zadłużanie się. Niewielki dług przyspiesza rozwój, o ile jest szybko spłacony poprzez przepisanie. Obiekty sprawiają, że koszt tej transakcji jest znośny. Niebezpieczeństwo pojawia się, gdy dług nie jest spłacony. Każda minuta spędzona na nie do końca poprawnym kodzie liczy się jako odsetki od tego długu. Całe organizacje inżynierskie mogą zostać zatrzymane pod ciężarem długu nieskonsolidowanej implementacji, zorientowanej obiektowo lub innej”.

Gdy dostawca oprogramowania musi dostarczyć produkt na czas, powinien pójść na kompromis między jakością kodu a funkcjonalnością. Strategia rozwoju produktu wymaga ciągłego wysiłku, ponieważ „stare” i „nowe” koncepcje mogą być niekompatybilne.

  • Dług techniczny pojawia się ZAWSZE – powstaje w ramach procesu tworzenia oprogramowania
  • Gdy oprogramowanie staje się bardziej skomplikowane, często okazuje się, że jedna zmiana może mieć wpływ na drugą
  • Dług technologiczny mierzony jest czasem (i jest to czas potrzebny na skorygowanie błędów)

Wpływ długu technologicznego na produktywność

Dług technologiczny w systemach informatycznych można porównać do starego samochodu. Od czasu do czasu coś się psuje, a jedyną zmianą, jaką możesz wprowadzić, jest wydanie pieniędzy na naprawę (więc nie możesz „zaktualizować” swojego samochodu [systemu]). Czasami po prostu najlepiej jest odejść od starego pojazdu (systemu) na rzecz nowego, leasingowanego samochodu. Ostatecznie koszt potrzebny do naprawy starego samochodu może być kosztem raty nowego samochodu.

W dłuższej perspektywie dług techniczny może prowadzić do:

  • Zbyt wysokie koszty wprowadzania zmian w kodzie
  • Duża liczba błędów w oprogramowaniu
  • Spadek wydajności, niezawodności

Czym jest dług technologiczny w kontekście handlu elektronicznego?

Komplikacje pojawiające się w przestarzałych systemach sprawiają, że wdrażanie nowych rozwiązań jest droższe. Próba „reanimacji” starych rozwiązań może spowodować, że pojawi się wiele błędów i wąskich gardeł. Spowoduje to sytuację, w której projekty przekroczą budżet i nie zostaną dostarczone na czas. Czasami wybór innego rozwiązania (np. platformy eCommerce) może być tańszy.

McKinsey przeprowadził badania wśród dyrektorów działów IT w firmach świadczących usługi finansowe i technologiczne. Roczny przychód tych firm był większy lub równy 1 miliardowi dolarów.

Badanie pokazuje, że 10-20% budżetu technologicznego przeznaczonego na nowe produkty jest wykorzystywane do rozwiązywania problemów z długiem technologicznym. Co jeszcze bardziej niepokojące, dyrektorzy ds. informatyki oszacowali, że dług technologiczny wynosi od 20 do 40% wartości wszystkich aktywów technologicznych przed amortyzacją. Przekłada się to na setki milionów dolarów niespłaconego długu dla większych organizacji.

60% ankietowanych uważa, że ​​zadłużenie techniczne ich organizacji znacznie wzrosło w ciągu ostatnich trzech lat.

Dług technologiczny jest częścią rozwoju oprogramowania, ale może występować na różnych poziomach — jeśli nie koliduje z pracą, przyjmuje się, że nie istnieje.

Dlaczego handel elektroniczny jest podatny na dług technologiczny?

Projekty eCommerce wykorzystują wiele pakietów open-source i innych (które mogą być w różnych standardach i jakości – np. różne biblioteki i pakiety, które nie są aktualizowane). Warto sprawdzić, czy każdy produkt/dostawca jest bezpieczny, korzystając z danych CVE.    

Przykłady implementacji związanych z długiem technologicznym:

  • Promocja świąteczna Pewien sklep eCommerce pracował nad promocją świąteczną, więc poproszono programistów oprogramowania o zaimplementowanie kilku nowych funkcjonalności. Ponieważ system miał wiele zależności, zajęło to trochę czasu, a w rezultacie musieli pracować pod presją czasu. Jaki był wynik? Nie było żadnych testów; jakość kodu była słaba. Co gorsza – gdy nadeszły święta, nagle cały sklep przestał działać.
  • Ograniczenia w eCommerce B2B Organizacje chciały dodawać ceny w zależności od konkretnej grupy klientów. Ich obecna platforma tego nie obsługiwała, więc przeszły na inny system eCommerce. Czas wdrożenia w ich obecnym systemie szacowano na pół roku rozwoju, podczas gdy w drugim systemie może to zająć 2-3 tygodnie. Drugi system nie miał długu technologicznego, więc proces rozwoju mógł przebiegać bez obaw o to, co może się wydarzyć po drodze.
  • Migracje systemów eCommerce Za każdym razem, gdy firmy decydują się na migrację, istnieje ku temu powód. Może to być moment, w którym utrzymanie i rozwijanie systemu przestaje być opłacalne. Firma jest w stanie wprowadzać zmiany (i chce coś zmienić), ale jest blokowana przez ograniczenia technologiczne/systemowe. Firma dochodzi do punktu, w którym zadaje sobie pytanie – „Czy warto nadal inwestować w rozwiązanie obciążone długiem technicznym, czy lepiej je porzucić i zbudować od podstaw?”. Odnosząc się do podanego powyżej przykładu, utrzymanie i naprawa starego samochodu może być zgodna z kosztem leasingu nowego samochodu, a naprawiany pojazd nie „zarabia”. Taka sama sytuacja ma miejsce w przypadku systemu eCommerce.

Firmom, które nie wdrożyły odpowiednich analiz zachowań klientów, trudno jest określić, ile pieniędzy faktycznie tracą.

Są jednak sytuacje, w których dług technologiczny nie jest przeszkodą w prowadzeniu biznesu. Co więcej – firma nie musi nawet go redukować. Przykładowo WooCommerce (który jest obciążony długiem technologicznym od samego początku) jest doskonałym rozwiązaniem dla kogoś, kto nie musi grzebać w źródłach i naprawiać świata, a chce tylko gotowego rozwiązania, które po prostu zadziała i obsłuży niezbędne zdarzenia.

Skąd się to bierze?

Istnieje wiele przyczyn jego powstawania; poniżej przedstawiono niektóre z najczęstszych:

  • Nieprecyzyjne wymagania dotyczące platformy eCommerce i jej funkcjonalności pojawiające się w trakcie wdrażania
  • Presja czasu – dodawanie funkcji pomimo błędów, które zostaną „naprawione później”, co powoduje gromadzenie długu technicznego
  • Nieelastyczna architektura oprogramowania – uniemożliwiająca szybkie dostosowanie platformy do integracji zewnętrznych
  • Brak standardów, testów ręcznych i dobrych praktyk w początkowych fazach wdrażania platformy
  • Zmiany w wymaganiach podczas wdrażania (np. w celu obniżenia całkowitych kosztów)
  • Brak zdefiniowania ogólnej strategii biznesowej i zidentyfikowania możliwości potrzebnych na poziomie przedsiębiorstwa
  • Słabe dopasowanie rozwiązań do potrzeb biznesowych – niedopasowanie pod względem finansowania, strategii i alokacji zasobów
  • Korzystanie ze przestarzałych platform i rozwiązań
  • Brak aktualizacji środowisk hostingowych, aplikacji, baz danych i innych
  • Deciding on monolithic structures despite microservices
  • Brak skalowalności systemu eCommerce
  • Problem with access to specialists who can find solutions tailored to a given business strategy
  • Brak odpowiedniej wiedzy i kompetencji
  • Niewłaściwy dobór zespołu, który może prowadzić do niedoborów/błędów w komunikacji

Aby to sprawdzić, czy masz problemy z długiem technologicznym w swoim systemie, powinieneś zastanowić się nad poniższymi pytaniami:

  • Czy proces rozwoju ulega spowolnieniu?
  • Czy zdarzają się przestoje?
  • Czy powracają lub pojawiają się te same błędy, które było bardzo trudno odtworzyć lub naprawić?
  • Czy czas wdrażania nowych funkcji wydłuża się przy jednoczesnym spadku wydajności?
  • Czy Twoi programiści uciekają z firmy lub nie chcą pracować nad konkretnym projektem?
  • Czy wywierałeś presję na swój zespół programistów, aby wdrażał nowe funkcje szybciej, niż przewidywali?

Większość twierdzących odpowiedzi na powyższe pytania może być sygnałem ostrzegawczym.

Konsekwencje posiadania długu technicznego mogą prowadzić do:

  • Wyższe koszty aktualizacji lub nawet przepisywania systemów w przypadku znacznego wzrostu działalności
  • Wyższe koszty aktualizacji mających na celu poprawę wydajności systemu
  • Wyższe koszty aktualizacji zabezpieczeń w przypadku zagrożenia
  • Spadek wartości firmy (z nieszczelnymi i niesprawnymi systemami)
  • Zmniejszone zadowolenie klientów

Rodzaje długu technologicznego

Dług technologiczny może powstać z różnych powodów podczas tworzenia oprogramowania, więc może mieć wiele twarzy. Poniżej wyróżniliśmy cztery możliwe typy długu technicznego.

Planowany dług technologiczny

Ten rodzaj długu technologicznego powstaje, gdy firma jest świadoma, że ​​generuje dług i zna pełne konsekwencje (ryzyka lub wydatki). Dlatego też kluczowe jest zdefiniowanie, w jaki sposób organizacja zamierza znaleźć kompromis między długiem technicznym a rozwojem biznesu.

Entropia oprogramowania

Entropia oprogramowania, zwana również bit-rot, występuje z czasem, gdy jakość oprogramowania stopniowo spada, powodując nieużyteczność, błędy lub wymagane aktualizacje. Z czasem powoli pogarsza wydajność oprogramowania lub wydłuża jego czas reakcji, co ostatecznie prowadzi do wzrostu liczby błędów oprogramowania, nieużyteczności i konieczności aktualizacji.

Entropia pojawia się, gdy programiści wprowadzają w projekcie stopniowe zmiany, które zwiększają złożoność, w razie potrzeby naruszają wymagania niefunkcjonalne (NFR) lub stopniowo zmieniają strukturę kodu.

Nieunikniony dług technologiczny

Nieunikniony dług powstają z powodu zmian w biznesie i postępu technologicznego, który oferuje lepsze rozwiązania na przestrzeni lat. Zwykle ma to miejsce, gdy nieplanowane modyfikacje są wymagane podczas planowanego projektu, co skutkuje bezpośrednim kosztem. Dług techniczny powstaje, gdy wymagania biznesowe wpływają na przestarzały kod.

Niezamierzone zadłużenie techniczne

Jest ona wynikiem konsekwencji relacji interpersonalnych, takich jak słaba komunikacja wewnątrz organizacji czy nieporozumienia między programistami/zespołem operacyjnym/menedżerami.

Kiedy należy zwrócić większą uwagę?

  • W pierwszym momencie, gdy tracisz kontrolę nad systemem
  • Kiedy proste funkcjonalności zaczynają zajmować zbyt dużo czasu we wdrażaniu
  • Kiedy wprowadzenie jednej funkcjonalności psuje inną
  • Kiedy stanie się to codzienne/normalne
  • Kiedy rozwój Twojej firmy jest ograniczony przez technologię
  • Kiedy doświadczysz wycieku danych

Kiedy „wystarczająco dobre” dąży do perfekcji

Programiści są zawsze zmuszeni do zrównoważenia swojej etyki pracy i faktu, że potrzebują najwyższej jakości kodu, aby wyprodukować udaną aplikację. Czysty kod pomaga uczynić kolejną iterację i ulepszenie łatwiejszymi do wdrożenia. Jednak terminy i ograniczone zasoby często powodują ograniczenia w rozwoju.

Godziny pracy nad rozwojem zmarnowane na przeróbki lub naprawianie usterek

Jak zapobiegać powstawaniu długu technicznego i jak sobie z nim radzić w procesie rozwoju?

Po pierwsze, musisz być świadomy takiego problemu od samego początku. Poprzez właściwe zarządzanie długiem technicznym firmy eCommerce mogą zapewnić bardziej stabilny, skalowalny i zrównoważony ekosystem oprogramowania. Oto najlepsze praktyki, które sprzedawcy eCommerce mogą stosować, aby zapobiegać zadłużeniu technicznemu podczas opracowywania i utrzymywania swoich witryn eCommerce.

  • Zadbaj o dobrą jakość kodu i odpowiednią architekturę oraz korzystaj ze sprawdzonych rozwiązań (niekoniecznie najszybszych, ale elastycznych, które pozwolą Ci skalować aplikację w przyszłości).
  • Firmy, które szukają łatwiejszego zarządzania wdrażaniem platformy, powinny szukać rozwiązań takich jak headless. Jest to struktura platformy oprogramowania, która oddziela front-end od back-endu. Daje ona swobodę integracji, łatwą rozbudowę systemu eCommerce o nowe funkcjonalności, łatwe otwieranie nowych kanałów w oparciu o interfejs API i wiele innych.
  • Przetestuj produkt. Warto testować aplikację i na bieżąco korygować pojawiające się błędy. Regularne przeglądy kodu powinny być podstawą każdego rozwoju oprogramowania.
  • Zaplanuj swój projekt odpowiednio. Prawidłowe planowanie rozwoju oprogramowania powinno uwzględniać zarówno czas potrzebny na przetestowanie aplikacji i wprowadzenie bieżących poprawek, jak i zapewnienie nowych funkcjonalności. Skupienie się wyłącznie na drugim aspekcie prowadzi do powstania długu technologicznego.

Wybór rozwiązania „bez długu technologicznego” nie daje żadnej gwarancji, że nie wpłynie to na biznes. Musisz zadbać o to, aby wybrać odpowiednich ludzi.

Chcesz dowiedzieć się więcej o Syliusie? 

Jak sobie radzić z długiem technologicznym?

W niektórych przypadkach nie jest konieczne przepisywanie całej aplikacji od samego początku. Jeśli jednak zależy Ci na takim rozwiązaniu, warto je dokładnie przemyśleć, biorąc pod uwagę koszty i czas potrzebny na jego wdrożenie. Najlepiej jednak przeanalizować problem na etapie początkowym i zobaczyć, gdzie pojawia się najwięcej błędów. W tym momencie pomocny może okazać się wspomniany przegląd kodu, który pozwoli na kompleksowy audyt napisanego kodu i zidentyfikowanie najbardziej problematycznych obszarów.

Dobrym pomysłem może być podzielenie aplikacji na logiczne mniejsze części, które zostaną poddane refaktoryzacji osobno. Po ich wyizolowaniu warto przeanalizować możliwości poprawy sytuacji. W zależności od projektu, niektóre części aplikacji można przepisać, a w innych niezbędne poprawki można wdrożyć krok po kroku w strategicznych miejscach.

Spłata długu technologicznego nagromadzonego na etapach MVP pomaga przywrócić dobre tempo rozwoju

Kiedy warto próbować walczyć i jak walczyć?

  • Podnoszenie kwalifikacji zespołu (kursy, szkolenia, kwalifikacje)
  • Zastanów się czy opłaca się z tym walczyć czy lepiej/taniej jest przeprowadzić migrację do nowego systemu. Migracja może odbywać się etapami np. najpierw przepięcie koszyka
  • Wprowadzanie standardów; inżynieria wsteczna tego, co zostało zrobione do tej pory
  • Pisanie testów, dobre praktyki programistyczne – DDD, event sourcing
  • Patrząc na sytuację z boku → czy zespół odpowiedzialny za dług techniczny jest w stanie poradzić sobie z nowym projektem
  • Bottega IT Minds → pomaga wyjść z długu technologicznego
  • Obserwuj konkurencję → kto to zrobił, jak, jakie rozwiązania/technologie/zespoły wykorzystali (nie dostajemy zapłaty za ich wymienianie, są po prostu dobrzy)
  • To, że firma ma wizję, nie oznacza, że ​​można ją wdrożyć. Najlepsze podejście → czasami dobrze jest delegować część logiki do zewnętrznych rozwiązań/dostawców, takich jak automatyzacja marketingu (SalesManago), fakturowanie

Kiedy nie warto próbować walczyć?

  • Kiedy wiesz, że możesz zaakceptować ten dług – Nie będziesz rozwijał tego rozwiązania, a będziesz go potrzebował tylko „na jakiś czas”
  • Gdy przepisanie rozwiązania może zająć lata
  • Kiedy jest mały (krótki) dług techniczny

Przykłady długu technologicznego opartego na popularnych projektach typu open source

Podsumowując, odpowiednia praca zespołu i świadomość konsekwencji technicznego długu pozwala skutecznie walczyć z tym problemem i minimalizować powstający dług. Oczywiście, zwykle zajmuje to czas i wymaga odpowiedniego planu, ale korzyści z pozbycia się długu będą cenne dla Twojej firmy.

Jeśli potrzebujesz konsultacji w zakresie tematycznym poruszonym w tym artykule i chcesz zrealizować swój projekt na nowo, skontaktuj się z nami – doradzimy w wyborze najlepszych rozwiązań.