Dług technologiczny w praktyce – motywy

Ostatnio jednej z klientek napisałem spory elaborat na temat tego jak zakup gotowego motywu powoduje niespodziewane koszta. Ponieważ ten przypadek idealnie obrazuje czym jest dług technologiczny w praktyce – przyjrzyjmy mu się bliżej.

Myślę, że każdy kto ma jakąkolwiek styczność z nowymi technologiami, powinien sobie zdawać sprawę z tego czym jest dług technologiczny.

W uproszczeniu (w kontekście IT) – dług technologiczny powstaje wtedy gdy programiści idą na skróty. W efekcie kod projektu ciężej utrzymywać: wprowadzać poprawki, dodawać nowe funkcje czy wykrywać potencjalne błędy. Jak każdy dług – trzeba go kiedyś spłacić. Najczęściej odbywa się to przez dodatkowe wydatki na pracę programistów.

Jeżeli zlecasz komuś zbudowanie strony internetowej w oparciu o gotowy motyw np. z ThemeForest, to najprawdopodobniej już masz na swoim koncie pewien dług technologiczny, który z czasem będzie się powiększał.

Skąd ten dług? Jakie są skutki?

Weźmy na warsztat typowy przypadek – klient potrzebuje relatywnie prostej strony wizytówki. Jej zaprojektowanie od podstaw to pewien koszt – grafik musi namalować projekt, skonsultować go z front-endowcem, przy stronie, która ma na siebie zarabiać przydaje się też konsultacja z człowiekiem od UX. Generalnie praca trzech fachowców tania nie jest – i wtedy do gry wkracza on – gotowy motyw.

Grafik okazuje się zbędny, front-endowiec trochę pozmienia wygląd, a specjalista od UX też ma wolne, bo skoro ktoś sprzedaje motywy to na pewno wie jak projektować dobre interfejsy użytkownika ( 😉 ).

Cena za realizację często drastycznie spada. Pojawia się gdzieś w tle sugestia, że firma realizująca za relatywnie niewielką opłatą może stroną zarządzać… ale po co? Przecież jest Visual Composer, Revolution Slider i inne cudowne rozszerzenia, które z każdego potrafią uczynić specjalistę od zarządzania treścią na stronie w 5 minut.

Ostatecznie strona wydaje się jednorazowym wydatkiem – klient wierzy, że dalej sobie ze stroną poradzi.

I wtedy do akcji wkracza on – czas. WordPress i wtyczki stale ewoluują a to oznacza nieuchronne aktualizacje. Na początku jest miło i przyjemnie, ale po pewnym czasie pojawiają się problemy – nowa „duża” wersja motywu, a wraz z nią szok, bo „Zawsze klikałem/klikałam 'aktualizuj’ i działało a teraz wszystko padło! Jak żyć?”.

I tutaj właśnie daje o sobie znać zaciągnięty wcześniej dług technologiczny – najczęściej okazuje się, że aby zrobić aktualizację motywu, trzeba zaktualizować Visual Composer a to bardzo często oznacza liczne niekompatybilności z którymi ktoś kto nie lubuje się w kodzie typu:

[tag][kolejny_tag][a_ten_ma_nawet_parametr parametr="5"][/kolejny_tag][/tag][jeszcze_jeden_tag][tag_by_bylo_wincyj_tagow][/jeszcze_jeden_tag][daj_mie_tu_ten_parametr parametr="xyz"][/tag_z_bledem][tag_dla_zaciemnienia_obrazu_sytuacji]

Raczej sam sobie nie poradzi. I tak z reguły spłaca się dług technologiczny – strona w wykonaniu była tania, ale po czasie trzeba zapłacić za modyfikacje strony i sprawienie by dalej działała.

Ale to by strona działała to jedno – pozostają jeszcze inne problemy. Przykładowo slajdy na stronie (pomińmy chwilowo już ich aspekt użytecznościowy) – gotowe rozszerzenie potrafi wygenerować jakieś 150kB kodu, by pokazać 3 slajdy i to w dosyć prostej formie. Takie slajdy to jakaś godzina pracy programisty i góra 10kB kodu. Do tego motywy w większości wypadków dość bezrefleksyjnie ładują masę innych skryptów „na zaś” by w efekcie sprawić, że strona, która może ważyć 300kB zajmuje 2MB danych. W efekcie generuje to nam: większe obciążenie serwera, dłuższy czas ładowania, problemy ze stroną przy większym ruchu oraz spadki w pozycjonowaniu ze względu na słabe wyniki testów szybkości strony.

Niestety często okazuje się, że stronę opartą o rozwiązanie typu Page Builder łatwiej „zaorać” i postawić od nowa niż próbować coś na niej naprawić.

Jak przeciwdziałać powstaniu długu technologicznego?

Przede wszystkim warto pamiętać, że im więcej wtyczek wykorzystuje dany motyw, tym większa jest szansa na problemy w przyszłości. Działa tutaj prosta reguła KISS – jeśli coś składa się z 30 modułów to szansa na jakąś awarię jest dużo wyższa niż przy czymś co oparto na 5 modułach. Niestety wiele z motywów to właśnie takie wielomodułowe kombajny – które cieszą oko do czasu pierwszego problemu.

Dedykowany motyw ma kilka zalet:

  1. Nie grozi mu gruntowna przebudowa wraz z aktualizacją,
  2. Będzie zdecydowanie wydajniejszy,
  3. Zawiera tylko te funkcje, które rzeczywiście są potrzebne klientowi,
  4. Istnieje mnóstwo motywów, którymi można się inspirować (zależnie od licencji) co pozwala znacząco zredukować nakłady na pracę grafika,
  5. Jeśli jest dobrze napisany to powinien przetrwać wiele kolejnych aktualizacji WordPressa bez większych nakładów pracy,
  6. Migracja treści na inny motyw jest zdecydowanie prostsza gdy motyw korzysta ze standardowych funkcji WordPressa zamiast rozbudowanych wtyczek.

Jak żyć z długiem technologicznym?

Wszystko zależy od tego jak podchodzimy do naszej strony internetowej.

Jeśli jest rzadko aktualizowana o nowe treści, a najbliższy redesign planujemy raz na 5 lat, to gotowe motywy sprawdzą się całkiem nieźle. Wraz z redesignem prawdopodobnie zmienią się treści na stronie i tak czy inaczej czeka nas gruntowna przebudowa strony – długu technologicznego wtedy po prostu nie spłacimy, bo zwyczajnie się on zbilansuje z zyskami jakie mamy dzięki uniknięciu tworzenia dedykowanego motywu i sukcesywnemu omijaniu upgrade’u WordPressa.

Gdy planujemy jednak rozszerzać stronę o nowe funkcje, zmieniać i dostosowywać treści, to im więcej takich zmian planujemy tym większym problemem będą prace na gotowym rozwiązaniu – wtedy dług technologiczny będzie stale rósł i może wywołać przyśpieszone bicie serca po zobaczeniu wyceny przebudowy witryny.

Dlatego tak ważne jest odpowiedzenie sobie na kilka kluczowych pytań, zanim usłyszymy dlaczego warto wydać 2-3 razy więcej za podobny efekt końcowy (z frontu):

  • Jak planujemy rozwijać stronę?
  • Czy wolimy raz wydać większe pieniądze czy też preferujemy mniejsze kwoty wydane kilka razy?
  • Jak bardzo zależy nam na wydajności strony i bezproblemowości jej utrzymania?

Czasem warto zaciągnąć dług technologiczny, jeśli wiemy, że „inflacja” nam go zbilansuje w dłuższej perspektywie 🙂