O projekcie
Dwie mini aplikacje na pulpit — jedna dla zespołu w Polsce, druga dla zespołu w Niemczech — w których agent sprawdza, czy powierzone handlowcowi zobowiązania zostały dowiezione: czy oferta wyszła, czy rozmowa się odbyła, czy obiecany kontakt nastąpił w terminie.
Zacznę od nazwania rzeczy po imieniu, bo od tego zależy cały projekt: TO JEST NARZĘDZIE KONTROLI PRACY LUDZI. Można to opakować w „wsparcie zespołu”, ale prawo, rada zakładowa i sam zespół nazwą to monitoringiem — i będą mieli rację. Projekt, który tego nie przyjmuje na wstępie, rozbija się nie o technologię, tylko o zgody, których nie dostanie.
Stąd wynika odpowiedź na pytanie, czemu Polska i Niemcy są OSOBNO. Nie chodzi o język interfejsu. W Niemczech wprowadzenie urządzeń technicznych służących kontroli zachowania lub wydajności pracowników wymaga WSPÓŁDECYDOWANIA RADY ZAKŁADOWEJ — bez porozumienia z nią takiego narzędzia po prostu nie wolno uruchomić. W Polsce monitoring ma inny tryb: musi być zapisany w regulaminie pracy, ograniczony celem i zakomunikowany pracownikom na piśmie.
To są dwa różne reżimy, a nie dwie wersje językowe, więc dają DWA RÓŻNE ZESTAWY FUNKCJI. Instancja niemiecka może pokazywać wyniki wyłącznie zbiorczo i nie zna rankingu osób; polska pokazuje to, na co pozwala regulamin, i tylko to. Kraj jest tu PROFILEM, który zmienia, co agentowi wolno policzyć i wyświetlić — a nie przełącznikiem tłumaczeń.
Dlatego architektura to DWIE ODDZIELNE INSTANCJE z osobnymi bazami, a nie jedna z filtrem po kraju. Filtr jest jedną linią kodu od pomyłki, po której dane niemieckiego pracownika wejdą do zestawienia, którego nie wolno zrobić. Rozdzielenie na poziomie instalacji sprawia, że takie zestawienie nie ma z czego powstać — ta sama zasada, co przy granicy modułu: fizyczna, nie umowna.
Druga decyzja, równie ważna: AGENT KONTROLUJE ZOBOWIĄZANIE, NIE CZŁOWIEKA. Sprawdza, czy konkretna rzecz obiecana na konkretny dzień się stała — a nie, czy ktoś jest pracowity. Różnica nie jest kosmetyczna. Ocena człowieka zaprasza do grania pod wskaźnik i jest prawnie najbardziej ryzykowną częścią takiego systemu; sprawdzenie zobowiązania jest weryfikowalne i da się o nim spierać na faktach.
Trzecia rzecz jest tą, której brak psuje takie wdrożenia najszybciej: AGENT MUSI UMIEĆ POWIEDZIEĆ „NIE WIEM”. Wynik ma trzy stany, nie dwa — zrobione, niezrobione oraz NIE UMIEM ROZSTRZYGNĄĆ. Trzeci idzie do człowieka i NIE trafia do żadnego zestawienia o pracowniku. Agent, który zawsze wydaje wyrok, produkuje fałszywe oskarżenia — a jedno takie kosztuje więcej zaufania, niż sto trafnych ustaleń zbuduje.
Każde ustalenie „niezrobione” musi wskazywać DOWÓD, a dokładniej: brak konkretnego śladu. Nie „system ocenia, że zadanie nie zostało wykonane”, tylko „w wątku z tym klientem nie ma wiadomości wysłanej po dacie zobowiązania, w CRM nie ma aktywności, w repozytorium nie ma dokumentu” — z odnośnikiem, który da się otworzyć. Oskarżenie bez dowodu jest najgorszym możliwym wynikiem takiego narzędzia.
Czas jest tutaj źródłem błędów, które wyglądają na złośliwość systemu. „Do końca dnia” znaczy inny moment w Warszawie i w Monachium, a niemieckie święta różnią się MIĘDZY KRAJAMI ZWIĄZKOWYMI — Bawaria ma dni wolne, których nie ma Berlin. Termin policzony na złym kalendarzu to fałszywe ustalenie o spóźnieniu, a pracownik odbiera je jako zarzut, nie jako usterkę. Arytmetyka terminów idzie więc po kalendarzu roboczym właściwym dla miejsca pracy, nie dla siedziby firmy.
Język to też nie tłumaczenie etykiet. Dowody, na których pracuje agent w instancji niemieckiej — korespondencja, notatki, nazwy dokumentów — są po niemiecku, więc czytanie musi działać po niemiecku, a nie na tłumaczeniu maszynowym z polskiego. Wynik trafia do pracownika w jego języku, bo ustalenie o jego pracy podane w obcym języku jest formą lekceważenia.
Kolejność pokazywania wyników jest decyzją, nie szczegółem interfejsu: PRACOWNIK WIDZI USTALENIE PIERWSZY. Dopiero po tym, i po możliwości zgłoszenia sprzeciwu, ustalenie wchodzi do zestawień przełożonego. System, który donosi szefowi wcześniej, niż powiedział tobie, jest systemem, który ludzie zaczynają obchodzić — a obchodzony monitoring jest gorszy niż żaden, bo daje fałszywe poczucie kontroli.
Mini aplikacja jest mała z wyboru: pracuje na ostatniej synchronizacji, startuje natychmiast i nie wymaga niczego poza sobą. Zbiera minimum — przy ustaleniu zostaje wynik i WSKAŹNIK do dowodu, nigdy kopia korespondencji — a dziennik ustaleń ma własną, krótką retencję, osobną od retencji poczty i CRM-u.
Miarą samego agenta nie jest jego skuteczność na zbiorze testowym, tylko CZĘSTOŚĆ SKUTECZNYCH SPRZECIWÓW: jak często człowiek obalił ustalenie „niezrobione”. Rosnący współczynnik nie znaczy „ludzie się skarżą”, tylko że agent czyta rzeczywistość coraz gorzej — na przykład po zmianie procesu albo po wprowadzeniu nowego narzędzia, którego śladów nie zna.
Problem
Kontrola powierzonych zadań w rozproszonym zespole handlowym odbywa się na cotygodniowych rozmowach i pamięci przełożonego, więc jest wyrywkowa i spóźniona. Zautomatyzowanie jej wprost jest jednak pułapką: w Niemczech takie narzędzie wymaga porozumienia z radą zakładową, w Polsce zapisu w regulaminie, a system oceniający ludzi zamiast zobowiązań jest ryzykiem prawnym i zaproszeniem do grania pod wskaźnik.
Rozwiązanie
Dwie osobne instancje z osobnymi bazami, bo to dwa reżimy prawne, a nie dwie wersje językowe. Agent sprawdza ZOBOWIĄZANIE, nie człowieka, ma trzeci wynik „nie umiem rozstrzygnąć” i przy każdym ustaleniu wskazuje dowód. Pracownik widzi ustalenie pierwszy i może się sprzeciwić, a miarą agenta jest częstość skutecznych sprzeciwów.
Funkcje
- dwie oddzielne instancje z osobnymi bazami — nie jedna z filtrem po kraju
- kraj jest profilem, który zmienia co wolno policzyć i wyświetlić, nie zestawem tłumaczeń
- instancja niemiecka bez rankingu osób; wyniki zbiorcze, zgodnie z porozumieniem
- agent sprawdza zobowiązanie z terminem, nie pracowitość człowieka
- trzy wyniki: zrobione, niezrobione i NIE UMIEM ROZSTRZYGNĄĆ
- wynik nierozstrzygnięty idzie do człowieka i nie wchodzi do żadnego zestawienia
- każde ustalenie wskazuje brak konkretnego śladu, z otwieralnym odnośnikiem
- kalendarze robocze per kraj i per kraj związkowy; terminy w czasie lokalnym pracownika
- pracownik widzi ustalenie pierwszy i ma drogę sprzeciwu
- przy ustaleniu zostaje wskaźnik do dowodu, nigdy kopia korespondencji
Moduły
zadania-kontrakt
definicja zobowiązaniaZamienia „zadanie” w rzecz weryfikowalną: termin plus oczekiwany ślad.
- zobowiązanie ma termin, adresata i OCZEKIWANY ŚLAD, po którym da się je sprawdzić
- zadanie bez oczekiwanego śladu nie wchodzi do kontroli — nie ma czego weryfikować
- zmiana terminu jest jawną zmianą zobowiązania, zapisaną z autorem
- zobowiązania grupowe rozbite na osoby; wspólna odpowiedzialność jest niczyja
- zamknięcie ręczne z powodem jest dozwolone i widoczne jako decyzja człowieka
dowody
warstwa śladówSzuka śladów wykonania w miejscach, w których naprawdę powstają.
- ślady z CRM, wątków poczty i repozytorium dokumentów, każdy z odnośnikiem
- przy ustaleniu zostaje WSKAŹNIK do śladu, nie kopia treści
- brak śladu jest stwierdzany dla konkretnego miejsca, nie ogólnie
- źródło niedostępne daje wynik nierozstrzygnięty, nie „niezrobione”
- dostęp do dowodów ograniczony do tego, co potrzebne do tej jednej weryfikacji
agent-weryfikacji
agent z prawem do niewiedzyOcenia zebrane ślady i wydaje jeden z TRZECH wyników, nie jednego z dwóch.
- trzeci wynik „nie umiem rozstrzygnąć” jest równoprawny, nie awaryjny
- wynik nierozstrzygnięty trafia do człowieka i nie wchodzi do zestawień
- uzasadnienie wymienia sprawdzone miejsca i to, czego w nich nie było
- agent nie ocenia jakości pracy ani zaangażowania — tylko czy rzecz się stała
- próg pewności jest zadeklarowany; poniżej niego wynik jest nierozstrzygnięty
kalendarze
arytmetyka terminówLiczy terminy w czasie i kalendarzu właściwym dla miejsca pracy człowieka.
- „do końca dnia” rozwiązywane w strefie pracownika, nie siedziby firmy
- dni wolne per kraj ORAZ per kraj związkowy — Bawaria i Berlin różnią się
- urlop i nieobecność wstrzymują bieg terminu, zamiast produkować spóźnienie
- zmiana kalendarza nie przelicza wstecz ustaleń już zamkniętych
- brak kalendarza dla lokalizacji zatrzymuje kontrolę, zamiast zgadywać dni wolne
profil-pl
profil prawnyZakres kontroli zgodny z polskim trybem: regulamin, cel i informacja pisemna.
- zakres kontroli wynika z zapisu w regulaminie pracy, nie z możliwości technicznych
- cel przetwarzania zadeklarowany przy każdym rodzaju ustalenia
- potwierdzenie poinformowania pracownika przechowywane razem z konfiguracją
- rozszerzenie zakresu wymaga zmiany profilu, a nie tylko nowego widoku
- retencja dziennika ustaleń krótka i osobna od retencji poczty i CRM-u
profil-de
profil prawnyZakres zgodny z porozumieniem z radą zakładową — bez rankingu osób.
- wdrożenie wymaga porozumienia z radą zakładową; bez niego instancja nie startuje
- brak rankingu i brak ocen indywidualnych; wyniki wyłącznie zbiorcze
- progi i rodzaje ustaleń pochodzą z porozumienia, nie z panelu administratora
- zmiana zakresu jest zmianą porozumienia — system to wymusza, nie sugeruje
- dowody i ustalenia czytane i podawane po niemiecku, nie w tłumaczeniu
widok-pracownika
kolejność ujawnianiaPracownik widzi ustalenie pierwszy i ma realną drogę sprzeciwu.
- ustalenie wchodzi do zestawień przełożonego PO pokazaniu go pracownikowi
- sprzeciw jest formularzem z dowodem, nie prośbą o rozmowę
- skuteczny sprzeciw zamyka ustalenie i zasila miarę jakości agenta
- historia ustaleń o sobie jest dla pracownika dostępna w całości
- brak drogi sprzeciwu czyni z narzędzia coś, co ludzie obchodzą — i tyle po nim
aplikacja-mini
wydanie na pulpicieMała aplikacja: startuje natychmiast, działa bez sieci, nic nie ciągnie za sobą.
- pracuje na ostatniej synchronizacji; brak łącza nie blokuje przeglądania
- lokalna baza SQLite; żadnej instalacji serwera po stronie użytkownika
- osobne wydanie per instancja, bo profile prawne różnią się funkcjami
- sprzeciwy i zamknięcia ręczne kolejkowane offline i wysyłane po powrocie sieci
- aktualizacja nie zmienia zakresu kontroli — ten pochodzi z profilu, nie z wersji
miara-sprzeciwow
warstwa pomiaruMierzy agenta tym, co się liczy: jak często człowiek obalił jego ustalenie.
- częstość skutecznych sprzeciwów liczona per rodzaj ustalenia i per źródło dowodu
- wzrost wskaźnika czyta się jako „agent gubi rzeczywistość”, nie jako skargi ludzi
- udział wyników nierozstrzygniętych raportowany osobno — spadek do zera jest OSTRZEŻENIEM
- miara jest zbiorcza także w instancji polskiej; to pomiar narzędzia, nie ludzi
- raport wskazuje rodzaj ustalenia do wyłączenia, gdy przestaje być trafny
Architektura
- Podstawa
- dwie mini aplikacje w Electronie z lokalną bazą SQLite i osobnym zapleczem na PostgreSQL — po jednej instancji na kraj
- Dlaczego osobno
- to dwa reżimy prawa pracy, nie dwie wersje językowe; rozdział na poziomie instalacji, nie filtr po kraju w jednej bazie
- Profil niemiecki
- wymaga porozumienia z radą zakładową; bez niego instancja nie startuje. Zero rankingu osób, wyniki zbiorcze
- Profil polski
- zakres z regulaminu pracy, zadeklarowany cel, potwierdzenie pisemnej informacji przechowywane z konfiguracją
- Przedmiot kontroli
- ZOBOWIĄZANIE z terminem i oczekiwanym śladem, nie pracowitość człowieka; zadanie bez śladu nie wchodzi do kontroli
- Trzy wyniki
- zrobione, niezrobione, nie umiem rozstrzygnąć; trzeci idzie do człowieka i nie wchodzi do żadnego zestawienia
- Dowody
- wskaźnik do śladu w CRM, wątku poczty lub repozytorium — nigdy kopia treści; niedostępne źródło daje wynik nierozstrzygnięty
- Terminy
- czas lokalny pracownika, kalendarze robocze per kraj i per kraj związkowy, nieobecność wstrzymuje bieg terminu
- Kolejność ujawniania
- pracownik widzi ustalenie pierwszy; do zestawień przełożonego wchodzi po tym i po możliwości sprzeciwu
- Język
- dowody czytane w języku, w którym powstały; ustalenie podawane pracownikowi w jego języku
- Dane
- minimum przy ustaleniu: wynik, uzasadnienie i wskaźnik; dziennik z krótką retencją, osobną od poczty i CRM-u
- Miara agenta
- częstość skutecznych sprzeciwów per rodzaj ustalenia; udział wyników nierozstrzygniętych raportowany osobno
- Praca offline
- przeglądanie i sprzeciwy działają bez sieci; kolejkowane i wysyłane po powrocie łącza
Technologie
- TypeScript
- Electron
- SQLite
- PostgreSQL
- Node.js
- Claude
Autor
Mariusz PerzyńskiClient Relations & Operations