Vai al contenuto
lurno
Tutti gli articoli
Blog

Come un'azienda gestisce un'academy per quindici organizzazioni clienti

Quindici clienti, un'academy, un solo team di redazione. Che cosa deve essere condiviso, che cosa separato, e che cosa succede quando un cliente vuole che il corso cambi.

The Lurno teamAugmental13 min di lettura

Un'azienda di formazione che gestisce un'academy per quindici organizzazioni clienti sta gestendo sedici organizzazioni, non una. Ogni cliente vuole un brand proprio, un dominio proprio, amministratori propri e una reportistica propria. L'azienda vuole un solo posto in cui scrivere un corso e una sola vista su tutti e quindici. Questi due desideri tirano in direzioni opposte, e tutto il progetto si riduce a una riga: i contenuti scendono lungo l'albero, le persone e i risultati non si spostano mai di lato.

Metta quella riga nel posto sbagliato e i sintomi sono prevedibili. O tiene allineate a mano quindici copie dello stesso corso ogni volta che cambia una norma, oppure un amministratore di un cliente apre un report e ci trova dentro il personale di un altro cliente. La prima cosa costa cara. La seconda chiude il contratto.

La struttura è semplice: un'organizzazione padre — l'azienda di formazione — e quindici organizzazioni clienti al suo interno, ciascuna libera di contenere sedi o dipartimenti propri.

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 report

Sedici nodi, un'unica installazione, un unico ciclo di aggiornamento. Il diagramma è la parte facile. Chi modifica il corso antincendio? Chi vede le cifre di completamento del cliente 7? Che cosa succede quando il cliente 3 vuole una soglia di superamento diversa? Queste tre domande sono tutto il lavoro.

Erogazione della formazione B2B2B

Un'organizzazione che gestisce la formazione per altre organizzazioni anziché per il proprio personale. L'ente di formazione è titolare del contratto con la piattaforma, scrive i contenuti e dà a ogni organizzazione cliente un'academy brandizzata, amministratori e reportistica propri. I discenti sono i dipendenti del cliente. Il vincolo che definisce il modello: l'ente ha bisogno di una vista unica su tutti i clienti, e ogni cliente di una vista su nient'altro che se stesso.

Che cosa è condiviso e che cosa è separato

Due elenchi. Quasi ogni discussione operativa in questo ambito è un disaccordo su quale dei due elenchi debba contenere una certa cosa. Condiviso lungo l'albero, in una sola copia, mantenuto dall'ente di formazione:

  • I programmi, i moduli e le lezioni, scritti una volta sola sull'organizzazione padre.
  • La banca delle domande e le valutazioni costruite a partire da essa: quindici copie di una domanda sono quindici occasioni perché la griglia di correzione prenda strade diverse.
  • I framework di competenze, così che competente nella movimentazione manuale dei carichi significhi la stessa cosa in ogni organizzazione cliente.
  • I template dei certificati: il layout, le regole di validità, la pagina pubblica di verifica.
  • Le cose che non si vogliono mai far variare: le regole di conservazione, il registro di audit, il ciclo di aggiornamento, il lavoro sull'accessibilità.

Separato di lato, uno per cliente, mai messo in comune:

  • Gli utenti e il loro accesso. Una persona appartiene a una sola organizzazione cliente.
  • Le iscrizioni, gli avanzamenti, i tentativi, i voti, i certificati emessi.
  • Il brand, e il dominio che il personale di un cliente digita nel browser.
  • Gli amministratori, e i ruoli che ne definiscono i diritti.
  • L'ambito della reportistica: ogni numero che un cliente vede è delimitato dal proprio nodo.
  • L'indirizzo da cui partono le notifiche, così che i promemoria arrivino al personale di un cliente dal dominio del cliente stesso.
  • I registri dei consensi, e tutto ciò di cui l'ufficio legale del cliente deve rispondere.

Poi c'è la zona di mezzo, scomoda: cose che sembrano contenuto ma portano l'identità di un cliente. Il certificato è il caso più chiaro. Il layout, il periodo di validità e la pagina di verifica sono suoi; il logo, il firmatario e l'organizzazione che vi compare appartengono al cliente. Una piattaforma che tratta il certificato come un unico oggetto indivisibile la costringe a duplicare il template quindici volte per cambiare un logo. La regola che tiene fuori da questo guaio: il brand è configurazione sul nodo del cliente, mai una copia del contenuto. Il white-label è una superficie di configurazione, non di redazione.

Scrivere una volta sola, distribuire a quindici clienti

L'organizzazione padre custodisce la libreria principale. Un corso viene scritto lì, rivisto lì e pubblicato lì. È in quello che succede dopo che le piattaforme si differenziano, e i meccanismi sono solo due.

  1. Per riferimento. All'organizzazione cliente viene concesso l'accesso al corso dell'organizzazione padre. La copia resta una sola, quindi un refuso che corregge raggiunge ogni cliente nel momento in cui pubblica. Le iscrizioni e i risultati restano comunque nel nodo del cliente, perché non erano mai stati condivisi.
  2. Per copia. Il corso viene copiato in profondità dentro il nodo del cliente: moduli, lezioni, domande, impostazioni. Il cliente ha ora un oggetto separato che può cambiare in modo indipendente, e niente di ciò che lei fa a monte lo raggiungerà più. Un programma vero è un oggetto grande, quindi quella copia viene eseguita come processo in background.

Il riferimento è l'impostazione predefinita, e allontanarsene dovrebbe dare fastidio. Una volta che un corso esiste in quindici copie, l'aggiornamento normativo dell'anno prossimo sono quindici modifiche, quindici revisioni e quindici occasioni per dimenticarne una.

Un corso condiviso va collegato a ciascun cliente o copiato?

Lo colleghi per riferimento, a meno che il contenuto stesso debba essere diverso. Un riferimento mantiene un unico originale, così una correzione raggiunge ogni cliente nel momento in cui viene pubblicata, mentre iscrizioni e risultati restano dentro l'organizzazione di ciascun cliente. Copi solo quando un cliente ha una ragione reale per divergere: un ente regolatore diverso, una soglia di superamento scritta nel suo contratto, una policy che deve comparire nel materiale. Una copia è un obbligo di manutenzione permanente: smette di ricevere le modifiche fatte a monte, e più avanti nulla le dirà che è rimasta indietro.

Quando un cliente chiede una modifica a un corso condiviso

È questa la richiesta che decide quanto costerà il terzo anno. Arriva in forma informale — potete aggiungere la nostra procedura di segnalazione degli incidenti al modulo 3 — e ha quattro risposte oneste.

  1. È una correzione. Il contenuto è sbagliato, o non aggiornato, per tutti. Corregga l'originale e ogni cliente ce l'ha. Le richieste che in segreto sono di questo tipo sono più numerose di quanto gli enti di formazione si aspettino, e il cliente che se n'è accorto di solito ha ragione.
  2. È presentazione. Vogliono il loro logo, i loro colori, la loro terminologia. Niente di tutto questo è contenuto. È configurazione sul loro nodo e, se la piattaforma la costringe a duplicare un corso per cambiare un logo, la colpa è della piattaforma, non della richiesta.
  3. È un'aggiunta. Vogliono qualcosa in più, non qualcosa di diverso: è la risposta che la maggior parte degli enti di formazione si lascia sfuggire. Metta un modulo riservato al cliente nella sua organizzazione, accanto al programma condiviso. Il corso condiviso resta condiviso, e spesso il cliente può mantenere da sé il materiale aggiuntivo.
  4. È una divergenza vera. Il loro ente regolatore fissa la soglia di superamento a 80 dove la sua è 70. A quel punto si duplica — e la copia riceve una data, un responsabile e una riga in un registro, perché fra diciotto mesi qualcuno chiederà perché la versione del cliente 9 è diversa, e credo che l'abbia chiesto un cliente non è una risposta.
Lurno

Una copia divergente è una decisione con una data, un responsabile e una ragione, e si contano sulle dita di una mano.

Not this

Quindici copie leggermente diverse dello stesso corso, e nessuno è sicuro di quale sia quella corrente.

Accessi: i loro amministratori, le loro persone, quelle di nessun altro

L'amministratore di un cliente ha un compito circoscritto: aggiungere e rimuovere il proprio personale, iscriverlo, sollecitare chi non ha finito ed estrarre un report che il proprio consiglio accetti. Tutto questo senza scriverle un'email, e niente di tutto questo fuori dalla propria organizzazione.

Ciò che rende tutto questo economico è un ambito che scende a cascata: assegni un ruolo su un nodo e vale per tutto ciò che sta sotto. Il responsabile della formazione di un cliente è un'unica assegnazione sull'organizzazione cliente, e i suoi dipartimenti sono inclusi automaticamente. Il responsabile di una sede è un'unica assegnazione sulla sede. Quando un dipartimento chiude si rimuove il nodo, invece di andare a caccia di assegnazioni che gli sono sopravvissute.

La metà più difficile è il suo personale, non il loro. Il suo team di redazione lavora sui contenuti di ogni cliente e non ha alcun motivo di leggere i record dei discenti. Il responsabile dei clienti da 1 a 5 ha bisogno dei loro risultati e di niente che riguardi i clienti da 6 a 15. Un unico ruolo di amministratore sull'organizzazione padre consegna tutto a tutti, ed è così che un ente di formazione si ritrova con una dozzina di persone in grado di esportare l'elenco del personale di qualsiasi cliente. Ruoli personalizzati costruiti a partire da un catalogo di permessi, assegnati sul nodo giusto, costano un pomeriggio.

L'amministratore di un cliente può vedere i discenti degli altri clienti?

Non se il confine è imposto al di sotto dell'applicazione. Chieda a un fornitore dove risiede il controllo. Se i clienti sono separati da un filtro che il codice applicativo si ricorda di applicare, la separazione regge finché qualcuno non rilascia un endpoint di esportazione che se ne dimentica. Se è imposto nel database con la row-level security, una query che dimentica il filtro non restituisce niente invece del personale di un altro cliente. Ogni verifica di sicurezza di un cliente pone questa domanda in qualche forma: si procuri prima la risposta per iscritto.

La reportistica, da entrambi i lati

Che cosa vede il cliente

Le proprie persone e quelle di nessun altro: chi è iscritto, chi ha finito, chi è in ritardo, chi non ha superato una valutazione due volte — suddiviso per i propri dipartimenti, esportabile, con il proprio brand. L'ambito di quel report è lo stesso confine di nodo che li protegge, quindi c'è un solo meccanismo che fa entrambe le cose, invece di un modello di sicurezza e un modello di reportistica che devono andare d'accordo.

Che cosa vede lei

Tutti i nodi insieme. I numeri con cui manda avanti l'attività sono trasversali ai clienti e invisibili dall'interno di un singolo cliente: quali clienti non iscrivono nessuno da sei settimane, quali sono vicini al numero di postazioni previsto dal contratto, quale corso viene bocciato dappertutto e ha quindi un problema di contenuto e non un problema di cliente. Quest'ultimo è l'argomento più forte a favore di un unico tenant rispetto a quindici installazioni separate, dove lo stesso andamento è un foglio di calcolo che qualcuno ricostruisce ogni trimestre, ammesso che lo faccia.

La funzionalità successiva più allettante è il benchmarking: dire al cliente 4 che è nel primo quartile. Prima definisca due cose. Sul piano contrattuale, se ogni cliente ha acconsentito a che i propri risultati aggregati vengano confrontati con quelli di altre organizzazioni. Sul piano tecnico, una dimensione minima del gruppo, in modo che un confronto fra pochi clienti piccoli non possa essere ribaltato in un'affermazione su uno di loro.

Che cosa dovrebbe vedere un'organizzazione cliente nella propria reportistica?

Tutto sulle proprie persone e niente su quelle di chiunque altro: iscrizioni, completamenti, discenti in ritardo, risultati delle valutazioni e certificati emessi, suddivisi per i propri dipartimenti ed esportabili. I confronti fra clienti sono una decisione a parte, che richiede il consenso di ciascun cliente e una dimensione minima del gruppo, perché un confronto fra poche organizzazioni piccole può essere ribaltato in un'affermazione su una di loro.

Di chi sono i dati dei discenti in un'academy B2B2B?

Di solito dell'organizzazione cliente, con l'ente di formazione che agisce su sue istruzioni e il fornitore della piattaforma al di sotto di entrambi. Lo definisca prima che firmi il primo cliente: chi è il titolare del trattamento, chi è il responsabile, chi risponde a una richiesta di accesso dell'interessato e che cosa succede ai risultati quando un cliente se ne va. È a quest'ultima domanda che si risponde peggio. Se un cliente è un sottoalbero, rimuoverlo significa rimuovere il sottoalbero; se un cliente è un pulviscolo di righe etichettate con un identificativo cliente, la chiusura del rapporto è una lista di controllo che qualcuno spera sia completa.

Dove si colloca Lurno, e che cosa la struttura non risolve

Lurno è costruito per questa forma. Un'organizzazione contiene sotto-organizzazioni, ciascuna con un brand proprio e un dominio personalizzato proprio con TLS automatico, così il personale di un cliente accede all'indirizzo del cliente. Dentro un'organizzazione c'è un secondo albero, fatto di rami, per le sedi e i dipartimenti di quel cliente, e un ruolo assegnato su un ramo scende a cascata lungo di esso. I contenuti si scrivono una volta sola sull'organizzazione padre, poi vengono condivisi con un'organizzazione cliente oppure copiati in profondità al suo interno.

Il confine fra i tenant è imposto in Postgres e non nel codice applicativo: 868 policy di row-level security distribuite su 676 migrazioni. Un endpoint che si dimentica il filtro non restituisce niente invece del personale di qualcun altro — è l'affermazione che vale la pena mettere alla prova con qualsiasi fornitore, la nostra compresa. Una forma che questo modello già regge, senza fare nomi: un'academy aziendale che eroga formazione per 15 aziende clienti da un unico tenant.

Quattro cose non si risolvono disegnando bene l'albero. Qui sono dette per Lurno; le chieda tali e quali a chiunque altro.

  • Fatturare al cliente. I pagamenti e il checkout sono in sviluppo. Oggi il cliente viene fatturato fuori dalla piattaforma e la piattaforma registra a che cosa ha diritto. Questo corrisponde a come il denaro già si muove per la maggior parte degli enti di formazione, ma il pagamento con carta al momento dell'iscrizione è una conversazione, non una funzionalità.
  • Far entrare le persone. Gli account si creano su invito; la registrazione self-service è in sviluppo. La risposta pratica è un amministratore del cliente che importa da sé le proprie persone invece di mandarle un foglio di calcolo.
  • Autenticazione. L'accesso partner (silent SSO) è disponibile: il sistema del cliente consegna un utente con un'assertion firmata. SAML e OIDC sono in roadmap e non rilasciati. Se l'ufficio IT di un cliente ha già deciso come si autentica il proprio personale, lo chieda al primo incontro e non al quinto.
  • Standard. SCORM, xAPI e LTI sono modellati nel prodotto, ma il runtime è in sviluppo. Un cliente che insiste per portare i propri pacchetti SCORM resta bloccato su questo punto, e va detto presto.

La versione di questo modello dal lato dell'ente di formazione è descritta nella pagina enti di formazione. La versione interna — in cui le sotto-organizzazioni sono le sue aree geografiche e non un'altra azienda — è nella pagina corporate.

In breve

Condivida i contenuti lungo l'albero. Separi di lato le persone, i risultati, il brand e la reportistica. Colleghi un corso condiviso per riferimento invece di copiarlo, e tratti ogni copia divergente come una decisione che qualcuno ha firmato. Dia a ogni cliente un amministratore con ambito limitato al proprio nodo, e scopra dove quell'ambito viene imposto. Poi costruisca la sua vista su tutti e sedici i nodi: le domande che tengono in vita l'attività — quale cliente è diventato silenzioso, quale corso viene bocciato dappertutto — si possono porre solo dall'alto.