Pakiet 3

Refaktoryzacja i dług technologiczny

Nie przepisujemy systemu od zera. Porządkujemy go etapami.

Każdy etap ma własną cenę i mierzalny cel zapisany w umowie. Po każdym etapie system działa, a Ty możesz przerwać — bez porzuconego projektu i bez połowicznej przebudowy.

Opisz swoją sytuację
Objawy

Po czym poznać, że już czas

Dług technologiczny rzadko zgłasza się sam. Zwykle daje znać przez terminy.

Drobna zmiana zajmuje tydzień

Poprawka na godzinę wymaga przetestowania połowy systemu, bo zależności nie są znane.

Nikt nie chce dotykać jednego modułu

W zespole istnieje obszar, do którego wchodzi się w ostateczności. Zwykle ten sam, który najczęściej zawodzi.

Aktualizacja biblioteki blokuje wydanie

Zależności są na tyle stare, że podniesienie jednej wersji pociąga za sobą kilkanaście kolejnych.

Kod z AI, którego nikt nie przeczytał

Działa, ale nikt nie odpowie, dlaczego działa ani co się stanie przy innych danych wejściowych.

Przebieg

Pomiar, zmiana, pomiar

Każdy etap zamyka się własnym odbiorem. Pomiar na wejściu i na wyjściu wykonujemy tym samym narzędziem, na Twoim środowisku.

1Pomiar wejściowystan przed zmianą 2Etap 1zmiana i odbiór 3Etap 2zmiana i odbiór 4Etap 3zmiana i odbiór 5Pomiar końcowyte same metryki Liczba etapów zależy od zakresu. Po każdym z nich system działa i możesz zakończyć współpracę.
Zakres

Co robimy w kolejnych etapach

Pomiar punktu wyjściaStan obecny mierzymy przed pierwszą zmianą: dług techniczny i złożoność w SonarQube, pokrycie testami, czasy odpowiedzi, podatności w zależnościach. Bez tego nie da się wykazać poprawy.
Siatka bezpieczeństwaTesty wokół obszaru przeznaczonego do zmiany. Refaktoryzacja bez testów to przepisywanie w ciemno — tak zwykle kończą się nieudane przebudowy.
Porządkowanie koduRozdzielenie odpowiedzialności, usunięcie duplikacji, uproszczenie miejsc o najwyższej złożoności. Zmiany małymi krokami, każda możliwa do wycofania osobno.
Zależności i podatnościAktualizacja bibliotek i frameworków, usunięcie znanych podatności, uporządkowanie licencji open source.
WydajnośćTam, gdzie pomiar wykazał realny problem: zapytania do bazy, zużycie pamięci, czasy odpowiedzi.
Pomiar końcowyTe same metryki co na wejściu, wykonane tym samym narzędziem. Różnica jest przedmiotem odbioru.
Umowa

Mierzalne cele zamiast deklaracji

Dla każdego etapu zapisujemy w umowie konkretne wartości. Odbiór polega na sprawdzeniu, czy zostały osiągnięte — a nie na ocenie, czy kod wygląda lepiej.

Ocena w SonarQube — wskaźnik długu technicznego i złożoności dla wskazanego obszaru: wartość wejściowa i docelowa.
Pokrycie testami — procent pokrycia dla modułu objętego etapem, liczony tym samym narzędziem przed i po.
Czas odpowiedzi — dla operacji, które wskażesz jako istotne, mierzony na Twoim środowisku.
Podatności w zależnościach — liczba znanych podatności dla objętego zakresu, przed i po aktualizacji.

Czego nie obiecujemyNie podajemy wartości procentowych przed pomiarem punktu wyjścia. Cele liczbowe ustalamy po pierwszym etapie, kiedy znany jest stan początkowy — i dopiero wtedy trafiają do umowy.

Pytania

Najczęstsze pytania

Czy musimy wstrzymać prace nad nowymi funkcjami?

Nie. Etapy projektujemy tak, aby dało się je wpleść między wydania. Dlatego pracujemy obszarami, a nie całym systemem naraz.

Co, jeśli po pierwszym etapie uznamy, że wystarczy?

Kończymy. Każdy etap jest zamkniętą całością z własnym odbiorem i nie pociąga za sobą zobowiązania do kolejnego.

Czy nie taniej przepisać wszystko od nowa?

Prawie nigdy. Przepisanie oznacza odtworzenie wszystkich reguł biznesowych narosłych przez lata w starym kodzie, z których większość nie jest nigdzie spisana. Porządkowanie etapami trwa dłużej, ale system działa przez cały czas.

Czy zaczynacie od audytu?

Od pomiaru punktu wyjścia, który obejmuje węższy zakres niż pełny audyt. Jeśli nie wiadomo jeszcze, gdzie leży problem, sensowniej zacząć od audytu kodu.

Czy pracujecie na naszej infrastrukturze?

Tak. Repozytorium, środowiska i dane pozostają u Ciebie. Pracujemy na dostępach, które nam nadasz, i zwracamy je po zakończeniu prac.

Jak korzystacie z narzędzi AI?

Pod nadzorem: każdy fragment przechodzi przegląd drugiego inżyniera, zanim trafi dalej. Twoje dane nie trafiają do promptów. Zasady opisaliśmy w dokumencie „Dane, RODO i narzędzia AI”, przekazywanym przed rozpoczęciem prac.

Pokaż nam moduł, którego nikt nie chce ruszać

Napisz, co sprawia najwięcej trudności. Wstępna ocena punktu wyjścia jest bezpłatna.

Opisz swoją sytuację