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
- 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.
- 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.
- 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.
- 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.
- 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
Porządkowanie infrastruktury
Infrastruktura, która rosła decyzja po decyzji, źle znosi zmiany. Sprawdzamy, co naprawdę masz, wyłączamy to, czego nikt nie pilnuje, a resztę opisujemy.
Zarządzanie usługami i konfiguracja środowisk
Większość awarii zaczyna się od konfiguracji, która po cichu się rozjechała. Dbamy o to, żeby Twoje środowiska były spójne, aktualne i opisane na tyle dobrze, by zmiana przestała być loterią.
Monitoring i szybka reakcja na problemy
Monitoring ma sens tylko wtedy, gdy ktoś na niego reaguje. Wyposażamy utrzymywane przez nas systemy w monitoring, pilnujemy, by alerty pozostały wiarygodne, i obsługujemy to, co wychwycą.
Przeczytaj opinie firm, które nam zaufały
Dostarczone znacznie wcześniej niż termin.
Indywidualne podejście ZanReal jest imponujące.
Wiedza i intuicja biznesowa czynią ich wartościowym partnerem.
Szybkie rozwiązania, które obniżyły koszty o 99%.
+20% dostarczalności dla naszych kampanii e-mail.

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 nasOpowiedz, co ten system robi i kto go budował, a zaproponujemy plan przejęcia: od bezpiecznego uruchomienia poza produkcją po bieżące utrzymanie.
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