Il sistema da cui dipendono le operazioni di un'azienda – quello che gestisce ordini, politiche, file o spedizioni – non si costruisce accumulando frammenti generati al volo. Richiede un modello dati definito, contratti tra i moduli, un modello di autorizzazioni e tracciabilità, e queste quattro cose sono decisioni prese da qualcuno, non risultati ottenuti.
La confusione nasce dal fatto che la generazione assistita funziona molto bene in periferia, e questo crea l'aspettativa che funzioni allo stesso modo anche nel centro.
Criterio | Sistema centrale | Sistema periferico |
|---|---|---|
Se smette di funzionare | L'azienda per | Qualcuno è turbato |
vita utile prevista | 5-15 anni | Mesi o qualche anno |
Numero di integrazioni | Molti e critici | Pochi o nessuno |
Il costo di un errore | Denaro, cliente o evasione dell'ordine | Tempo sprecato |
Chi dovrebbe essere in grado di sostenerlo? | Qualsiasi squadra competente | Chi è stato? |
La prima riga è sufficiente per classificare i casi 90%. Se la risposta alla domanda "cosa succede se smette di funzionare per un giorno?" è che si bloccano la fatturazione, la produzione o il servizio clienti, allora si tratta di un'attività fondamentale e merita di essere trattata come tale, indipendentemente dalle sue dimensioni.
Un errore comune è quello di presumere che il sistema centrale sia l'elemento più importante. Esistono piccoli sistemi da cui dipende l'intera operazione e sistemi enormi di cui nessuno sentirebbe la mancanza per una settimana.
Il modello dati. Come vengono rappresentate le entità aziendali: cos'è un cliente, un file, una spedizione; quali relazioni intrattengono; quali stati attraversano. Questa è la decisione più costosa da annullare, perché tutto il resto si basa su di essa.
Confini di proprietà. Quale modulo ha la precedenza su quali informazioni e su quale query? Senza questa decisione, tre sistemi sembrano scrivere gli stessi dati e non c'è modo di sapere quale sia quello corretto.
Il modello delle autorizzazioni. Chi vede cosa e chi può fare cosa, definito a livello di sistema e non come condizioni ripetute in tutta l'applicazione. È questo che determina se una procedura guidata, un portale clienti o un'API potranno essere aggiunti domani senza creare una vulnerabilità.
Tracciabilità. Cosa viene registrato per ogni modifica e per quanto tempo. È un processo irreversibile: ciò che non è stato salvato non esiste.
Nessuno dei quattro può essere delegato a uno strumento di generazione automatica, perché tutti dipendono dalla conoscenza del business e dalla capacità di anticiparne i cambiamenti.
Sarebbe assurdo rinunciare alla velocità disponibile. All'interno di un nucleo ben strutturato, la generazione assistita offre buone prestazioni in:
La regola è semplice: La costruzione viene delegata, non la struttura.. E la revisione rimane obbligatoria, per il motivo che abbiamo spiegato in Il codice che nessuno capisce è il debito.
Esiste un criterio operativo per determinare se un sistema centrale è ben costruito, e non richiede un audit: Un altro team potrebbe subentrare nella gestione di questo sistema in un mese, senza parlare con chi lo ha creato?
Affinché la risposta sia affermativa, sono necessarie quattro cose: documentazione dell'architettura, contratti di integrazione versionati, test che esprimano le aspettative aziendali e decisioni spiegate per iscritto.
Un sistema che non supera questo test rappresenta un rischio operativo reale, a prescindere dalla sua qualità tecnica: la continuità aziendale dipende dalla disponibilità di personale specifico. Inoltre, ha un impatto finanziario, poiché è proprio questo l'aspetto penalizzato in un processo di due diligence tecnologica.
Poiché la barriera d'ingresso per produrre qualcosa che funziona si è abbassata notevolmente, e con essa anche la barriera per produrre qualcosa che funziona ma non è sostenibile.
I dati di GitClear su 211 milioni di righe di codice rivelano un modello: il lavoro di refactoring è diminuito da circa 251 TP3T di modifiche totali nel 2021 a meno di 101 TP3T nel 2024, mentre la replicazione è aumentata di otto volte. Si costruisce di più e si struttura di meno, e in un sistema periferico questo è gestibile; in un sistema centrale, è un peso.
Quando si tratta di decidere come costruire un sistema critico, la discussione utile non riguarda la metodologia o gli strumenti. Riguarda tre impegni:
Con questi tre compromessi, la velocità di generazione è un vantaggio. Senza di essi, è il modo più veloce conosciuto per costruire qualcosa che nessuno può modificare.
È il sistema da cui dipende l'intera operazione: se smette di funzionare anche solo per un giorno, la fatturazione, la produzione o l'assistenza clienti si bloccano. Non è definito dalle sue dimensioni – esistono sistemi centrali di piccole dimensioni e sistemi di grandi dimensioni che non lo sono – ma dalle conseguenze della sua indisponibilità.
Quattro: il modello dati che rappresenta le entità aziendali, i confini di proprietà che determinano quale modulo ha il controllo su quali informazioni, il modello di autorizzazioni risolto come livello di sistema e la tracciabilità delle modifiche. Nessuno di questi può essere delegato a uno strumento di generazione.
Sì, all'interno di una struttura predefinita: implementazione di regole prestabilite, un livello di presentazione, trasformazioni con criteri di accettazione espliciti e documentazione dei casi precedentemente descritti. La regola è delegare la costruzione, non la struttura.
Il test di passaggio di consegne consiste nel valutare se un altro team sia in grado di subentrare entro un mese senza consultare il team originale. Ciò richiede documentazione architetturale, accordi di integrazione versionati, test che dimostrino le aspettative aziendali e decisioni chiaramente spiegate.
Un rischio operativo (la continuità dipende da persone specifiche) e un rischio finanziario, perché è proprio questo che viene penalizzato in una due diligence tecnologica quando si valuta un'azienda o si cerca un investimento.
Perché la barriera alla produzione di codice funzionante si è abbassata significativamente. GitClear ha documentato che il refactoring è diminuito da circa 25% di modifiche totali nel 2021 a meno di 10% nel 2024 e che la duplicazione è aumentata di otto volte: si costruisce di più e si struttura di meno, il che in un sistema critico diventa un peso.
Hai intenzione di costruire un sistema da cui dipenderà la tua attività? Definiamo l'architettura, il modello dati e i contratti prima di scrivere il codice, e vi trasferiamo il codice e la documentazione tramite contratto. Parliamone → |