Problema
OceanSMART e un ERP de container shipping. Echipele globale de logistică îl folosesc ca să planifice mișcarea vaselor și containerelor între porturi și terminale, să reconcilieze actele, și să țină operațiunile în mișcare când inevitabil ceva scapă. E software boring-but-critical: dacă pică, navele de containere nu pleacă la timp și marfa nu ajunge în port.
Până în 2022 stack-ul frontend era outdated cu doi ani. View-urile de tracking erau în urma nevoilor reale ale operatorilor. Upgrade-ul de stack și livrarea de feature-uri noi de tracking trebuiau să se întâmple în paralel, fără să oprim vasele.
Abordare
- Refactor in-place, nu rewrite. Upgrade-ul de stack a intrat incremental sub aceeași suprafață de produs, ca operatorii să continue să folosească tool-ul în timp ce motorul era schimbat sub ei.
- Livrăm feature-uri de tracking alături de upgrade. Produsul nu voia să aștepte șase luni să se termine modernizarea înainte să vadă valoare nouă. Am secvențiat munca ca fiecare sprint să livreze simultan îmbunătățiri vizibile pentru operatori și îmbunătățiri invizibile de stack.
- Postură boring-but-critical. Software-ul de logistică trebuie să fie corect înainte să fie deștept. Majoritatea muncii a fost să ne asigurăm că datele corecte apar pe ecranul corect la momentul corect, apoi să facem interacțiunea să se simtă rapidă.
Rezultat
- Stack-ul frontend a ajuns la zi, fără rewrite complet și fără să oprim roadmap-ul de produs.
- Tracking-ul de vase și containere a devenit mai util pentru operatorii care folosesc OceanSMART zi de zi.
- Vizibilitatea operațională real-time s-a îmbunătățit pentru fluxurile din porturi și terminale din platformă.
Note de stack
JavaScript / TypeScript pe frontend, servicii Node.js, GraphQL pentru API-urile interne, MongoDB pentru persistență. Partea grea n-a fost niciodată codul. A fost să înțelegi cum folosesc operatorii globali produsul într-o zi proastă, și să te asiguri că tooling-ul se potrivește cu acea realitate.