Platforma promocji handlowych
Platforma mikroserwisowa, która planuje promocje w sieciach handlowych, budżetuje wydatki i księguje je. Przejęta od zewnętrznego zespołu bez przekazania wiedzy i uporządkowana.
- repozytoriów, z czego około dziesięciu to serwisy back-endowe
- 16
Problem
Platforma planuje promocje produktów producenta w sieciach handlowych: kto prowadzi jaką akcję, z jakim mechanizmem, w których sklepach, z czyjego budżetu i jak wynikający z niej koszt jest rozliczany w księgowości. Zbudował ją zewnętrzny zespół programistów, który już przy niej nie pracuje. Nie było przekazania wiedzy.
Właściciele biznesowi i product manager potrzebowali odpowiedzi na pytania o produkcyjny system finansowy (co robi, gdzie są zapisane reguły, co i jak trafia do księgowości), a nikt w firmie nie potrafił ich udzielić.
Co zrobiłem
Utrzymywałem system w działaniu i wdrażałem zmiany: funkcje front-endowe w interfejsie w React i TypeScript. Wśród nich jest pobieranie raportu dla mechanizmu rabatowego w dwóch kanałach klientów oraz zmiany terminologii obejmujące cały obszar funkcjonalny.
Większą częścią pracy była inżynieria wsteczna systemu, z użyciem narzędzi agentowych w procesie ze sprawdzanymi cytatami, do postaci dokumentacji referencyjnej, z której dziś korzystają product manager i właściciele biznesowi: mapa modułów, logika rozliczeń księgowych z macierzą pól oraz analiza bazy danych dla działu controllingu.
Decyzja i jej koszt
Ustalenia trafiły do product ownera i właścicieli biznesowych jako otwarte pytania, a nie lista defektów. Każdy punkt zawiera pytanie zamiast werdyktu, bo decyzja zewnętrznego zespołu, której powodów nie znam, nie jest znalezionym błędem.
Cytaty sprawiają, że dokumenty powstają wolniej i czyta się je mniej przyjemnie. W dokumencie, który firma traktuje jako źródło prawdy o systemie finansowym, ten wybór jest oczywisty: czytelnik, który wątpi w jakieś zdanie, może je sprawdzić w dziesięć sekund.
Co zrobiłbym inaczej
Mój produkcyjny wkład jest tu po stronie React i TypeScript; moja praca z Javą polegała na czytaniu kodu na tyle dokładnie, żeby opisać, jak się zachowuje. Gdybym to ja miał zmieniać platformę, najpierw poprosiłbym biznes o rozstrzygnięcie otwartych pytań, bo każda odpowiedź decyduje, czy dane ustalenie to defekt, czy zamierzony projekt, i dopiero potem zacząłbym zmieniać kod.