Zadania
- Zastosowanie skalowalnych narzędzi: Wdrożenie systemu w różnych lokalizacjach terminalowych z uwzględnieniem konfiguracji i potrzeb operacyjnych w zależności od wielkości oraz specyfiki obiektów.
- Automatyzacja procesów: Wdrożenie funkcji automatycznego rejestrowania i monitorowania ruchu pojazdów za pomocą analizy wideo oraz przypisywanie miejsc parkingowych.
- Rozwój systemu w oparciu o najnowsze technologie: Zastosowanie najnowszych wersji bibliotek i frameworków, zapewniających bezpieczeństwo, wydajność oraz długoterminowe wsparcie.
- Redukcja ręcznego wprowadzania danych: Minimalizacja błędów ludzkich poprzez automatyczne importowanie danych o transportach z systemów zewnętrznych oraz generowanie raportów w czasie rzeczywistym.
- Intuicyjny i skalowalny UX/UI: Zaprojektowanie aplikacji, która będzie prosta w obsłudze dla użytkowników z różnym poziomem zaawansowania technologicznego przy uwzględnieniu różnorodnych ról operacyjnych w terminalach.
- Integracja: Płynna integracja nowych systemów z istniejącą infrastrukturą i narzędziami.
Realizacja
Projekt ten przejęliśmy od poprzedniego zespołu po około dwóch latach zawieszenia prac. W pierwszej kolejności naszym zadaniem było reaktywowanie istniejących elementów systemu. Proces ten obejmował:
- Aktualizację bibliotek i frameworków do najnowszych wersji, co pozwoliło na zapewnienie zgodności z aktualnymi standardami technologicznymi oraz zwiększenie bezpieczeństwa aplikacji.
- Przegląd i modernizację kodu w celu wyeliminowania przestarzałych rozwiązań i dostosowania projektu do dalszego rozwoju.
- Usunięcie zgłoszonych błędów: Analiza oraz naprawa błędów zgłoszonych przez użytkowników, które pojawiły się przed i w trakcie zawieszeniem projektu, co pozwoliło na przywrócenie pełnej funkcjonalności systemu.
Projekt podzieliliśmy na odrębne repozytoria, z których każde odpowiada za kluczowy komponent systemu. Taki podział umożliwia łatwiejsze zarządzanie kodem, niezależny rozwój poszczególnych modułów oraz efektywniejszą kontrolę wersji.
Każdy z członków naszego zespołu ma jasno zdefiniowaną rolę, ale dzięki ścisłej współpracy i podziałowi odpowiedzialności możliwe było skuteczne integrowanie wszystkich komponentów systemu. Zespół scrumowy pracuje w cyklach dwutygodniowych, co pozwala na regularne dostarczanie wartościowych funkcjonalności oraz sprawne reagowanie na pojawiające się wyzwania.
W ramach projektu szczególny nacisk położyliśmy na:
- Koordynację integracji między repozytoriami: Zapewniliśmy płynne połączenia między aplikacją Yard Management a edytorem Yard & Terminal Editor w celu synchronizacji danych o terminalach, bramach i miejscach parkingowych.
- Testy automatyczne i CI/CD: Każde repozytorium objęliśmy pełnym procesem testowania automatycznego, co pozwoliło na szybkie wykrywanie błędów i zapewniło stabilność rozwiązań wdrażanych do środowiska produkcyjnego.
- Modularność architektury: Każdy z komponentów zaprojektowaliśmy w sposób umożliwiający jego niezależny rozwój i łatwe wdrażanie zmian, co szczególnie istotne przy integracji z zewnętrznymi systemami IoT oraz analityką wideo.
Takie podejście pozwoliło nie tylko na reaktywację projektu, lecz także na jego rozwój o nowe funkcjonalności, które znacząco zwiększyły efektywność operacji terminalowych. Odpowiednio zorganizowana struktura zespołu, w połączeniu z jasno określonym zakresem odpowiedzialności, zapewniła skuteczną realizację zadań oraz dostarczanie rozwiązań wysokiej jakości.
Zespół
- 1x frontend developer (j-labs),
- 1x backend developer (j-labs),
- 2x backend developer (klient),
- 1x QA (klient),
- 1x Product Owner (klient).