Zmienna natura rozwoju oprogramowania oraz ciągły postęp technologiczny sprawiają, że jedyną stałą rzeczą jest zmiana. Najnowsze osiągnięcia technologiczne i aktualizacje otwierają nowe możliwości i przestrzeń do ulepszeń; jednakże prowadzi to do wielu zmian w kodzie i poza nim, aby przygotować starsze rozwiązania do lepszego działania i zgodności z nowymi. To z kolei tworzy zjawisko znane jako dług technologiczny.

W dzisiejszym wpisie na blogu przyjrzymy się bliżej pojęciu długu technologicznego i przeanalizujemy jego przyczyny, ryzyka z nim związane oraz strategie zarządzania nim na przykładzie platformy eCommerce Sylius.


Spis treści


Co to jest dług technologiczny?

Dług technologiczny odnosi się do zbioru defektów i błędów w kodzie źródłowym. Często są one wynikiem kompromisu między jakością kodu a funkcjonalnością, gdy produkt lub funkcjonalność muszą być wdrożone na czas. Dług technologiczny występuje także wtedy, gdy wszystko jest zrobione poprawnie, jednak staje się on widoczny wtedy po długim czasie użytkowania oprogramowania, a nie po kilku miesiącach. Powodem może być na przykład ewolucja wymagań użytkowników lub pojawienie się nowych technologii, które sprawiają, że istniejące rozwiązania stają się przestarzałe lub mniej efektywne. Z czasem nawet dobrze zaprojektowane systemy mogą przestać odpowiadać aktualnym standardom lub oczekiwaniom, co prowadzi do potrzeby aktualizacji lub refaktoryzacji.  Dodatkowo, kod, który kiedyś był optymalny, może stać się mniej efektywny z powodu zmian w otaczającym ekosystemie, takich jak aktualizacje powiązanego oprogramowania, systemów operacyjnych lub sprzętu. W rezultacie utrzymanie i aktualizacja oprogramowania, aby nadążyć za tymi zmianami, mogą przyczynić się do akumulacji długu technologicznego, nawet w przypadku braku początkowych wad lub kompromisów w jakości kodu.

Co powoduje dług technologiczny w Syliusie?

Skoro już wiemy, czym jest dług technologiczny, przyjrzyjmy się głębiej, co go powoduje. Po pierwsze, jest to brak odpowiedniego planowania projektu eCommerce. Przygotowując się do rozwoju witryny eCommerce, każdy szczegół jest ważny i powinien być jasno komunikowany. Brak komunikacji (często połączony z presją czasu) prowadzi do nieprecyzyjnych wymagań, chaotycznego kodu, słabej architektury i niedopracowanych funkcjonalności. Co więcej, brak wykonywania kluczowych zadań na wczesnych etapach projektu, takich jak testy jednostkowe, testy integracyjne i testy funkcjonalne, utrudnia wykrywanie błędów, a można byłoby je dzięki temu łatwo wyeliminować. Mówiąc o błędach, dług technologiczny często wynika z ignorowania drobnych problemów, które z czasem stają się coraz większe, co wpływa na wydajność witryny.  Dodatkowo dług technologiczny może być spowodowany ręcznymi wdrożeniami, testowaniem i dostarczaniem kodu bez wsparcia narzędzi automatyzacji. W przeciwieństwie do ludzkiego oka, takie narzędzia mogą łatwo wykrywać błędy w kodzie. Ostatnim powodem jest brak regularnych aktualizacji oprogramowania, co prowadzi do długu technologicznego i luk bezpieczeństwa. Im bardziej skomplikowane oprogramowanie, tym większa szansa, że jedna zmiana może wpłynąć na inną. Brak kontroli nad długiem technologicznym, nieświadomość jego istnienia oraz brak planów i działań mających na celu jego minimalizację prowadzą do narastających problemów.

Co więcej, brak wykonywania kluczowych zadań na wczesnych etapach projektu, takich jak testy jednostkowe, testy integracyjne i testy funkcjonalne, utrudnia wykrywanie błędów, a można byłoby je dzięki temu łatwo wyeliminować. Mówiąc o błędach, dług technologiczny często wynika z ignorowania drobnych problemów, które z czasem stają się coraz większe, co wpływa na wydajność witryny. 

Dodatkowo dług technologiczny może być spowodowany ręcznymi wdrożeniami, testowaniem i dostarczaniem kodu bez wsparcia narzędzi automatyzacji. W przeciwieństwie do ludzkiego oka, takie narzędzia mogą łatwo wykrywać błędy w kodzie. Ostatnim powodem jest brak regularnych aktualizacji oprogramowania, co prowadzi do długu technologicznego i luk bezpieczeństwa.

Im bardziej skomplikowane oprogramowanie, tym większa szansa, że jedna zmiana może wpłynąć na inną. Brak kontroli nad długiem technologicznym, nieświadomość jego istnienia oraz brak planów i działań mających na celu jego minimalizację prowadzą do narastających problemów.

Ryzyka związane z długiem technologicznym

Jak właśnie wspomnieliśmy o braku regularnych aktualizacji oprogramowania, zacznijmy od ryzyk związanych z tym problemem. To podejście pozostawia systemy nieprzygotowane na potencjalne ataki hakerskie, ponieważ nasz system jest „nieświadomy” nowych zagrożeń online i nie ma narzędzi do zapobiegania atakom. Z tego powodu ktoś może wykorzystać luki bezpieczeństwa w systemie, aby ukraść dane biznesowe i klientów. Co więcej, systemy bez aktualizacji nie mogą być właściwie rozwijane, a różnice w oprogramowaniu stają się coraz większe.

Oprócz tego, dług technologiczny może znacznie obniżyć wydajność sklepu eCommerce, co negatywnie wpływa na doświadczenia klientów. Wydajność strony internetowej i czas ładowania są kluczowymi czynnikami dla wielu klientów online. Według Digital.com, 19% klientów online opuści stronę, jeśli jej ładowanie trwa więcej niż 2-3 sekundy, a ten odsetek wzrasta do 25%, jeśli strona nie załaduje się w ciągu 4-6 sekund.

Gdy sklep internetowy opiera się na przestarzałym kodzie, jego utrzymanie i rozbudowa stają się trudniejsze i bardziej czasochłonne, co ostatecznie prowadzi do zwiększonych kosztów.

W następnej sekcji opisano, jak najlepiej rozwijać i utrzymywać sklepy eCommerce, aby zminimalizować dług techniczny w przyszłości.

Jak minimalizować dług techniczny w Syliusie?

W kontekście prowadzenia sklepu eCommerce na Syliusie dług tetechnologiczny może wystąpić, gdy witryna została stworzona pięć lub nawet dziesięć lat temu bez przestrzegania najlepszych praktyk Symfony (np. zasad SOLID) i przy użyciu niskiej jakości kodu (często z powodu ograniczeń czasowych). Co więcej, może to wystąpić, gdy framework nie jest odpowiednio utrzymywany i aktualizowany. To skutkuje słabą wydajnością, słabym UX/UI, błędami w kodzie itp.

Jak więc zminimalizować dług techniczny i nie bać się jego konsekwencji?

Jak stwierdził Wujek Rob (Robert Cecil Martin):

„Nie tylko dobra architektura spełnia potrzeby swoich użytkowników, deweloperów i właścicieli w danym momencie, ale także spełnia je w czasie.”

Biorąc to pod uwagę, przyjrzyjmy się dobrym praktykom w rozwoju eCommerce w Syliusie.

Dobre praktyki eCommerce w Syliusie

  • Dokładna analiza wymagań na początku projektu
  • Tworzenie kodu zgodnie z dobrymi praktykami i używanie odpowiednich wzorców projektowych
  • Automatyczne testy, które pomogą wykrywać błędy od samego początku
  • Wykorzystywanie dobrze przygotowanej dokumentacji
  • Monitorowanie wydajności i typów przesyłanych danych
  • Regularne aktualizacje technologii frameworka: Sylius, Symfony, PHP itp.
  • Zamiast zmieniać kod w Syliusie, staraj się go rozszerzać podczas dostosowywania i dodawania nowych funkcjonalności

Dobra architektura i wdrażanie dobrze zaplanowanych rozwiązań znacząco zminimalizuje dług technologicznego. Ponadto, utrzymywanie oprogramowania w aktualnym stanie daje użytkownikom nowe możliwości rozwoju sklepu eCommerce i oferowania nowych ekscytujących funkcjonalności.

Chcesz się dowiedzieć więcej o Sylisuie? 

sylius-logo

Co zrobić, aby wyeliminować dług technologiczny?

Załóżmy, że architektura eCommerce jest już obciążona długiem technologicznym. Co zrobić w takiej sytuacji? Są dostępne dwie opcje:

Brownfield software development

Brownfield software development polega na modyfikowaniu lub rozszerzaniu istniejących systemów oprogramowania. Często wymaga to radzenia sobie z kodem legacy, problemami zgodności i istniejącą architekturą, co może być wyzwaniem i ograniczeniem.

Musi to być starannie zaplanowany proces, w którym deweloperzy powinny przeanalizować bazę kodu i planować dalsze działania, aby ją „naprawić”. Przeglądając kod i decydując, które obszary wymagają refaktoryzacji, można poprawić jakość witryny eCommerce i wyeliminować problemy. Pamiętaj, że dalszy rozwój sklepu internetowego jest możliwy tylko wtedy, gdy dług technologiczny zostanie „spłacony”. W przeciwnym razie, to jak budowanie kolejnych pięter wieżowca, gdy fundamenty są uszkodzone, i cała budowla może się zawalić.

Ten proces nie jest prosty, ale może być tańszą alternatywą dla budowy nowej witryny eCommerce od podstaw. Jednak sukces nie jest gwarantowany, ponieważ próby „reanimacji” starych rozwiązań mogą prowadzić do pojawienia się wielu błędów i wąskich gardeł.

Greenfield software development

Greenfield software development odnosi się do tworzenia systemu od podstaw, bez żadnych ograniczeń wynikających z istniejącego kodu lub infrastruktury. To podejście oferuje większą swobodę w wyborze projektu i technologii, ale zazwyczaj wymaga więcej zasobów. Kluczowym aspektem jest tutaj analiza błędów i problemów związanych z poprzednią platformą, aby wdrożyć rozwiązania zapobiegające im w przyszłości, zarówno z perspektywy technicznej, jak i biznesowej. Nowy sklep eCommerce wymaga także stworzenia dokumentacji i migracji danych.

Wybór między pracą nad istniejącą witryną a budową nowej zależy od wielu czynników, takich jak ilość długu technologicznego i występujących problemów, dostępny budżet, dostępny czas i unikalne wymagania. Każdy aspekt powinien być dokładnie przeanalizowany, aby podjąć świadomą decyzję.

Podsumowanie 

Dług technologiczny to aspekt, który powinien być brany pod uwagę w każdym projekcie eCommerce. Niemniej jednak, zazwyczaj nie jest to duży problem dla większości firm, gdy jest monitorowany. Znacznie łatwiej jest regularnie dbać o sklep (np. poprzez jego aktualizacje) niż próbować później usunąć dług technologiczny, który narastał przez lata.

Proaktywne zarządzanie długiem technologicznym może znacznie poprawić skalowalność i wydajność platformy eCommerce oraz zapewnić, że systemy pozostaną elastyczne i reagujące na zmieniające się trendy rynkowe i wymagania konsumentów.

Dług technologiczny jest nieunikniony; jednak to od firmy internetowej zależy, jak duży się stanie i jakie problemy spowoduje.

Pamiętaj, że zawsze lepiej jest poświęcić więcej zasobów na stworzenie solidnego sklepu, który będzie służył przez wiele lat, niż takiego, który może szybciej i taniej wejść na rynek, ale będzie powodował problemy po kilku miesiącach.

Jeśli szukasz agencji eCommerce Sylius skontaktuj się z nami. Pomożemy Ci wdrożyć Twój sklep internetowy.