Wszystkie wybrane projekty

SHOPTIMISED / PLATFORMA I LUDZIE

Przestrzeń do skalowania.
Warunki do rozwoju.

Troje inżynierów. Trzy niezależnie wdrażane usługi. Starannie przeprowadzona migracja i większa odpowiedzialność po stronie zespołu.

Moja rolaEngineering Manager / Principal Engineer / CTO piszący kod
Zespół3 inżynierów, łącznie ze mną
RealizacjaOkoło 6 miesięcy
ObszarPlatforma, wdrożenia i ludzie

Uproszczony obraz podejścia, odtworzony na potrzeby tego studium przypadku.

Sytuacja

Platforma Shoptimised przetwarza feedy produktowe dla firm z branży e-commerce. Wraz z jej rozwojem architektura i sposób dostarczania zmian potrzebowały przestrzeni do dalszej ewolucji. Odpowiadałem za technologię, sposób jej rozwijania i ludzi wykonujących tę pracę.

Moja rola łączy zarządzanie zespołem inżynierskim, obowiązki Principal Engineera i pracę CTO, który sam pisze kod. Pracowałem z zespołem nad architekturą, implementacją i wdrożeniem produkcyjnym. Wspólnie z dwoma inżynierami przeprowadziłem w ciągu około sześciu miesięcy migrację ze sprzężonej aplikacji Laravel do trzech niezależnie wdrażanych usług.

Decyzje, które miały znaczenie

Zachować mocne strony zespołu

Pozostaliśmy przy Laravelu i wykorzystaliśmy wiedzę, którą zespół już posiadał. Zmiana architektoniczna koncentrowała się na wyraźniejszych granicach i niezależnych wdrożeniach. Dzięki temu mogliśmy modernizować platformę w praktyczny sposób, nadal dobrze ją rozumiejąc i potrafiąc nią zarządzać.

Zaplanować odwracalną migrację

Przez dwa tygodnie uruchamialiśmy równolegle nowy i dotychczasowy system. Testy obciążeniowe, feature flags i ścieżka powrotu ograniczały ryzyko przełączenia. Te działania pozwalały nam obserwować zachowanie nowego rozwiązania, zanim skierowaliśmy do niego cały ruch.

Wcześniej oddać głos inżynierom

Zacząłem angażować inżynierów już na etapie doprecyzowania wymagań i ustalania zakresu. Wprowadziliśmy mniejsze zadania, wspólne estymacje i jaśniejsze cele sprintów. Ludzie mogli współtworzyć podejście i rozumieć stojące za nim powody.

Jak pracowaliśmy razem

Równolegle z pracami nad platformą wspierałem Senior Developera w rozwoju do roli Leada. Analizowaliśmy realistyczne sytuacje związane z planowaniem i technologią, a pytania pomagały mu rozwijać samodzielny osąd.

Ten inżynier przejął później większą odpowiedzialność za planowanie i zaczął mentorować innych. Dla mnie to ważna część przywództwa: tworzenie warunków, w których ktoś inny może podejmować dobre decyzje i wspierać otaczających go ludzi.

Co się zmieniło

Dzienny wolumen przetwarzanych feedów wzrósł z około 20 000 do 35 000, czyli o 75%. Usługi można było wdrażać niezależnie, a czas wdrożenia skrócił się z około godziny do mniej więcej dwóch minut.

Zespół zyskał również wyraźniejszą odpowiedzialność za doprecyzowanie wymagań, planowanie i realizację. Architektura i rozwój zespołu wzajemnie się wspierały: mniejsze granice ułatwiały rozumienie zmian, a silniejsze poczucie odpowiedzialności pomagało te granice utrzymywać.

Co zabieram ze sobą

Najbardziej użyteczna architektura to taka, którą zespół potrafi zrozumieć, rozwijać i obsługiwać. Staram się jasno określać ważne granice, utrzymywać zmiany w rozsądnej skali i angażować ludzi, którzy będą później pracować z rezultatem.

POZNAJ INNĄ HISTORIĘ

Za każdą płatnością stoi człowiek.