Opinia klienta
„Program sprawdza się idealnie, a do tego oszczędzamy dzięki zmianie serwera.”
System działał, ale firma została z nim sama
Osiem lat wcześniej zewnętrzna agencja zbudowała system do obsługi zamówień w kilku punktach sprzedaży. Zastąpił arkusze i papierowe segregatory, a z czasem stał się częścią codziennej pracy. Gdy pierwotny zespół przestał go rozwijać, kolejni wykonawcy oglądali kod i rezygnowali.
Tymczasem w środku była historia ponad 18 000 zleceń, a na liście czekały błędy i potrzebne zmiany. Klient postawił rozsądne pytanie: naprawiać to, co jest, czy wyrzucić wszystko i zacząć od początku?
Najpierw analiza, potem decyzja
Nie dało się uczciwie odpowiedzieć po krótkiej rozmowie. Zaproponowałem więc osobny, czterodniowy audyt. Sprawdziłem kod, bazę danych i każde z 21 oczekiwań. Klient dostał pisemny raport: co można zachować, co trzeba zmienić, ile pracy wymaga każdy punkt i jakie ryzyko niesie dalszy rozwój.
Wniosek był prosty: nie budować od nowa. Stary system miał swoje słabości, ale jego dane i działająca część ekranu były zbyt wartościowe, by za ich ponowne tworzenie płacić drugi raz.
Naprawa bez rewolucji na stanowiskach pracy
Wymieniłem niewidoczną dla pracowników część systemu, zachowując znany im ekran i sposób pracy. Dzięki temu firma dostała bezpieczniejszą podstawę do rozwoju, ale nie musiała szkolić zespołu ani zmieniać nawyków z dnia na dzień.
W ramach ustalonego zakresu między innymi:
- naprawiłem zgłoszone błędy i usunąłem nieużywane elementy,
- przywróciłem szybkie wyszukiwanie klienta po telefonie lub nazwisku,
- dodałem bezpieczne zmiany wielu cen naraz wraz z podglądem przed zatwierdzeniem,
- uprościłem drukowanie wielu zamówień,
- uporządkowałem role pracowników i dostęp do danych,
- uniezależniłem logowanie od starego dostawcy zewnętrznego.
Przeniesienie bez postoju
Nowa część systemu powstała obok starej. Dopiero po sprawdzeniu jej na tych samych danych przełączyłem ruch, a poprzednią wersję pozostawiłem przez 72 godziny jako drogę powrotu. Sama zmiana zajęła około 15 minut i odbyła się poza godzinami pracy.
Nie było potrzeby ręcznego przepisywania danych ani zatrzymywania firmy na dzień. Pracownicy wrócili do tego samego adresu i znajomego widoku.
Rezultat
- 21 z 21 uzgodnionych punktów zostało wykonanych.
- Wydruk zlecenia skrócił się z około 15 sekund do mniej niż sekundy.
- Dotychczasowy ekran pozostał bez zmian, mimo wymiany jego zaplecza.
- Klient odzyskał kontrolę nad kontami użytkowników i dalszym rozwojem systemu.
- Kopie danych były wykonywane przed każdą zmianą wdrożeniową.
- Po odbiorze klient zlecił kolejne prace, w tym przeprowadzkę na nowy serwer.
Co było ważniejsze od samego kodu
Największą oszczędnością nie było napisanie nowej części szybciej. Była nią decyzja, czego nie przepisywać. Zachowanie działającego ekranu ograniczyło koszt, ryzyko i zamieszanie po stronie pracowników.
Klient otrzymał pełny zakres na piśmie, stałą cenę wdrożenia i przeniesienie praw do wykonanych prac. Przy niejednoznacznych decyzjach pytałem właściciela, zamiast ukrywać założenia w kodzie.
Dla zainteresowanych technicznie
Nowe zaplecze powstało w Node.js i Express, z zachowaniem dotychczasowego sposobu wymiany danych ze starym ekranem React. Dane pozostały w MySQL. Logowanie zostało oparte na hasłach przechowywanych w bezpiecznej postaci i podpisywanych sesjach. Połączenie z systemem zabezpiecza HTTPS z automatycznie odnawianym certyfikatem.
Ze względu na umowę o zachowaniu poufności pomijam nazwę firmy, lokalizację, dane pracowników i klientów oraz szczegóły infrastruktury. Podane liczby pochodzą z zakresu umowy i danych systemu.