Co to jest system legacy?
„Legacy" to po angielsku „spuścizna" lub „dziedzictwo". W kontekście IT termin system legacy oznacza system informatyczny, który jest trudny do utrzymania, modyfikowania lub integrowania z innymi narzędziami – niezależnie od tego, ile ma lat.
To ważna różnica: system legacy nie musi być stary. System napisany 3 lata temu może być legacy, jeśli był budowany bez testów, bez dokumentacji, z ogromnym długiem technicznym. Z kolei system napisany 20 lat temu, ale regularnie utrzymywany – nie musi być problemem.
System legacy to nie wiek – to stan. System, który trudno zrozumieć, zmodyfikować i utrzymać – to system legacy, niezależnie od daty napisania.
Czym jest dług technologiczny?
Pojęcie związane z systemami legacy to dług technologiczny (ang. technical debt). Chodzi o wszystkie skróty, uproszczenia i złe decyzje podjęte podczas budowy systemu – które teraz spowalniają pracę i generują koszty.
Dług technologiczny powstaje naturalnie. Każdy projekt ma presję czasu i budżetu. Decyzje o napisaniu „na szybko" kumulują się przez lata. W pewnym momencie koszt obsługi długu przekracza koszt dostarczania nowych funkcji.
Sygnały, że masz system legacy
Oto konkretne sygnały, które powinny Cię zaniepokoić:
1. Nikt nie rozumie całości systemu
Jedyna osoba, która „wie jak to działa" – to poprzedni programista, który już nie pracuje w firmie. Albo programista, który sam przyznaje, że rozumie tylko „swoją część". To klasyczny sygnał systemu legacy.
2. Każda zmiana jest ryzykowna
Zmiana jednej funkcji psuje coś zupełnie innego. Nie wiadomo dlaczego. Nie ma testów. Wdrożenie nowej wersji to zawsze kilka nieprzespanych nocy.
3. System nie integruje się z nowymi narzędziami
Chcesz podłączyć system do nowego CRM, platformy e-commerce czy narzędzia do raportowania – ale system nie ma API, albo ma API, które „nie działa normalnie".
4. Onboarding nowych programistów trwa tygodnie
Nowy deweloper potrzebuje 2-3 tygodni, żeby zrozumieć, jak uruchomić projekt lokalnie. Dokumentacja albo nie istnieje, albo jest nieaktualna.
5. Czas naprawy błędów rośnie
Proste bugi zajmują dni zamiast godzin. Każda poprawka wymaga rozumienia dziesiątek zależności i obawy o skutki uboczne.
6. Technologia jest przestarzała lub porzucona
System używa bibliotek, które nie są już rozwijane. Framework, w którym jest napisany, nie ma aktywnej społeczności. Nowych deweloperów znających tę technologię jest coraz mniej.
7. System nie skaluje się
Przy większym obciążeniu system zwalnia lub pada. Próby optymalizacji nie pomagają, bo problemy leżą głębiej – w architekturze.
Masz stary system, który coraz bardziej spowalnia firmę? Oceniamy systemy legacy i pomagamy w modernizacji – bez przepisywania od zera.
Modernizacja systemów →Co możesz zrobić z systemem legacy?
Masz kilka opcji, w zależności od stanu systemu i Twoich celów:
Opcja 1: Modernizacja stopniowa
Najczęściej najlepsza opcja. Identyfikujesz najbardziej problematyczne elementy i wymieniasz je jeden po drugim, przy zachowaniu ciągłości działania systemu. System jest w produkcji przez cały czas.
Opcja 2: Strangler fig – obudowywanie nowym systemem
Nowy system jest budowany obok starego i stopniowo przejmuje kolejne funkcje. Stary system jest utrzymywany tylko w tych obszarach, które nie zostały jeszcze przeniesione. To dobra opcja, gdy architektura starego systemu jest fundamentalnie wadliwa.
Opcja 3: Przepisanie od zera
Rzadko dobra opcja jako pierwsze działanie (patrz artykuł: modernizacja czy przepisanie). Ma sens gdy system jest mały, technologia martwa, albo model biznesowy zmienił się radykalnie.
Opcja 4: Utrzymanie i stabilizacja
Jeśli system działa i nie planujesz zmian – możesz go utrzymywać w obecnym stanie, skupiając się tylko na bezpieczeństwie i stabilności. To racjonalna opcja dla systemów, które będą wymieniane w przewidywalnym czasie.
Kiedy trzeba działać?
System legacy staje się pilnym problemem, gdy:
- Spowalnia wdrożenie nowych funkcji biznesowych o miesiące
- Generuje incydenty produkcyjne coraz częściej
- Blokuje integrację z nowymi narzędziami
- Zaczyna stwarzać ryzyko bezpieczeństwa przez nieaktualne biblioteki
- Jedyna osoba, która go rozumie, właśnie złożyła wypowiedzenie
Podsumowanie
System legacy to nie wyrok – to wyzwanie z konkretnymi opcjami rozwiązania. Kluczowe jest rozpoznanie problemu zanim stanie się kryzysem.
- System legacy to stan, nie wiek – każdy system może stać się legacy
- Dług technologiczny narasta stopniowo i powoli – aż nagle staje się widoczny
- Sygnały ostrzegawcze to: brak wiedzy o systemie, ryzykowne zmiany, problemy z integracją
- Opcje działania: modernizacja stopniowa, strangler fig, przepisanie, stabilizacja
- Najlepsza opcja zależy od stanu systemu i celów biznesowych – nie od intuicji