Jak jedna firma prowadzi akademię dla piętnastu organizacji klienckich
Piętnastu klientów, jedna akademia, jeden zespół autorski. Co musi być wspólne, co musi być rozdzielone i co się dzieje, gdy klient chce zmiany w kursie.
Firma szkoleniowa prowadząca akademię dla piętnastu organizacji klienckich prowadzi szesnaście organizacji, a nie jedną. Każdy klient chce własnej identyfikacji wizualnej, własnej domeny, własnych administratorów i własnego raportowania. Firma chce jednego miejsca do tworzenia kursu i jednego widoku obejmującego całą piętnastkę. Te dwa pragnienia ciągną w przeciwne strony, a cały projekt sprowadza się do jednej linii: treść spływa w dół drzewa, ludzie i wyniki nigdy nie przemieszczają się w poprzek.
Postawienie tej linii w złym miejscu daje przewidywalne objawy. Albo utrzymują Państwo ręcznie zgodność piętnastu kopii tego samego kursu przy każdej zmianie przepisów, albo administrator klienta otwiera raport i znajduje w nim pracowników innego klienta. Pierwsze jest kosztowne. Drugie kończy umowę.
Struktura jest prosta: jedna organizacja nadrzędna — firma szkoleniowa — i piętnaście organizacji klienckich wewnątrz niej, z których każda może zawierać własne lokalizacje lub działy.
Training company (parent) authors everything, sees everything
├── Client 1 learn.client1.com · own admins · own report
│ ├── Operations
│ └── Retail network
├── Client 2 academy.client2.io · own admins · own report
├── …
└── Client 15 academy.client15.co · own admins · own reportSzesnaście węzłów, jedna instalacja, jeden cykl aktualizacji. Schemat jest łatwą częścią. Kto edytuje kurs z ochrony przeciwpożarowej? Kto widzi wskaźniki ukończeń dla klienta 7? Co się dzieje, gdy klient 3 chce innego progu zdawalności? Te trzy pytania to cała robota.
Dostarczanie szkoleń w modelu B2B2B
Jedna organizacja prowadząca szkolenia dla innych organizacji, a nie dla własnych pracowników. Dostawca ma umowę na platformę, tworzy treści i daje każdej organizacji klienckiej własną akademię pod jej marką, własnych administratorów i własne raportowanie. Uczestnikami są pracownicy klienta. Ograniczenie definiujące: dostawca potrzebuje jednego widoku obejmującego każdego klienta, a każdy klient — widoku wyłącznie samego siebie.
Co jest wspólne, a co rozdzielone
Dwie listy. Prawie każdy spór operacyjny w tym modelu jest sporem o to, na której z nich coś się znajduje. Wspólne w dół drzewa, jedna kopia, utrzymywana przez dostawcę:
- Programy, moduły i lekcje, tworzone raz w organizacji nadrzędnej.
- Bank pytań i zbudowane z niego sprawdziany — piętnaście kopii pytania to piętnaście okazji, by klucz odpowiedzi się rozjechał.
- Ramy kompetencji, tak by kompetentny w ręcznym przenoszeniu ciężarów znaczyło to samo w każdej organizacji klienckiej.
- Szablony certyfikatów — układ, reguły ważności, publiczna strona weryfikacji.
- Rzeczy, których nigdy nie chcą Państwo różnicować: reguły retencji, rejestr audytowy, cykl aktualizacji, praca nad dostępnością.
Rozdzielone w poprzek, po jednym na klienta, nigdy zbierane do wspólnej puli:
- Użytkownicy i ich logowanie. Osoba należy do jednej organizacji klienckiej.
- Zapisy, postępy, podejścia, oceny, wystawione certyfikaty.
- Identyfikacja wizualna oraz domena, którą pracownicy klienta wpisują w przeglądarkę.
- Administratorzy oraz role, które dają im uprawnienia.
- Zakres raportowania — każda liczba, którą widzi klient, jest ograniczona jego własnym węzłem.
- Adres, z którego wychodzą powiadomienia, tak by przypomnienia docierały do pracowników klienta z jego własnej domeny.
- Rejestry zgód i wszystko, za co odpowiada dział prawny klienta.
Jest jeszcze niewygodny środek: rzeczy, które wyglądają jak treść, a niosą tożsamość klienta. Certyfikat jest przypadkiem najczystszym. Układ, okres ważności i strona weryfikacji należą do Państwa; logo, osoba podpisująca i wskazana na nim organizacja należą do klienta. Platforma traktująca certyfikat jako jeden niepodzielny obiekt zmusza do rozwidlenia szablonu piętnaście razy po to, by zmienić logo. Reguła, która przed tym chroni: identyfikacja wizualna jest konfiguracją na węźle klienta, nigdy kopią treści. White-label jest powierzchnią konfiguracji, a nie tworzenia treści.
Tworzenie raz, dostarczanie do piętnastu klientów
Organizacja nadrzędna trzyma bibliotekę wzorcową. Kurs powstaje tam, tam jest recenzowany i tam publikowany. To, co dzieje się dalej, różni platformy między sobą, a mechanizmy są tylko dwa.
- Przez odwołanie. Organizacja kliencka dostaje dostęp do kursu organizacji nadrzędnej. Kopia nadal jest jedna, więc poprawiona literówka dociera do każdego klienta w chwili publikacji. Zapisy i wyniki nadal siedzą w węźle klienta, bo one nigdy nie były wspólne.
- Przez kopię. Kurs jest kopiowany w głąb do węzła klienta — moduły, lekcje, pytania, ustawienia. Klient ma teraz osobny obiekt, który może zmieniać się niezależnie, a nic, co zrobią Państwo u źródła, już nigdy do niego nie dotrze. Prawdziwy program jest dużym obiektem, więc takie kopiowanie działa jako zadanie w tle.
Odwołanie jest domyślne, a odejście od niego powinno być odczuwalnie niewygodne. Gdy kurs istnieje już w piętnastu kopiach, przyszłoroczna aktualizacja przepisów to piętnaście edycji, piętnaście recenzji i piętnaście okazji, by o którejś zapomnieć.
Czy wspólny kurs należy podlinkować każdemu klientowi, czy skopiować?
Proszę linkować przez odwołanie, chyba że sama treść musi się różnić. Odwołanie utrzymuje jeden wzorzec, więc poprawka dociera do każdego klienta w chwili publikacji, a zapisy i wyniki zostają wewnątrz własnej organizacji każdego klienta. Kopiować należy tylko wtedy, gdy klient ma prawdziwy powód, by się rozejść: innego regulatora, próg zdawalności wpisany do umowy, politykę, która musi pojawić się w materiale. Kopia to trwałe zobowiązanie utrzymaniowe — przestaje otrzymywać zmiany ze źródła, a nic nie powie Państwu później, że została w tyle.
Gdy klient prosi o zmianę we wspólnym kursie
To jest prośba, która przesądza, ile kosztuje trzeci rok. Przychodzi nieformalnie — czy da się dodać naszą procedurę zgłaszania zdarzeń do modułu 3 — i ma cztery uczciwe odpowiedzi.
- To poprawka. Treść jest błędna albo nieaktualna dla wszystkich. Proszę poprawić wzorzec i ma to każdy klient. Więcej próśb jest po cichu właśnie tą, niż spodziewają się firmy szkoleniowe, a klient, który to wypatrzył, zwykle ma rację.
- To prezentacja. Chcą swojego logo, swoich kolorów, swojej terminologii. Nic z tego nie jest treścią. To konfiguracja na ich węźle, a jeśli platforma zmusza do rozwidlenia kursu po to, by zmienić logo, jest to wina platformy, a nie prośby.
- To dodatek. Chcą czegoś więcej, a nie czegoś innego — odpowiedź, którą przeocza większość firm szkoleniowych. Proszę umieścić moduł wyłącznie dla tego klienta w jego własnej organizacji, obok wspólnego programu. Wspólny kurs zostaje wspólny, a klient często może sam utrzymywać dodatkowy materiał.
- To prawdziwe rozejście się. Ich regulator ustawia próg zdawalności na 80, gdy u Państwa jest 70. Teraz następuje rozwidlenie — i to rozwidlenie dostaje datę, właściciela i wpis w rejestrze, bo za osiemnaście miesięcy ktoś zapyta, dlaczego wersja klienta 9 się różni, a chyba jakiś klient o to prosił nie jest odpowiedzią.
Rozwidlenie to decyzja z datą, właścicielem i uzasadnieniem, a takich decyzji da się policzyć na palcach jednej ręki.
Piętnaście nieco różniących się kopii tego samego kursu i nikt nie ma pewności, która jest aktualna.
Dostęp: ich administratorzy, ich ludzie i niczyi więcej
Administrator klienta ma wąskie zadanie: dodawać i usuwać własnych pracowników, zapisywać ich, poganiać tych, którzy nie skończyli, i pobrać raport, który przyjmie ich zarząd. Wszystko to bez pisania do Państwa i nic z tego poza własną organizacją.
Tanie robi to zakres, który spływa w dół: rola nadana w węźle obowiązuje we wszystkim, co pod nim leży. Dyrektor szkoleń u klienta to jedno nadanie na organizacji klienckiej, a jego działy są objęte automatycznie. Kierownik lokalizacji to jedno nadanie na tej lokalizacji. Gdy dział się zamyka, usuwają Państwo węzeł, zamiast polować na nadania, które go przeżyły.
Trudniejszą połową są Państwa własni pracownicy, a nie ich. Państwa zespół autorski pracuje na treściach każdego klienta i nie ma nic do szukania w rekordach uczestników. Opiekun klientów od 1 do 5 potrzebuje ich wyników i niczego od klientów od 6 do 15. Jedna rola administratora na organizacji nadrzędnej daje wszystkim wszystko — i tak firma szkoleniowa dochodzi do kilkunastu osób, które mogłyby wyeksportować listę pracowników dowolnego klienta. Role własne zbudowane z katalogu uprawnień, nadane we właściwym węźle, kosztują jedno popołudnie.
Czy administrator klienta może zobaczyć uczestników innych klientów?
Nie, jeśli granica jest egzekwowana poniżej aplikacji. Proszę zapytać dostawcę, gdzie mieszka to sprawdzenie. Jeśli klientów rozdziela filtr, o którego zastosowaniu pamięta kod aplikacji, rozdzielenie trzyma się do chwili, gdy ktoś wdroży bez niego punkt końcowy eksportu. Jeśli jest egzekwowane w bazie danych przez bezpieczeństwo na poziomie wierszy, zapytanie, które zapomni o filtrze, zwraca pustkę, a nie pracowników innego klienta. Każdy przegląd bezpieczeństwa u klienta pyta o to w jakiejś formie, więc warto mieć odpowiedź wcześniej i na piśmie.
Raportowanie z obu stron
Co widzi klient
Własnych ludzi i niczyich innych: kto jest zapisany, kto skończył, kto jest zaległy, kto dwa razy nie zdał sprawdzianu — w podziale na własne działy, z możliwością eksportu, we własnej identyfikacji wizualnej. Zakresem tego raportu jest ta sama granica węzła, która ich chroni, więc oba zadania wykonuje jeden mechanizm, zamiast modelu bezpieczeństwa i modelu raportowania, które muszą się ze sobą zgadzać.
Co widzą Państwo
Każdy węzeł naraz. Liczby, na których prowadzą Państwo biznes, są międzyklienckie i niewidoczne z wnętrza żadnego pojedynczego klienta: którzy klienci od sześciu tygodni nikogo nie zapisali, którzy zbliżają się do zakontraktowanej liczby miejsc, który kurs wypada źle wszędzie i ma przez to problem z treścią, a nie problem z klientem. To ostatnie jest najmocniejszym argumentem za jednym tenantem zamiast piętnastu osobnych instalacji, w których ten sam wzorzec jest arkuszem kalkulacyjnym odbudowywanym przez kogoś co kwartał, o ile w ogóle.
Kuszącą kolejną funkcją jest benchmarking: powiedzenie klientowi 4, że jest w górnym kwartylu. Najpierw proszę rozstrzygnąć dwie rzeczy. Umownie: czy każdy klient zgodził się, by jego zagregowane wyniki mogły być porównywane z wynikami innych organizacji. Technicznie: minimalną wielkość grupy, tak by porównania obejmującego kilku małych klientów nie dało się odwrócić w stwierdzenie o jednym z nich.
Co organizacja kliencka powinna widzieć we własnym raportowaniu?
Wszystko o własnych ludziach i nic o cudzych: zapisy, ukończenia, zaległych uczestników, wyniki sprawdzianów i wystawione certyfikaty, w podziale na własne działy i z możliwością eksportu. Porównania międzyklienckie to osobna decyzja, wymagająca zgody każdego klienta i minimalnej wielkości grupy, bo porównanie obejmujące kilka małych organizacji da się odwrócić w stwierdzenie o jednej z nich.
Kto jest właścicielem danych uczestników w akademii B2B2B?
Zwykle organizacja kliencka, przy czym firma szkoleniowa działa na jej polecenie, a dostawca platformy pod nimi obiema. Proszę rozstrzygnąć to przed podpisem pierwszego klienta: kto jest administratorem danych, kto podmiotem przetwarzającym, kto odpowiada na wniosek o dostęp do danych i co dzieje się z wynikami, gdy klient odchodzi. Na to ostatnie pytanie odpowiada się najgorzej. Jeśli klient jest poddrzewem, usunięcie go jest usunięciem poddrzewa; jeśli klient jest rozsypem wierszy oznaczonych identyfikatorem klienta, rozstanie z nim jest listą kontrolną, o której ktoś ma nadzieję, że jest kompletna.
Gdzie w tym jest Lurno i czego struktura nie rozwiązuje
Lurno jest zbudowane pod ten kształt. Organizacja zawiera podorganizacje, każdą z własną identyfikacją wizualną i własną domeną z automatycznym TLS, więc pracownicy klienta logują się pod adresem klienta. Wewnątrz organizacji jest drugie drzewo oddziałów dla lokalizacji i działów danego klienta, a rola nadana na oddziale spływa w dół. Treść tworzy się raz w organizacji nadrzędnej, a potem udostępnia organizacji klienckiej albo kopiuje w głąb do niej.
Granica tenanta jest egzekwowana w Postgresie, a nie w kodzie aplikacji: 868 polityk bezpieczeństwa na poziomie wierszy w 676 migracjach. Punkt końcowy, który zapomni o filtrze, zwraca pustkę zamiast cudzych pracowników — to twierdzenie warto przetestować u każdego dostawcy, u nas także. Jeden kształt, który już na tym działa, bez wymieniania nazw: akademia korporacyjna prowadząca szkolenia dla 15 firm klienckich z jednego tenanta.
Czterech rzeczy dobrze narysowane drzewo nie naprawia. Podane tu dla Lurno; o te same cztery proszę zapytać każdego innego dostawcę.
- Rozliczenie klienta. Płatności i koszyk są w budowie. Klient jest dziś fakturowany poza platformą, a platforma zapisuje, co mu przysługuje. Odpowiada to temu, jak u większości firm szkoleniowych i tak przepływają pieniądze, ale płatność kartą w momencie zapisu jest tematem do rozmowy, a nie funkcją.
- Wprowadzenie ludzi. Konta zakłada się na zaproszenie; samodzielna rejestracja jest w budowie. Praktyczną odpowiedzią jest administrator klienta, który sam importuje swoich ludzi, zamiast przysyłać Państwu arkusz.
- Uwierzytelnianie. Logowanie partnerskie (silent SSO) jest dostępne: własny system klienta przekazuje użytkownika za pomocą podpisanej asercji. SAML i OIDC są na mapie drogowej i nie zostały wdrożone. Jeśli dział IT klienta już zdecydował, jak uwierzytelniają się jego pracownicy, proszę zapytać na pierwszym spotkaniu, a nie na piątym.
- Standardy. SCORM, xAPI i LTI są w produkcie zamodelowane, ale środowisko uruchomieniowe jest w budowie. Klient, który upiera się przy wniesieniu własnych paczek SCORM, jest tym zablokowany i trzeba to powiedzieć wcześnie.
Wersja tego modelu od strony firmy szkoleniowej jest opisana na stronie firmy szkoleniowe. Wersja wewnętrzna — w której podorganizacje są Państwa własnymi regionami, a nie inną firmą — jest na stronie korporacje.
Wersja krótka
Treść dzielić w dół drzewa. Ludzi, wyniki, identyfikację wizualną i raportowanie rozdzielać w poprzek. Wspólny kurs podpinać przez odwołanie, a nie kopiować, i traktować każde rozwidlenie jako decyzję, którą ktoś podpisał. Każdemu klientowi dać administratora ograniczonego do własnego węzła i ustalić, gdzie ten zakres jest egzekwowany. A potem zbudować własny widok obejmujący wszystkie szesnaście węzłów: pytania, które utrzymują biznes przy życiu — który klient ucichł, który kurs wypada źle wszędzie — da się zadać tylko z góry.