Per gruppi e più brand
Più aziende, una sola installazione, nessun cliente in comune
I gruppi di solito risolvono questo problema due volte male: o cinque installazioni separate e cinque volte tutto il resto, oppure una sola installazione e la solenne promessa che l'applicazione filtri sempre correttamente. La prima soluzione costa cara. La seconda è una promessa, e le promesse non sono un modello di sicurezza.
Se gestisci più di un'azienda — una holding con le sue controllate, un franchising, due marchi rivolti a mercati diversi, un'agenzia e l'attività che l'agenzia ha scorporato — conosci già la forma del problema. I marchi condividono persone, strumenti e un reparto finanziario. Non condividono i clienti, e non devono sembrare che lo facciano.
iKonekt le gestisce tutte da una sola installazione, e la separazione tra loro è garantita dal database e non dal codice. Questa distinzione suona accademica finché non arriva il giorno in cui non lo è più.
Perché questo livello è importante
Un filtro a livello applicativo è una frase dentro una query. Funziona finché ogni query che verrà mai scritta la contiene — compresa quella scritta di fretta, quella scritta dal nuovo sviluppatore, e quella scritta per un report che sarebbe stato usato una volta sola.
Sposta il confine nel database e l'aritmetica si ribalta. La policy viene eseguita su ogni lettura e ogni scrittura, sotto tutto. Una query che dimentica l'azienda non restituisce le righe sbagliate; non ne restituisce nessuna. La modalità di guasto diventa uno schermo vuoto e uno sviluppatore confuso, che è la modalità di guasto corretta.
Gli schermi vuoti sono una funzionalità. Preferiamo spiegare uno schermo vuoto a uno dei nostri ingegneri che spiegare un elenco di clienti a due clienti che non si aspettavano di incontrarsi.
- 1Clienti e conversazioniDelimitati. Un venditore del marchio A non può raggiungere quelli del marchio B, per costruzione e non per configurazione.
- 2Esclusive su un cliente"Abbiamo già questo account" è un blocco tenuto per azienda — così due marchi possono lavorare sullo stesso mercato senza scontrarsi.
- 3Prompt e impostazioniOgni azienda modifica i propri. L'unico punto in cui sono mai stati condivisi era un bug, ed è il bug di cui questo sistema è più orgoglioso di aver trovato.
- 4Programmi partnerUn modulo per azienda, non uno globale che tutti ereditano.
Confine applicato sotto l'applicazione
Cosa un gruppo condivide davvero
La separazione non è un isolamento fine a se stesso. Le cose che vale la pena condividere in un gruppo vengono condivise deliberatamente, e sono per lo più quelle noiose — il che è esattamente giusto, perché quelle noiose sono dove vive il costo duplicato:
- Una sola installazione da gestire e aggiornare. Un deployment, un solo set di credenziali da curare, una sola cosa da tenere aggiornata.
- Un solo team di persone, con cappelli diversi. Una persona può lavorare in più di un'azienda; ciò che non può fare è vederle entrambe contemporaneamente attraverso una query che ha dimenticato di chiedere.
- Un solo insieme di abitudini. Il modo in cui viene assegnato un contatto, il modo in cui si scrive una nota, il modo in cui un lavoro arriva a una fattura — imparato una volta, applicato ovunque, il che riduce l'onboarding a circa una mattinata.
- Un solo rapporto con il resto della famiglia. castomAPI sotto, lo stesso account, gli stessi connettori — configurati per azienda dove conta.
La domanda che un gruppo fa sempre per secondo
"Possiamo fare report su tutti insieme?" Sì — dal punto di vista del gruppo, deliberatamente ed esplicitamente, e non come effetto collaterale di un confine che perde. La distinzione è tutto il progetto: attraversare la linea deve essere un atto che qualcuno ha compiuto di proposito, con l'autorità per farlo. Non deve mai essere qualcosa che un identificatore smarrito riesce a fare per sbaglio.
E la domanda che fanno per terzo: "cosa succede se vendiamo uno dei marchi?" Un confine che il database mantiene è anche un confine da cui puoi estrarre una copia pulita. Non è una coincidenza — separazione e portabilità sono la stessa proprietà vista da due riunioni diverse.
Sotto il pavimento
Cosa tiene la linea, in concreto
Non un'affermazione, un elenco. Se un fornitore non riesce a produrre questo elenco sul proprio prodotto, vale la pena notarlo.
26
Tabelle che portano la loro azienda, con il vincolo forzato attivo e non semplicemente disponibile.
72
Policy, scritte una alla volta così che ognuna sia stata letta da una persona, e non generate in un ciclo.
942
Test, eseguiti su un database ricostruito da zero ogni volta che qualcosa cambia.
0
Aziende predefinite. Una richiesta senza ambito fallisce prima di raggiungere i dati — non c'è un fallback da dimenticare di disattivare.

«Cinque aziende, cinque installazioni, cinque fatture da te.»
Una sola installazione. Cinque confini che il database mantiene.
Persone condivise, abitudini condivise, piattaforma condivisa — e nemmeno un cliente condiviso. Attraversare quella linea deve essere qualcosa che una persona ha fatto di proposito, mai qualcosa che un identificatore è riuscito a fare per sbaglio.
Come è costruita la separazione →