Konflikty przy synchronizacji danych

Splątany sznur na jasnym tle

Po kilku miesiącach pracy dwa zintegrowane systemy zawsze zaczynają się różnić. Pytanie nie brzmi „czy", tylko „jak szybko to zauważymy".

Skąd biorą się rozbieżności

  • operacja wykonana ręcznie w jednym systemie z pominięciem drugiego,
  • nieudana synchronizacja, której nikt nie zauważył,
  • zmiana w obu miejscach w tym samym czasie,
  • rekord usunięty w jednym systemie, obecny w drugim,
  • różnice w zaokrągleniach przy przeliczeniach.

Pierwsza pozycja jest najczęstsza i najmniej techniczna. Ktoś wydał towar bez dokumentu, ktoś inny poprawił cenę bezpośrednio w sklepie, bo „tak było szybciej". Integracja tego nie zobaczy i nie ma jak tego naprawić — to kwestia ustalenia, gdzie wprowadza się zmiany.

Wykrywanie

Cykliczne porównanie kluczowych wartości między systemami: liczby rekordów, sum kontrolnych, stanów magazynowych. Bez takiego porównania rozbieżność wychodzi dopiero przy inwentaryzacji.

Porównanie nie musi obejmować wszystkiego. Wystarczy zestaw danych, które naprawdę bolą: stany towarów sprzedawanych na bieżąco, ceny w kanałach zewnętrznych, statusy zamówień z ostatnich dni. Pełne porównanie katalogu warto uruchamiać rzadziej i poza godzinami pracy.

Kiedy uzgadniać

Porównanie warto uruchamiać wtedy, gdy oba systemy są w spoczynku — zwykle w nocy albo wcześnie rano. Zestawienie zrobione w środku dnia pokaże różnice wynikające wyłącznie z trwających operacji i wygeneruje fałszywe sygnały. Jeśli firma pracuje na dwie zmiany, trzeba znaleźć okno albo świadomie pomijać rekordy zmienione w ostatnich minutach.

Zestawienie różnic

Powinno pokazywać, co się różni i od kiedy. Sama informacja, że stany się nie zgadzają, nie prowadzi do przyczyny.

Użyteczne zestawienie zawiera obie wartości obok siebie, moment ostatniej udanej wymiany dla danego rekordu i wskazanie, który system uznaliśmy za nadrzędny. Wtedy decyzja zajmuje chwilę zamiast otwierania dwóch programów i porównywania ręcznie.

Rozstrzyganie automatyczne

Możliwe tam, gdzie istnieje jednoznaczne źródło prawdy. Przy stanach magazynowych zwykle wygrywa system magazynowy — ale to musi być decyzja zapisana, nie domyślna.

Warto ją podejmować przy okazji ustalania zakresu wymiany w obie strony, bo to ta sama decyzja opisana z innej perspektywy. Automat powinien też zostawiać ślad: nadpisanie wartości bez zapisu, co i dlaczego zmieniono, zamienia jeden problem na drugi.

Rozbieżności groszowe

Przy przeliczeniach walutowych i rabatach różnice na ostatnim miejscu są nieuniknione. Warto ustalić próg tolerancji, inaczej raport różnic będzie pełen szumu.

Zasada jest prosta: raport, który zawsze coś pokazuje, przestaje być czytany. Lepiej wyłapywać mniej i reagować, niż wyłapywać wszystko i to ignorować.

Próg powinien wynikać z tego, co jest do zaakceptowania w rozliczeniu, a nie z tego, ile pozycji chcemy zobaczyć na liście.

Czego to wymaga

Dostępu do danych po obu stronach w formie umożliwiającej porównanie, wspólnego identyfikatora towaru oraz osoby, która co jakiś czas przejrzy wynik. Samo monitorowanie procesu tu nie wystarcza — proces może zgłaszać sukces, a dane i tak się rozjadą. Sprawdza się skutek, nie przebieg.