Wielu menedżerów uważa, że rozwój systemu ERP polega na dopisywaniu kolejnych funkcji. W praktyce najlepsze wdrożenia to te, w których potrafimy odchudzić system. Im więcej autorskiego kodu, tym droższe przyszłe migracje, trudniejsze utrzymanie i większe ryzyko, że nowa osoba w zespole popełni kosztowny błąd.
Oto historia z mojej praktyki, która idealnie pokazuje, jak pozorne „łatki” w kodzie paraliżują pracę magazynu i generują ukryty dług technologiczny.
Objaw: Podwójna praca i znikające koszyki
Zgłosił się do mnie klient z problemem przy wysyłkach zagranicznych do USA. Choć korzystał ze standardowej integracji z przewoźnikiem w Odoo Enterprise, cały proces był usiany ręcznymi i uciążliwymi procedurami:
- Po stronie klienta (e-Commerce): Podczas składania zamówienia adres był weryfikowany w tle, po czym kupujący musiał z listy wybrać „poprawną, zwalidowaną” wersję. Błąd w skrypcie sprawiał jednak, że koszyk potrafił się nagle zresetować, zmuszając klienta do ponownego wybierania produktów.
- Po stronie pracownika (Magazyn): Na karcie kontrahenta (
res.partner) dodano wielki przycisk „Waliduj adres”. Magazynier przed wysłaniem paczki musiał ręcznie kliknąć przycisk, który wysyłał zapytanie do zewnętrznego serwisu.
Z punktu widzenia zarządzania procesami to prosta droga do katastrofy:
Ręczna praca w ERP to proszenie się o błąd. Nowy pracownik nie domyśli się, że musi kliknąć ukryty przycisk. Doświadczony pracownik w pośpiechu lub przed końcem zmiany po prostu o nim zapomni. Efekt? Paczka wysłana pod błędny adres na drugi koniec świata.
Śledztwo: Leczenie objawów zamiast przyczyny
Pierwotne zlecenie od klienta brzmiało prosto: „Przycisk do walidacji przestał działać, trzeba go naprawić".
Szybka weryfikacja wykazała, że zewnętrzny serwis używany przez przycisk wyłączył stare API (zostało wycofane). Mógłbym po prostu przepisać kod na nową wersję REST i wystawić fakturę. Coś mi jednak nie pasowało — przecież fabryczny moduł przewoźnika w Odoo sam w sobie posiada wbudowaną walidację adresów. Po co więc ktoś dokleił ręczny przycisk i dodatkowy check w koszyku?
Zacząłem przeglądać autorskie moduły rozszerzające logikę wydań z magazynu (stock.picking). I wtedy znalazłem źródło problemu.
Rozwiązanie zagadki ukryte w kodzie:
- Poprzedni deweloper napisał moduł rozszerzający logikę magazynową, ale zupełnie zignorował obsługę wyjątków (API Exceptions) zwrotnych z serwisu przewoźnika.
- Gdy API przewoźnika zgłaszało problem z adresem, kod po prostu "udawał", że nic się nie stało i pomijał błąd.
- Ponieważ paczki wychodziły z błędnymi adresami, zamiast naprawić ten jeden wyjątek w kodzie, poprzedni zespół zaczął dobudowywać „protezy": osobny przycisk dla magazyniera, zewnętrzną usługę walidacji i dodatkowe ekrany w sklepie.
Rozwiązanie: Mniej kodu = Sprawniejszy biznes
Zamiast pisać kolejne linie kodu i podłączać nowy serwis walidacyjny, wykonałem dokładną refaktoryzację:
- Naprawiłem obsługę błędów w module magazynowym (
stock.picking), przywracając natywną komunikację z API przewoźnika. - Usunąłem sztuczne walidatory z formularza klienta i koszyka e-Commerce.
- Usunąłem zbędny przycisk i integrację z zewnętrznym serwisem.
Efekty dla zarządu i zespołu:
- Eliminacja błędu ludzkiego: Magazynier nie musi o niczym pamiętać. System automatycznie blokuje etykietę i informuje o błędzie adresu przy próbie zatwierdzenia wydania.
- Szybsza obsługa sklepu: Klient nie jest gnębiony pop-upami z przeładowaniem adresu, a koszyk przestał czyścić zawartość.
- Łatwiejsza i tańsza migracja Odoo: Usunięcie kilkuset linii autorskiego kodu oznacza mniej konfliktów przy przejściu na nowszą wersję Odoo.
- Niższy koszt utrzymania: Mniej kodu to mniej miejsc, w których cokolwiek może się zepsuć.
Lekcja dla kadry zarządzającej
Gdy Twój zespół zgłasza, że „trzeba coś dorobić w systemie", upewnij się, czy nie próbuje w ten sposób obudować architektonicznego długu technologicznego. Rzetelny inżynier nie szuka okazji do napisania setek nowych linii kodu — szuka sposobu na to, by proces działał jak najprościej, przy minimalnej ilości zmiennych.
Twój system Odoo wymaga uporządkowania?
Często drobny błąd w kodzie generuje godziny niepotrzebnej, ręcznej pracy w biurze i magazynie.
Umów konsultację. Przeprowadzimy audyt Twoich procesów w Odoo i wskażemy, jak uprościć system oraz obniżyć koszty jego utrzymania.