Como uma empresa gere uma academia para quinze organizações cliente
Quinze clientes, uma academia, uma equipa de autoria. O que tem de ser partilhado, o que tem de ser separado, e o que acontece quando um cliente quer o curso alterado.
Uma empresa de formação que gere uma academia para quinze organizações cliente está a gerir dezasseis organizações, e não uma. Cada cliente quer a sua própria marca, o seu próprio domínio, os seus próprios administradores e os seus próprios relatórios. A empresa quer um único sítio onde escrever um curso e uma vista única sobre os quinze. Esses dois desejos puxam em direções opostas, e todo o desenho se reduz a uma única linha: os conteúdos descem pela árvore, as pessoas e os resultados nunca se deslocam lateralmente por ela.
Ponha essa linha no sítio errado e os sintomas são previsíveis. Ou está a manter à mão quinze cópias do mesmo curso alinhadas sempre que muda um regulamento, ou um administrador de um cliente abre um relatório e encontra lá o pessoal de outro cliente. A primeira hipótese é cara. A segunda acaba com o contrato.
A estrutura é simples: uma organização-mãe — a empresa de formação — e quinze organizações cliente dentro dela, cada uma livre de conter os seus próprios locais ou departamentos.
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 reportDezasseis nós, uma instalação, um ciclo de atualizações. O diagrama é a parte fácil. Quem edita o curso de segurança contra incêndios? Quem vê os números de conclusão do cliente 7? O que acontece quando o cliente 3 quer uma nota mínima diferente? Essas três perguntas são o trabalho todo.
Entrega de formação B2B2B
Uma organização que gere formação para outras organizações e não para o seu próprio pessoal. A entidade formadora detém o contrato da plataforma, escreve os conteúdos, e dá a cada organização cliente a sua própria academia com marca própria, os seus administradores e os seus relatórios. Os formandos são os colaboradores do cliente. A restrição que define tudo: a entidade formadora precisa de uma vista única sobre todos os clientes, e cada cliente de uma vista sobre nada mais do que ele próprio.
O que é partilhado e o que é separado
Duas listas. Quase todas as discussões operacionais aqui são um desacordo sobre em que lista é que uma coisa deve estar. Partilhado pela árvore abaixo, uma cópia, mantido pela entidade formadora:
- Programas, módulos e lições, escritos uma vez na organização-mãe.
- O banco de perguntas e as avaliações construídas a partir dele — quinze cópias de uma pergunta são quinze oportunidades para a chave de respostas se desviar.
- Os referenciais de competências, para que competente em movimentação manual de cargas signifique a mesma coisa em todas as organizações cliente.
- Os modelos de certificado — a disposição, as regras de validade, a página pública de verificação.
- As coisas que nunca quer ver variar: as regras de retenção, o registo de auditoria, o ciclo de atualizações, o trabalho de acessibilidade.
Separado lateralmente, um por cliente, nunca agrupado:
- Os utilizadores e o seu início de sessão. Uma pessoa pertence a uma organização cliente.
- As inscrições, o progresso, as tentativas, as notas, os certificados emitidos.
- A marca, e o domínio que o pessoal de um cliente escreve num navegador.
- Os administradores, e os papéis que lhes dão os seus direitos.
- O âmbito dos relatórios — todos os números que um cliente vê estão limitados pelo seu próprio nó.
- O endereço de onde saem as notificações, para que os lembretes cheguem ao pessoal de um cliente a partir do domínio do próprio cliente.
- Os registos de consentimento, e tudo aquilo por que a equipa jurídica do cliente tem de responder.
Depois há o meio incómodo: coisas que parecem conteúdo mas que carregam a identidade de um cliente. O certificado é o caso mais claro. A disposição, o período de validade e a página de verificação são seus; o logótipo, o signatário e a organização nele nomeada pertencem ao cliente. Uma plataforma que trata um certificado como um objeto indivisível obriga-o a bifurcar o modelo quinze vezes para mudar um logótipo. A regra que o mantém fora disso: a marca é configuração no nó do cliente, nunca uma cópia do conteúdo. A marca branca é uma superfície de configuração, não de autoria.
Escrever uma vez, entregar a quinze clientes
A organização-mãe detém a biblioteca principal. Um curso é escrito lá, revisto lá e publicado lá. É no que acontece a seguir que as plataformas diferem, e só existem dois mecanismos.
- Por referência. É concedido à organização cliente acesso ao curso da organização-mãe. Continua a haver uma só cópia, pelo que uma gralha que corrija chega a todos os clientes no momento em que publica. As inscrições e os resultados continuam no nó do cliente, porque essas coisas nunca foram partilhadas.
- Por cópia. O curso é copiado em profundidade para o nó do cliente — módulos, lições, perguntas, definições. O cliente passa a ter um objeto separado que pode mudar de forma independente, e nada do que fizer a montante volta a chegar-lhe. Um programa a sério é um objeto grande, pelo que essa cópia corre como uma tarefa em segundo plano.
A referência é o valor por omissão, e sair dela deve ser desconfortável. Assim que um curso existe em quinze cópias, a atualização regulamentar do ano seguinte são quinze edições, quinze revisões e quinze oportunidades para falhar uma.
Um curso partilhado deve ser ligado a cada cliente ou copiado?
Ligue por referência, a não ser que o próprio conteúdo tenha de ser diferente. Uma referência mantém um único original, pelo que uma correção chega a todos os clientes no momento em que é publicada, enquanto as inscrições e os resultados ficam dentro da organização de cada cliente. Copie apenas quando um cliente tiver uma razão real para divergir: um regulador diferente, uma nota mínima escrita no contrato dele, uma política que tenha de constar do material. Uma cópia é uma obrigação de manutenção permanente — deixa de receber as alterações a montante, e nada lhe vai dizer mais tarde que ficou para trás.
Quando um cliente pede uma alteração a um curso partilhado
É este o pedido que decide quão caro será o terceiro ano. Chega informalmente — podem acrescentar o nosso processo de reporte de incidentes ao módulo 3 — e há quatro respostas honestas para ele.
- É uma correção. O conteúdo está errado, ou desatualizado, para toda a gente. Corrija o original e todos os clientes ficam com a correção. Há mais pedidos que são secretamente este do que as entidades formadoras esperam, e o cliente que deu por isso costuma ter razão.
- É apresentação. Querem o logótipo deles, as cores deles, a terminologia deles. Nada disso é conteúdo. É configuração no nó deles e, se a plataforma o obriga a bifurcar um curso para mudar um logótipo, a culpa é da plataforma e não do pedido.
- É aditivo. Querem alguma coisa a mais, não alguma coisa diferente — é a resposta que a maioria das entidades formadoras não vê. Ponha um módulo exclusivo do cliente na organização dele, ao lado do programa partilhado. O curso partilhado continua partilhado, e o cliente consegue muitas vezes manter ele próprio o material adicional.
- É uma divergência genuína. O regulador deles fixa a nota mínima em 80 onde a sua é 70. Aí bifurca — e a bifurcação recebe uma data, um dono e uma linha num registo, porque daqui a dezoito meses alguém vai perguntar por que razão a versão do cliente 9 é diferente, e acho que foi um cliente que pediu não é uma resposta.
Uma bifurcação é uma decisão com uma data, um dono e uma razão, e conseguem contar-se pelos dedos de uma mão.
Quinze cópias ligeiramente diferentes do mesmo curso, e ninguém tem a certeza de qual delas é a atual.
Acesso: os administradores deles, as pessoas deles, e de mais ninguém
Um administrador de um cliente tem um trabalho estreito: acrescentar e remover o seu próprio pessoal, inscrevê-lo, ir atrás dos que não terminaram, e extrair um relatório que a administração deles aceite. Tudo isso sem lhe enviar um email, e nada disso fora da sua própria organização.
O que torna isso barato é um âmbito que se propaga: atribua um papel num nó e ele aplica-se a tudo o que está por baixo. O diretor de formação de um cliente é uma atribuição na organização cliente, e os departamentos dele ficam incluídos automaticamente. Um responsável de local é uma atribuição no local. Quando um departamento fecha, remove-se o nó em vez de andar à caça de atribuições que lhe sobreviveram.
A metade mais difícil é o seu próprio pessoal, não o deles. A sua equipa de autoria trabalha sobre os conteúdos de todos os clientes e não tem nada que ler registos de formandos. O gestor de conta dos clientes 1 a 5 precisa dos resultados desses e de nada dos clientes 6 a 15. Um papel único de administrador na organização-mãe entrega tudo a toda a gente, que é como uma entidade formadora acaba com uma dúzia de pessoas capazes de exportar a lista de pessoal de qualquer cliente. Papéis personalizados construídos a partir de um catálogo de permissões, atribuídos no nó certo, custam uma tarde.
Um administrador de um cliente pode ver os formandos de outros clientes?
Não, se a fronteira for imposta abaixo da aplicação. Pergunte a um fornecedor onde é que vive a verificação. Se os clientes forem separados por um filtro que o código da aplicação se lembra de aplicar, a separação aguenta-se até alguém lançar um ponto de exportação sem ele. Se for imposta na base de dados com segurança ao nível da linha, uma consulta que se esqueça do filtro devolve nada, em vez do pessoal de outro cliente. Todas as revisões de segurança dos clientes perguntam isto de uma forma ou de outra, por isso tenha a resposta por escrito antes.
Relatórios, dos dois lados
O que o cliente vê
As suas próprias pessoas e as de mais ninguém: quem está inscrito, quem terminou, quem está em atraso, quem chumbou duas vezes numa avaliação — desagregado pelos seus departamentos, exportável, com a sua própria marca. O âmbito desse relatório é a mesma fronteira de nó que os protege, pelo que há um único mecanismo a fazer os dois trabalhos, em vez de um modelo de segurança e um modelo de relatórios que têm de estar de acordo.
O que você vê
Todos os nós ao mesmo tempo. Os números com que gere o negócio atravessam os clientes e são invisíveis a partir de dentro de qualquer cliente isolado: que clientes não inscreveram ninguém em seis semanas, quais estão perto do número de lugares contratado, que curso está a correr mal em todo o lado e tem, portanto, um problema de conteúdo e não um problema de cliente. Este último é o argumento mais forte a favor de um inquilino único em vez de quinze instalações separadas, onde o mesmo padrão é uma folha de cálculo que alguém reconstrói todos os trimestres, se é que a reconstrói.
A funcionalidade tentadora a seguir é a comparação de referência: dizer ao cliente 4 que está no quartil superior. Resolva duas coisas primeiro. Contratualmente, se cada cliente concordou que os seus resultados agregados podem ser comparados com os de outras organizações. Tecnicamente, um tamanho mínimo de grupo, para que uma comparação entre alguns clientes pequenos não possa ser revertida numa afirmação sobre um deles.
O que deve uma organização cliente ver nos seus próprios relatórios?
Tudo sobre as suas próprias pessoas e nada sobre as de mais ninguém: inscrições, conclusões, formandos em atraso, resultados de avaliações e certificados emitidos, desagregados pelos seus próprios departamentos e exportáveis. As comparações entre clientes são uma decisão separada, que exige o acordo de cada cliente e um tamanho mínimo de grupo, porque uma comparação entre algumas organizações pequenas pode ser revertida numa afirmação sobre uma delas.
A quem pertencem os dados dos formandos numa academia B2B2B?
Normalmente à organização cliente, com a entidade formadora a agir segundo as instruções dela e o fornecedor da plataforma por baixo das duas. Resolva isto antes de o primeiro cliente assinar: quem é o responsável pelo tratamento, quem é o subcontratante, quem responde a um pedido de acesso do titular dos dados, e o que acontece aos resultados quando um cliente sai. É a esta última pergunta que se responde pior. Se um cliente é uma subárvore, removê-lo é remover a subárvore; se um cliente é um punhado disperso de linhas marcadas com um identificador de cliente, a saída é uma lista de verificação que alguém espera que esteja completa.
Onde a Lurno se situa, e o que a estrutura não resolve
A Lurno foi construída para este formato. Uma organização contém sub-organizações, cada uma com a sua própria marca e o seu próprio domínio personalizado com TLS automático, pelo que o pessoal de um cliente inicia sessão no endereço do cliente. Dentro de uma organização há uma segunda árvore de ramos para os locais e departamentos desse cliente, e um papel atribuído num ramo propaga-se por ela para baixo. Os conteúdos são escritos uma vez na organização-mãe e depois partilhados com uma organização cliente ou copiados em profundidade para dentro dela.
A fronteira entre inquilinos é imposta no Postgres e não no código da aplicação: 868 políticas de segurança ao nível da linha ao longo de 676 migrações. Um ponto de acesso que se esqueça do filtro devolve nada, em vez do pessoal de outra pessoa — a afirmação que vale a pena testar com qualquer fornecedor, connosco incluídos. Um formato que isto já suporta, sem nomear ninguém: uma academia corporativa que dá formação a 15 empresas clientes a partir de um único inquilino.
Há quatro coisas que não se resolvem acertando na árvore. Ficam aqui declaradas para a Lurno; faça as mesmas quatro perguntas a qualquer outro.
- Faturar ao cliente. Os pagamentos e a finalização de compra estão em desenvolvimento. Hoje um cliente é faturado fora da plataforma, e a plataforma regista aquilo a que ele tem direito. Isso corresponde à forma como o dinheiro já se move na maioria das entidades formadoras, mas o pagamento com cartão no momento da inscrição é uma conversa e não uma funcionalidade.
- Fazer entrar as pessoas. As contas são criadas por convite; o registo self-service está em desenvolvimento. A resposta prática é um administrador do cliente que importa as suas próprias pessoas em vez de lhe enviar uma folha de cálculo.
- Autenticação. O início de sessão via parceiro (silent SSO) está disponível: o sistema do próprio cliente entrega um utilizador com uma asserção assinada. O SAML e o OIDC estão no roadmap e não foram lançados. Se o departamento de informática de um cliente já decidiu como é que o seu pessoal se autentica, pergunte na primeira reunião e não na quinta.
- Normas. O SCORM, o xAPI e o LTI estão modelados no produto, mas o runtime está em desenvolvimento. Um cliente que insista em trazer os seus próprios pacotes SCORM fica condicionado por isso, e isso tem de ser dito cedo.
A versão deste modelo do lado da entidade formadora está exposta em entidades formadoras. A versão interna — em que as sub-organizações são as suas próprias regiões e não outra empresa — está em corporativo.
A versão curta
Partilhe os conteúdos pela árvore abaixo. Separe lateralmente as pessoas, os resultados, a marca e os relatórios. Referencie um curso partilhado em vez de o copiar, e trate cada bifurcação como uma decisão que alguém assinou. Dê a cada cliente um administrador com âmbito no seu próprio nó, e descubra onde é que esse âmbito é imposto. Depois construa a sua própria vista sobre os dezasseis nós: as perguntas que mantêm o negócio vivo — que cliente ficou calado, que curso corre mal em todo o lado — só podem ser feitas a partir do topo.