Wsparcie i utrzymanie

Wsparcie istniejących rozwiązań

Nie każdy system trzeba wymieniać. Większość potrzebuje kogoś, kto wie, jak działa, pilnuje aktualizacji i naprawia usterki, zanim staną się pilne.

Stare to nie to samo co zepsute

Pokutuje przekonanie, że oprogramowanie ma termin przydatności i że system zbudowany pięć lat temu należy z zasady wymienić. W praktyce mnóstwo systemów sprzed lat nadal wykonuje swoje zadanie poprawnie i szybko. Zwykle brakuje im nie nowoczesności, tylko kogoś, kto zwraca na nie uwagę.

Systemy, które naprawdę trzeba wymienić, to te, które blokują firmę: nie da się ich zmienić bez psucia, nie da się ich nigdzie sensownie hostować albo nikt nie potrafi przy nich pracować. Cała reszta to pytanie o utrzymanie, a utrzymanie jest wyraźnie tańsze niż przepisanie. Przepisanie niesie też ryzyko, które łatwo zlekceważyć: nowej wersji zabraknie kilkudziesięciu drobnych zachowań, które stara wersja zebrała przez lata, bo prawdziwy klient kiedyś ich potrzebował.

Warto też pamiętać, że koszt utrzymania jest przewidywalny, a koszt przepisania rzadko. Przy utrzymaniu wiesz mniej więcej, ile wydajesz miesięcznie, i możesz to w każdej chwili przerwać. Przepisanie jest zobowiązaniem podjętym na podstawie szacunków, a przez cały czas jego trwania stary system i tak wymaga opieki, bo klienci nie przestaną z niego korzystać na czas przenosin.

Przejmowanie czegoś, czego nie pisaliśmy

Przejęcie cudzego kodu to osobna umiejętność. Dokumentacja, jeśli w ogóle jest, opisuje zamiar, a nie stan obecny. Osoba, która wie, dlaczego istnieje konkretne obejście, zwykle dawno odeszła.

Dlatego zaczynamy od tego, żeby system stał się dla nas czytelny. Uruchamiamy go poza produkcją, odtwarzamy jego obecne zachowanie, śledzimy dane przechodzące przez integracje i sprawdzamy, co naprawdę robi wdrożenie. Dopiero potem wyrabiamy sobie zdanie. Efektem tego pierwszego etapu jest spisana mapa systemu, która przyda się Tobie niezależnie od tego, co zrobimy dalej, bo zamienia wiedzę z jednej głowy w coś, co należy do firmy.

Czas tego etapu zależy mniej od wielkości kodu niż od tego, jak bardzo jest nietypowy. Zwykłą aplikację na znanym frameworku da się zrozumieć w kilka dni. System z autorskim frameworkiem, nieudokumentowanymi migracjami danych i regułami biznesowymi zaszytymi w wyzwalaczach bazy zajmuje wyraźnie dłużej. Wolimy powiedzieć to na starcie, niż odkryć to w połowie prac rozliczanych ryczałtem.

Najpierw stabilizacja, potem usprawnienia

Kusi, żeby zacząć od widocznego problemu, tego, który irytuje ludzi od miesięcy. Zwykle tego nie robimy, bo pierwszym zadaniem jest zmniejszenie szansy na zły tydzień.

W praktyce sprawdzamy kilka mało efektownych rzeczy:

Backupy istnieją, wykonują się według harmonogramu i przynajmniej raz zostały odtworzone, żeby wiadomo było, że działają.

Jest gdzie testować poza produkcją.

Wdrożenie da się cofnąć, więc nieudane wydanie jest niedogodnością, a nie awarią.

Hasła nie leżą w repozytorium, a dostęp mają tylko osoby, które nadal tu pracują.

Coś informuje nas, że system nie działa, wcześniej niż klient.

Kiedy to jest spełnione, cała reszta robi się bezpieczniejsza i szybsza, łącznie z tym widocznym problemem.

Spokojne utrzymanie i uczciwa decyzja

Po stabilizacji praca zamienia się w rytm. Zgłoszone błędy są naprawiane. Zależności aktualizujemy na tyle, żeby pozostały wspierane, za każdym razem ważąc to z ryzykiem zepsucia czegoś, co działa. Integracje poprawiamy, gdy dostawca zmienia API. Drobne zmiany wprowadzamy wtedy, kiedy firma ich potrzebuje.

Większość tej pracy jest niepozorna. Formularz, który przestał wysyłać wiadomości, bo dostawca poczty zaostrzył zasady. Raport, do którego trzeba dołożyć kolumnę. Strona rozjeżdżająca się na ekranach, których nie było, kiedy powstawała. Pojedynczo żadna z tych rzeczy nie jest ciekawa, a razem decydują o różnicy między systemem, któremu ludzie ufają, a takim, który po cichu omijają.

Równolegle pilnujemy uczciwego pytania: czy utrzymywanie tego jest nadal tańsze niż wymiana? Odpowiedź zmienia się w czasie i zwykle zmienia się z konkretnego powodu, a nie ogólnego. Wersja frameworka wychodzi ze wsparcia, a ścieżka aktualizacji jest zablokowana. Zmiana, która powinna zająć dzień, zaczyna zajmować tydzień przez narosłe powiązania. Trudno znaleźć hosting dla wymaganej wersji środowiska.

Kiedy uznamy, że ten moment nadszedł, mówimy to i wskazujemy, którą część wymienić najpierw. Przepisywanie całego systemu naraz rzadko jest konieczne. Wymiana tego fragmentu, który zrobił się kosztowny, przy reszcie działającej dalej, zwykle wystarcza.

Co dostajesz

Przejęcie systemu, którego nie budowaliśmy

Czytamy kod, uruchamiamy go lokalnie i ustalamy, jak system faktycznie się zachowuje, a nie jak twierdzi dokumentacja. Tego etapu zwykle brakuje przy przekazaniach.

Bezpieczna droga do zmian

Zanim czegokolwiek dotkniemy, upewniamy się, że istnieje działający backup, środowisko poza produkcją i wdrożenie, które da się cofnąć.

Poprawki i drobne zmiany

Zgłaszane błędy, zepsute integracje, zmiany w treści i konfiguracji oraz drobne modyfikacje funkcji, dzięki którym system nadąża za tym, co się dzieje w firmie.

Utrzymane zależności

Frameworki, biblioteki i środowiska uruchomieniowe aktualizujemy na tyle, żeby pozostały wspierane i bezpieczne, ważąc to za każdym razem z ryzykiem zepsucia czegoś, co działa.

Dokumentacja tego, jak to naprawdę działa

Poznając system, spisujemy go: architekturę, integracje, kroki wdrożenia i znane pułapki, w które wpada każda nowa osoba.

Uczciwa ocena: utrzymywać czy wymienić

W pewnym momencie utrzymanie przestaje być tańsze. Mówimy, kiedy naszym zdaniem ten moment nadszedł, i wskazujemy, którą część wymienić najpierw.

Jak pracujemy

  1. 01

    Czytamy system i go uruchamiamy

    Dostajemy kod, dostępy i dane hostingu, stawiamy projekt poza produkcją i potwierdzamy, że potrafimy odtworzyć jego obecne zachowanie, zanim cokolwiek zaproponujemy.

  2. 02

    Oceniamy realne ryzyka

    Szukamy rzeczy, które naprawdę zabolą: niewspieranych wersji, brakujących backupów, haseł zapisanych w kodzie, integracji, które pękną przy zmianie u dostawcy, pojedynczych punktów awarii.

  3. 03

    Najpierw stabilizacja

    Pierwsze prace to wszystko, co zmniejsza szansę na awarię. Backupy, dostępy, monitoring i najbardziej narażone zależności idą przed listą życzeń funkcjonalnych.

  4. 04

    Przejmujemy bieżące utrzymanie

    Aktualizacje, poprawki i drobne zmiany wchodzą w regularny cykl, z jednym punktem kontaktu, żeby nie trzeba było za każdym razem szukać osoby, która akurat ma czas.

  5. 05

    Wracamy do większego pytania

    Co jakiś czas sprawdzamy, czy dalsze utrzymanie nadal ma sens, czy też któraś część zrobiła się na tyle kosztowna, że warto ją przepisać.

Narzędzia i technologie

Tam, gdzie istnieje dobre narzędzie open source, wybieramy je zamiast zamkniętego. Bez uzależnienia od jednego dostawcy i z kosztami, które da się przewidzieć.

  • WordPress
  • WooCommerce
  • PHP
  • Laravel
  • Symfony
  • Node.js
  • React
  • MySQL
  • PostgreSQL
  • Docker
  • Git
  • Sentry

Najczęściej zadawane pytania

Powiązane realizacje

Pozostałe usługi w tej kategorii

Przeczytaj opinie firm, które nam zaufały

Zawsze są kilka kroków do przodu.

Mikołaj

CEO & Founder, GBS®

Zobacz na Clutch
GBS® logo

Dostarczone znacznie wcześniej niż termin.

Yasniel

CEO, IMEGA Sp z o.o.

Zobacz na Clutch

Indywidualne podejście ZanReal jest imponujące.

Adam

Executive, w-studio.pl

Zobacz na Clutch

Wiedza i intuicja biznesowa czynią ich wartościowym partnerem.

Magda

Designer, DIGITALUNI

Zobacz na Clutch

Szybkie rozwiązania, które obniżyły koszty o 99%.

Andrei Kapytau

Team Lead, busel.uk

Zobacz na Clutch

+20% dostarczalności dla naszych kampanii e-mail.

Joan Calabria

Sales Director, 36NORTH

Zobacz na Clutch
36NORTH logo

Najnowsze

Poradniki techniczne, bezpieczeństwo i nasze doświadczenia z budowania rozwiązań AI.

Masz system, którego nikt w firmie już nie rozumie?

Napisz do nas

Opowiedz, co ten system robi i kto go budował, a zaproponujemy plan przejęcia: od bezpiecznego uruchomienia poza produkcją po bieżące utrzymanie.

Zanek

Nie nadążasz za zmianami w świecie AI?

Pozwól, że weźmiemy to na siebie. Co tydzień destylujemy najważniejsze wydarzenia ze świata AI w skupiony, 5-minutowy przegląd — żebyś był na bieżąco bez szumu.

Dowiedz się więcej
Tygodnik AIonline
Wyselekcjonowane wiadomości AI do porannej kawy. Co tydzień.
Wyślij mi swój email, żeby się zapisać.