W skrócie
W ramach współpracy z OOH.pl przejęliśmy system do wynajmu powierzchni reklamowej od poprzedniego dostawcy oprogramowania, przeprowadziliśmy gruntowną analizę procesów biznesowych i na podstawie zebranych danych zbudowaliśmy nowy, dedykowany ERP do zarządzania nośnikami reklamy zewnętrznej.
Pierwszy kontakt
Sposoby realizacji projektów IT można ogólnie podzielić na dwie grupy. Pierwsza – oparta na entuzjazmie. Dużo pomysłów realizowanych naraz, ekscytacja samym procesem, słaba wizja efektu końcowego. Druga – oparta na doświadczeniu. Polega na zbieraniu danych, badaniu procesów biznesowych, skupieniu się na efektach.
Problem w przypadku pierwszego podejścia jest taki, że ten rzekomy entuzjazm nagle się kończy w najbardziej niespodziewanym momencie. W praktyce może to wyglądać następująco. Klient zgłasza kolejną funkcjonalność, zespół developerski ją dostarcza, ale efekt końcowy nie jest satysfakcjonujący: nie da się korzystać z nowo dostarczonych funkcjonalności.
W początkowej fazie projektu entuzjazm wybacza powierzchowną analizę i błędy przy projektowaniu. Umożliwia szybkie dostarczenie nowych funkcjonalności. Natomiast niespodziewanie przychodzi moment, w którym dalszy rozwój nie jest możliwy. Nowe ficzery nie działają zgodnie z oczekiwaniami. System zacina się. Zespół od planowania kampanii marketingowych przesiada się z powrotem do Excela.
Akurat w takiej sytuacji znalazł się nasz klient. Skontaktował się z nami i zaplanowaliśmy szereg spotkań, aby omówić wyzwania, które przed nim stoją.

Reklama zewnętrzna
Biznesem naszego klienta jest pośrednictwo w sprzedaży powierzchni reklamowych. Specjalizuje się w miejscowościach do 200 tys. mieszkańców. Posiada również własne nośniki reklamowe na terenie całego kraju. Rozwija platformę online do zarządzania bazą nośników i kampaniami, tworzoną z myślą o łączeniu reklamodawców z właścicielami nośników.
Na pierwszy rzut oka procesy są zrozumiałe. Właściciel platformy zbiera informacje o dostępnych nośnikach, dział handlowy zajmuje się pozyskiwaniem klientów, osoby od planowania kampanii analizują wymagania i dobierają pod nią konkretne nośniki reklamowe.
W praktyce zaś zespół każdego dnia napotyka spore wyzwania. Oto niektóre z nich:
- Brak motywacji do integracji z platformą po stronie właścicieli nośników
- Niespodziewane błędy systemu przy imporcie/eksporcie danych
- Skomplikowany proces rezerwacji nośników

Gruntowna analiza
Klient nie posiadał ekspertyzy w sprawach technicznych. Oczekiwał szczerej rozmowy z naszym zespołem. Każde spotkanie przybliżało nas do zbudowania pełnego obrazu jego potrzeb.
Doszliśmy do wniosku, że celem klienta jest skrócenie czasu ofertowania. W tym momencie posiadał już własny system do ofertowania. Mimo to skontaktował się z nami, bo nie był w stanie osiągnąć pożądanych celów we współpracy z dotychczasowym dostawcą oprogramowania.
Ofertowanie w branży OOH to proces przygotowania i przedstawiania klientowi propozycji kampanii na nośnikach zewnętrznych, takich jak billboardy, citylighty, silverboardy czy erkany LED.
Zarząd firmy oraz najbardziej doświadczeni pracownicy mieli przekonanie, że system nie spełnia ich oczekiwań. My, jako Koncewicz Software House, przeprowadziliśmy analizę tego systemu pod kątem dostępnych funkcjonalności i tego, czy działają one zgodnie z założeniami. Otrzymaliśmy również dostęp do kodu źródłowego i struktury bazy danych.
Po przeprowadzonej analizie doszliśmy do następujących wniosków:
- Większość funkcjonalności nie jest wykorzystywana, a w pewnych przypadkach przeszkadza w procesie przygotowania oferty
- Pierwsza wersja systemu została zbudowana zgodnie z oczekiwaniami klienta, lecz wydanie kolejnych wersji spowodowało nagromadzenie długu technicznego, mocno ograniczającego dalszy rozwój projektu
- System używał dość starych technologii (Yii2, PHP 7.4, Bootstrap 4, jQuery), uniemożliwiających gruntowne zmiany w projekcie
- Z powodu słabo zaprojektowanego UI/UX występowało ryzyko wystawienia faktury klientowi jeszcze przed akceptacją oferty po jego stronie
- Skomplikowane zapytania bazodanowe w module rezerwacji nośników skutkowały wydłużonym czasem oczekiwania, sięgającym kilkudziesięciu sekund
Dostarczyliśmy klientowi powyższą analizę i zaproponowaliśmy własny plan działań.

Nasza propozycja
Zaproponowaliśmy klientowi dwie opcje:
- Przejmujemy obecny system, wycinamy z niego wszystkie nieużywane funkcjonalności, a pozostałe moduły doprowadzamy do stanu używalności
- Przejmujemy obecny system, rozpoczynamy budowę nowego z uwzględnieniem bolączek obecnego i migrujemy dane do nowego systemu
Nie skupiamy się wyłącznie na wytwarzaniu oprogramowania – stawiamy na długotrwałą współpracę. Dlatego w obu przypadkach zaproponowaliśmy przejęcie systemu pod naszą odpowiedzialność.
Na stronie Utrzymanie systemów IT można znaleźć więcej informacji o tym, jak podchodzimy do świadczenia usług wsparcia systemów informatycznych.
Klient miał obawy, czy poradzimy sobie z wyzwaniem, i chciał zostawić furtkę na wypadek, gdyby nasza współpraca nie przebiegała pomyślnie. Dlatego zaproponował następujące rozwiązanie:
- Stary system pozostaje w zarządzaniu firmy, która go stworzyła
- My, jako Koncewicz Software House, budujemy nowy system obok i synchronizujemy listę nośników – stary system zostaje źródłem prawdy o nośnikach
- Po udanym wdrożeniu i akceptacji po stronie klienta przejmujemy kontrolę również nad starym systemem
Plan ten był dość skomplikowany w realizacji, ale zgodziliśmy się na taką propozycję. Zdajemy sobie sprawę, jak ważne dla klienta jest zachowanie sprawności operacyjnej. Jeśli do osiągnięcia tego celu trzeba się trochę nagimnastykować – cóż, zróbmy to, bo zadowolony klient to nasz klient.
W efekcie końcowym ten plan udało się zrealizować. Stary system został przez nas przejęty, a zarządzanie nośnikami zmigrowaliśmy do nowego systemu. Zabezpieczyliśmy jego kopię zapasową i kilka miesięcy później został on wyłączony – po tym, jak nowy system w przeciągu kilku miesięcy udowodnił swoją sprawność.
Display
Ważnym elementem przy starcie nowego projektu jest nadanie mu konkretnej nazwy. Nazwa jest potrzebna w dokumentacji, adresie WWW, kodzie projektu itd. Skoro jest to system do zarządzania nośnikami oraz rezerwacjami powierzchni reklamowych, nadaliśmy mu nazwę Display.
W pierwszej wersji aplikacji skupiliśmy się na stworzeniu intuicyjnego mechanizmu ofertowania. To było główną bolączką klienta i ten problem przede wszystkim należało rozwiązać. Do realizacji tego celu nie wystarczy dobry UI/UX. Należy spojrzeć na wyzwanie kompleksowo, od warstwy frontendowej po zapytania do bazy danych.
Niespodziewanie zamykające się okna, długi czas oczekiwania na reakcję aplikacji, przyciski umieszczone w złym miejscu – to wszystko mocno wpływa na doświadczenie użytkownika. Jedną z decyzji, którą podjęliśmy, by temu zapobiec, było dobranie gotowych komponentów UI. Wybraliśmy Shadcn, który posiada dobrze przemyślane komponenty, gotowe do użycia w dedykowanych systemach ERP.
Całość frontendu zbudowaliśmy w technologii VueJS i użyliśmy biblioteki InertiaJS, która służy do budowania płynnych interfejsów.

Ofertowanie
Klient pragnął sprawnego narzędzia do ofertowania swoich kontrahentów. Potrzebował systemu, który się nie zacina, jest intuicyjny, działa błyskawicznie i jest przewidywalny.
Wraz z klientem przeszliśmy długą ścieżkę, by uporządkować doświadczenie, które u niego już istniało. Nasz zespół zdobył wiedzę na temat funkcjonowania branży OOH. Bazując na tym doświadczeniu, wydzieliliśmy kilka podstawowych encji, o które oparliśmy nowy system.
Oto obszary danych, które wydzieliliśmy w osobne encje:
- Client – kontrahent występujący w roli klienta
- Campaign – kampania, w ramach której przygotowywana jest oferta
- Salesman – osoba o cechach biznesowych, wydzielona do komunikacji z klientem
- Planner – osoba znająca się na technicznych cechach nośników, która we współpracy z działem sprzedaży przygotowuje ofertę
- Display – nośnik reklamy zewnętrznej
- Offer – propozycja ofertowa dla klienta
To podstawowe modele danych, które dopełniają się nawzajem bądź zależą jeden od drugiego. Są kręgosłupem całej aplikacji.

Podsumowanie
Zrealizowaliśmy płynny interfejs, dobrze przemyśleliśmy strukturę bazy danych, użyliśmy najnowocześniejszych technologii z zakresu web-developmentu. Wszystko po to, by osiągnąć postawiony przez klienta cel – generować więcej ofert. Można by było po prostu zrekrutować nowe osoby do działu planowania. Jednak efektywność pozostałaby na tym samym poziomie. Wybraliśmy ścieżkę przewagi technologicznej, co przełożyło się na wzrost efektywności.
Efekt naszej współpracy z OOH.pl świetnie prezentuje się na poniższym grafiku, gdzie na niebiesko przedstawiono liczbę ofert wystawianych miesięcznie w starym systemie, a na czerwono – w nowym.
