Zamówienia pojawiają się w sklepie, ale nie docierają do systemu magazynowego. Konsultanci widzą potwierdzenia wysłane klientom, magazyn ma pustą listę, a ponowienie przesyłania wydaje się najprostszym rozwiązaniem. Problem w tym, że część wiadomości mogła już dotrzeć, tylko potwierdzenie nie wróciło. Kolejne kliknięcie może zwiększyć bałagan.
Ten hipotetyczny incydent dobrze pokazuje, po co zespołowi instrukcja działania. Nie zastąpi ona rozpoznania konkretnej awarii, ale wskazuje, kto decyduje, co najpierw zabezpieczyć, jak ocenić stan spraw i kiedy wolno wznowić automatyzację. Dzięki temu osoby po różnych stronach procesu nie muszą ustalać wszystkiego od początku pod presją czasu.
Instrukcja powinna pasować do rzeczywistej integracji. Inaczej wygląda obsługa brakujących numerów przesyłek, a inaczej przepływ dokumentów finansowych lub wyników pracy modelu AI. Poniższy schemat to punkt wyjścia do rozmowy z właścicielami danego procesu, a nie gotowa procedura dla każdej firmy.
Opisz, jak rozpoznać problem i komu go przekazać
Zacznijcie od objawów widocznych dla ludzi: zamówienie nie pojawia się w magazynie, status nie zmienia się przez uzgodniony czas albo zespół dostaje komunikat o błędzie. Przy każdym objawie zapiszcie, gdzie można sprawdzić szczegóły oraz do kogo kierować zgłoszenie. Nazwa narzędzia bez instrukcji dostępu nie pomoże osobie, która pierwszy raz pełni zastępstwo.
Wyznaczcie właściciela incydentu i osobę zastępującą. Ktoś powinien koordynować ocenę sytuacji, zapisywać decyzje i przekazywać aktualizacje zainteresowanym zespołom. Właściciel nie musi sam naprawiać każdej części systemu. Powinien jednak wiedzieć, kogo włączyć do rozmowy i kto może podjąć decyzję o wstrzymaniu przepływu.
Ustalcie także moment eskalacji do dostawcy. Przy zgłoszeniu przydaje się czas zdarzenia, identyfikator operacji i opis obserwowanego wyniku. Nie wysyłajcie hasła, tokenu ani całej zawartości dokumentów tylko po to, by szybciej rozpocząć rozmowę. Zakres danych diagnostycznych powinien być uzgodniony i adekwatny do problemu.
W artykule o monitorowaniu automatyzacji i obsłudze błędów opisujemy sygnały, które pomagają wykryć problem. Instrukcja incydentu zaczyna się tam, gdzie pojawia się pytanie, co zespół ma zrobić z takim sygnałem.
Pamiętajcie o osobach, które zgłaszają problem bez dostępu do panelu technicznego. Wystarczy im prosty kanał kontaktu oraz wskazówka, jakie informacje są pomocne: nazwa procesu, godzina i identyfikator sprawy. Odpowiedź powinna potwierdzać przyjęcie zgłoszenia i wskazywać, gdzie pojawi się kolejna aktualizacja.
Ogranicz skutki, zanim zaczniesz ponawiać
W niektórych sytuacjach potrzebne będzie wstrzymanie dalszego wysyłania zdarzeń lub wyłączenie wybranej automatyzacji. W innych zatrzymanie mogłoby pogorszyć sytuację. Decyzję trzeba oprzeć na tym, jak działa konkretny przepływ i gdzie trafiają dane w czasie przerwy. Przed wdrożeniem instrukcji sprawdźcie, czy wskazany przełącznik rzeczywiście zatrzymuje właściwy etap.
Sprawdźcie, gdzie znajdują się sprawy oczekujące, kto ma do nich dostęp i czy system zachowuje ich kolejność. Jeśli część zleceń można obsłużyć ręcznie, zapiszcie, kto to robi oraz w jaki sposób oznacza wykonane działania. Bez takiego oznaczenia automatyzacja po wznowieniu może spróbować wykonać tę samą czynność ponownie.
Nie zakładajcie, że brak odpowiedzi oznacza brak wykonania. Zdalny system mógł przyjąć żądanie, zanim połączenie zostało przerwane. W takim przypadku stan sprawy pozostaje nieznany do czasu sprawdzenia po stronie odbiorcy. Osobna lista takich operacji pomaga uniknąć mylenia ich z przypadkami, które na pewno nie zostały wykonane. Jeśli przyczyną oczekiwania jest ograniczenie dostawcy, potrzebne są też reguły kolejki. Opisujemy je w artykule o limitach usług zewnętrznych.
W integracjach API i webhookach ten sam proces może obejmować kilka potwierdzeń i kolejne systemy. Dlatego instrukcja powinna opisywać ich granice: przyjęcie wiadomości przez pierwszy system nie musi oznaczać zakończenia całej sprawy.
Jeśli awaria obejmuje utratę danych, powrót wymaga osobnej oceny możliwości odtworzenia. Sprawdź, co powinien obejmować plan kopii zapasowej i test przywrócenia.
Uzgodnij stan spraw przed wznowieniem
Najpierw określcie zakres incydentu: od kiedy przepływ działał nieprawidłowo, jakie rodzaje spraw obejmuje i jakie informacje są dostępne. Można porównać identyfikatory zleceń w systemie źródłowym i docelowym, a rozbieżności przekazać do wyjaśnienia. Warto zachować również dane o operacjach wykonanych ręcznie, jeśli były częścią procedury awaryjnej.
Podzielcie sprawy według ustalonego stanu: potwierdzone po stronie odbiorcy, na pewno niewysłane oraz wymagające sprawdzenia. Dla każdej grupy potrzebna jest inna decyzja. Operacji o nieznanym wyniku nie należy automatycznie traktować jak niewykonanej tylko dlatego, że po stronie nadawcy widać błąd połączenia.
Idempotencja to właściwość operacji, dzięki której odpowiednio zaprojektowane ponowienie nie powoduje kolejnego niezamierzonego skutku. Dokumentacja Stripe opisuje własny mechanizm kluczy idempotencji dla żądań do jego API. To przykład konkretnej usługi. Inni dostawcy mogą stosować inne zasady, więc przed użyciem trzeba sprawdzić ich dokumentację i warunki działania.
Ważny jest też efekt uboczny. Nawet jeśli rekord zamówienia nie zostanie utworzony drugi raz, powiadomienie albo zlecenie zewnętrzne może wymagać oddzielnej kontroli. Zespół powinien wiedzieć, które etapy mają zabezpieczenia przed ponowieniem, a które wymagają ręcznego uzgodnienia.
Przygotuj prostą kartę incydentu
W stresie łatwo przeoczyć informację, która później pomoże ustalić kolejność zdarzeń. Karta incydentu może zawierać czas zauważenia problemu, nazwę procesu, osobę prowadzącą, obecnie znany wpływ oraz listę podjętych decyzji. Wpisujcie zarówno wynik sprawdzenia, jak i informację, że czegoś nie udało się jeszcze ustalić.
Jeżeli pracują dwa zespoły, umówcie jedno miejsce aktualizacji stanu. Równoległe notatki bywają potrzebne, lecz decyzja o wznowieniu powinna opierać się na wspólnej, aktualnej informacji. Ustalcie również częstotliwość komunikatów dostosowaną do znaczenia procesu. Kolejna aktualizacja może uczciwie brzmieć: nadal sprawdzamy zakres i wrócimy z informacją o uzgodnionej porze.
Po zakończeniu incydentu karta pomaga odtworzyć przebieg, ale nie powinna stać się niekontrolowanym archiwum danych klientów. Zapisujcie identyfikatory i informacje potrzebne do uzgodnienia, a dostępne szczegóły przechowujcie zgodnie z zasadami organizacji. Ustalcie, kto może przeczytać dokument i kiedy ma zostać usunięty albo przeniesiony do odpowiedniego rejestru.
Sprawdź procedurę na bezpiecznym przykładzie
Ćwiczenie nie wymaga wyłączenia prawdziwej integracji. Przygotujcie testowe dane i scenariusz, w którym odpowiedź z systemu odbiorcy jest nieznana. Poproście uczestników o wskazanie, gdzie sprawdzą stan, kto zatwierdzi wstrzymanie oraz jak oznaczą sprawy wykonane ręcznie. Następnie porównajcie odpowiedzi z działaniem narzędzi i rzeczywistymi uprawnieniami.
Osoba spoza zespołu projektowego powinna potrafić odnaleźć pierwszy krok bez telefonowania do autora instrukcji. Jeżeli nie zna skrótu użytego w dokumencie, wyjaśnijcie go. Jeżeli odnośnik prowadzi do panelu wymagającego niedostępnego konta, ustalcie zastępstwo i poprawcie procedurę. Taki test jest szczególnie przydatny przed zmianą dyżurów lub przekazaniem utrzymania.
Na zakończenie prześledźcie przykładowe wznowienie. Sprawdźcie, czy zespół potrafi odróżnić żądanie na pewno niewykonane od takiego, którego stan wymaga potwierdzenia. Przygotujcie kryterium zakończenia: na przykład uzgodniona lista spraw oraz sprawdzony wynik kilku reprezentatywnych operacji, jeśli ich dobór odpowiada ryzyku procesu.
Ćwiczenie ma swoje granice. Symulacja może nie odtworzyć obciążenia, zachowania usług zewnętrznych ani wszystkich równoczesnych zmian danych. Zapiszcie zakres próby i brakujące elementy. Nie przedstawiajcie jej wyniku jako dowodu, że każda przyszła awaria zostanie obsłużona w taki sam sposób.
Zaplanuj ręczną obsługę na czas awarii
Procedura awaryjna powinna wskazywać najmniejszy zakres pracy potrzebny do obsługi klientów lub pracowników. W przykładzie sklepu może to być sporządzenie listy opłaconych zamówień i przekazanie magazynowi tych, których nie widzi w swoim systemie. Zanim ktoś zacznie kopiować dane, trzeba ustalić bezpieczny kanał, dostęp i sposób oznaczenia wykonanych czynności.
Przy obsłudze ręcznej łatwo zgubić zmianę wprowadzoną po pobraniu listy. Dlatego zapiszcie czas sporządzenia zestawienia oraz sposób zgłaszania późniejszych korekt. Jeśli odbiorca wprowadza dane do drugiego systemu ręcznie, potrzebny jest identyfikator pozwalający później powiązać oba wpisy. W przeciwnym razie powrót automatyzacji wymaga zgadywania, które zamówienia są już obsłużone.
Nie każdy proces da się bezpiecznie zastąpić ręcznym. Tam, gdzie operacja wymaga szczególnej autoryzacji lub sprawdzenia danych, może być potrzebne wstrzymanie jej do czasu przywrócenia systemu. Właściciel procesu powinien określić akceptowalne rozwiązanie przed incydentem, razem z osobami odpowiedzialnymi za bezpieczeństwo i obsługę użytkowników.
W modernizacji istniejącej aplikacji trzeba przy tym sprawdzić, czy dawny sposób pracy nadal jest dostępny i aktualny. Instrukcja wskazująca wyłączony system lub nieużywaną skrzynkę nie jest planem awaryjnym.
Jeżeli obsługa ręczna korzysta z arkusza, ustalcie, kto odpowiada za jego wersję i jak ograniczacie dostęp do zawartych w nim informacji. Po uzgodnieniu spraw trzeba również zdecydować, co stanie się z kopią roboczą. Dokument użyty podczas awarii nie powinien bez końca krążyć między skrzynkami.
Wznawiaj etapami i sprawdzaj wynik
Przed wznowieniem ustalcie warunki: przyczyna lub obejście zostały sprawdzone, odpowiednie osoby są dostępne, a lista spraw do obsługi jest uzgodniona. Następnie uruchomcie ograniczoną próbę, jeśli architektura na to pozwala. Porównajcie stan po obu stronach i sprawdźcie powiązane działania, takie jak wysyłka powiadomień.
Jeśli pierwsza partia działa poprawnie, kolejne kroki powinny mieć osobę odpowiedzialną i punkt kontroli. Gdy wynik nadal jest niejasny, zatrzymajcie się przed rozszerzeniem wznowienia. O powodzeniu świadczy zgodność danych i efekt procesu, nie tylko zniknięcie czerwonego komunikatu z panelu.
Przygotujcie sposób poinformowania osób, które obsługują klientów lub wewnętrznych odbiorców. Podajcie, co już działa, jakie sprawy nadal wymagają sprawdzenia oraz gdzie zgłaszać rozbieżności. Nie obiecujcie zamknięcia wszystkich zgłoszeń, dopóki lista nie zostanie uzgodniona.
Sposób przeprowadzenia takiej próby można zapisać w kryteriach odbioru aplikacji. W projektach AI warto podobnie sprawdzić ścieżkę, która zaczęła się jako eksperyment, a później stała częścią codziennej pracy. Więcej o tym w artykule od pilota AI do systemu produkcyjnego.
Po incydencie popraw instrukcję
Zapiszcie przebieg na podstawie znanych faktów: sygnał, decyzje, wpływ na użytkowników, sposób uzgodnienia danych i wynik przywrócenia. Jeśli pewne informacje nadal nie są znane, zaznaczcie to. Przegląd powinien prowadzić do konkretnych poprawek procesu i narzędzi, a nie do szukania osoby winnej.
Sprawdźcie, czy logi dostarczały potrzebnych informacji bez ujawniania nadmiarowych danych. OWASP zwraca uwagę zarówno na użyteczność zapisów, jak i ochronę informacji, które mogłyby się w nich znaleźć. Ustalcie, kto może odczytać logi, ile czasu są przechowywane i co zrobić, gdy potrzebnych wpisów zabrakło.
Na koniec zaktualizujcie kontakty, odpowiedzialności i odnośniki. Podczas przekazania kodu oraz utrzymania sprawdźcie, czy zastępstwo faktycznie potrafi znaleźć tę dokumentację i otrzymać potrzebny dostęp. Właściciel instrukcji powinien wiedzieć, kiedy nastąpi kolejny przegląd.
Jeżeli w Twojej firmie kilka narzędzi wymienia dane i trudno ustalić odpowiedzialność za błąd, opisz proces w krótkim briefie. Możemy omówić integracje systemów, ich granice i sposób obsługi wyjątków. Napisz do nas, wskazując, jakie informacje przepływają między narzędziami i co dzieje się dziś, gdy ten przepływ zostaje przerwany.
Źródła i dokumentacja
Materiały sprawdzone przy opracowaniu tekstu. Przy wyborze usługi lub technologii potwierdzamy warunki dla konkretnego projektu.








