Wyobraź sobie, że przeprowadzasz się do nowego mieszkania i chcesz zabrać ze sobą wszystkie wspomnienia z poprzedniego: kto u Ciebie bywał, kiedy, na jak długo, kto wrócił, kto się obraził. Tylko że w nowym mieszkaniu szafki mają inne wymiary i niektóre z Twoich pudełek zwyczajnie się nie mieszczą. Tak właśnie wygląda przeprowadzka historii sprzedaży z jednego systemu do drugiego.
W jednym z wdrożeń dla firmy z branży produkcyjnej stanęliśmy przed dokładnie takim wyzwaniem. Przez kilka lat klient gromadził w poprzednim systemie sprzedażowym tysiące zapytań ofertowych i zamówień. Każde z nich opisane było jedną z ponad dwudziestu różnych etykiet: „w przygotowaniu", „wysłana", „odrzucona — za drogo", „odrzucona — zbyt długi termin", „w realizacji", „zamknięta". Tę pełną mapę zachowań klientów chcieliśmy przenieść do Odoo.
I tu zaczęły się schody. Okazało się, że Odoo — system uporządkowany jak biurko niemieckiego inżyniera — nie chce ot tak przyjąć cudzych etykiet. Ma własne, znacznie krótsze listy stanów i pilnuje, żeby każda zmiana statusu była przemyślana, a nie wpisana z palca. Co więcej, każda przeniesiona oferta dostawała datę „dzisiejszą" zamiast historycznej — tak jakby cała Twoja korespondencja sprzed pięciu lat była nagle wysłana wczoraj.
Doszły dwa kolejne wyzwania. Po pierwsze, część ofert była wystawiana w walutach obcych — euro, dolarze, funcie. Żeby raporty trzymały się prawdy, każdą z nich trzeba było wycenić po kursie z tego konkretnego dnia, w którym oferta powstała — a nie po kursie z dnia importu. Cofnęliśmy się więc w czasie i zaciągnęliśmy do Odoo całą tabelę historycznych kursów walut, dzień po dniu, rok po roku. Po drugie, w starym systemie pojedyncza pozycja sprzedażowa była jednym zlepionym zapisem — produkt, jego wariant, cena, rabat i jednostka miary trzymały się razem jak warzywa w jednym worku. W Odoo każdy z tych elementów żyje osobno i ma własne miejsce. Trzeba było rozplątać starą logikę i przyporządkować każdy fragment tam, gdzie nowy system się go spodziewa.
I jeszcze jedno — bardzo ludzkie. Wśród historycznych ofert pojawiali się sprzedawcy, których w firmie nie ma już od lat. Jedni zmienili pracę, inni odeszli dawno i nawet się o nich nie pamięta — ale ich podpis pod ofertą sprzed pięciu lat wciąż jest częścią historii. Można by im wszystkim założyć konta „dla porządku", ale Odoo rozlicza się od użytkownika: każde aktywne konto to realny, comiesięczny koszt subskrypcji. Klient miał wykupiony pakiet z konkretnym limitem użytkowników i nie zamierzał go rozszerzać tylko po to, żeby przechowywać nazwiska osób, które dawno opuściły firmę. Trzeba było znaleźć sposób, żeby zachować informację „kto to wystawił" — bez płacenia za nieobecnych.
Rozwiązanie nie polegało na wymuszaniu. Zamiast naginać Odoo do logiki starego systemu, pozwoliliśmy mu pozostać sobą — a logikę starego systemu zapisaliśmy obok, w sposób, który Odoo rozumie. Historyczną datę umieściliśmy w dodatkowym polu. Ponad dwadzieścia etykiet zwinęliśmy do trzech podstawowych stanów Odoo. Powód odmowy i kanał, którym klient trafił do firmy, zachowaliśmy jako oznaczenia opisujące każdą ofertę. Nic nie zginęło — wszystko zostało tylko inaczej posegregowane.
Efekt? Pamięć handlowa klienta — kilka lat decyzji zakupowych, odmów i sukcesów — jest dziś w Odoo. Przy okazji udało się odsiać ponad dwa tysiące „ofert duchów" — testowych, pomyłkowych, niedokończonych — które w starym systemie zaśmiecały statystyki latami.
Czego nas to nauczyło. Migracja danych to nie kserowanie. Najgorsze, co można zrobić, to próbować skopiować jeden system do drugiego dokładnie tak, jak wyglądał. Najlepsze — zatrzymać się, zrozumieć, co tak naprawdę chcemy zapamiętać, i opowiedzieć tę samą historię językiem nowego systemu.