
Il momento in cui un sistema va in produzione viene vissuto come una fine. È l'inizio: da lì il software comincia a essere usato, quindi a rompersi, a dover cambiare e a costare. Se questa parte non è stata messa a budget, il costo arriva lo stesso — sotto forma di interventi urgenti non pianificati, che sono la forma più cara di manutenzione.
Vale la pena guardare le voci una per una, perché sono poche e sono tutte prevedibili.
È il costo di tenere il sistema acceso: server, database, spazio per i file, banda, certificati, servizi terzi eventualmente usati (invio email, mappe, pagamenti). Dipende dal carico e dalle esigenze di continuità, quindi non esiste un numero universale, ma esiste un principio: dimensionare per il carico reale e non per quello immaginato, e rivedere periodicamente.
È anche la voce dove si spreca più facilmente. Ambienti di test lasciati accesi, macchine sovradimensionate "per sicurezza", backup conservati per anni senza una politica: sono soldi che escono ogni mese senza che nessuno se ne accorga, perché la cifra singola è piccola. Una revisione annuale della spesa infrastrutturale è una delle attività con il miglior rapporto fra tempo speso e risparmio.
Nel nostro modello di lavoro l'infrastruttura è un canone mensile dichiarato, separato dallo sviluppo. Tenere le due voci distinte serve a una cosa concreta: sapere sempre quanto costa esistere e quanto costa evolvere, che sono decisioni diverse.
Anche un software a cui non chiedete alcuna modifica ha bisogno di lavoro, perché il mondo intorno si muove: sistemi operativi e librerie ricevono aggiornamenti di sicurezza, i browser cambiano comportamento, i servizi esterni aggiornano le proprie interfacce, e le norme cambiano.
Questa manutenzione ha una proprietà scomoda: rimandarla non la elimina, la rende più cara. Un sistema aggiornato regolarmente richiede interventi piccoli e frequenti. Un sistema fermo per tre anni richiede un progetto di rimessa in sicurezza — con il rischio aggiuntivo che, nel frattempo, una vulnerabilità nota sia rimasta aperta.
Un modo semplice per non farla scivolare: fissare una finestra periodica, anche breve, dedicata solo a questo. Non è tempo sottratto alle funzionalità, è tempo che evita di doverne sottrarre molto di più più avanti.
È la voce più grande, ed è anche l'unica che è una buona notizia: significa che il sistema viene usato. Le richieste arrivano perché le persone hanno capito cosa potrebbe fare, ed è esattamente ciò che deve succedere.
Il modo di gestirla cambia molto il costo. Le richieste raccolte e affrontate a blocchi costano meno di quelle affrontate una alla volta appena arrivano, perché ogni ripartenza ha un costo fisso. Avere una persona interna che filtra e dà priorità — anche non tecnica — vale più di qualsiasi ottimizzazione tecnica.
Il nostro modo di lavorare, dopo il primo progetto, è di sviluppo continuativo: non un preventivo per ogni virgola, ma un flusso costante con priorità decise insieme. Serve a togliere attrito su una cosa che altrimenti diventa una negoziazione settimanale.
È la parte che si vede solo quando serve, e quando serve conta più di tutto il resto. Le domande da porre — a noi come a chiunque — sono tre: entro quanto rispondete, entro quanto risolvete, e chi risponde quando succede di sabato.
Includiamo sei mesi di assistenza dopo la consegna, con i ticket urgenti gestiti entro 24 ore e reperibilità 7 giorni su 7. La ragione per cui la reperibilità è parte dell'accordo e non un favore è semplice: un sistema che gestisce ordini o produzione non si ferma nei giorni feriali per cortesia.
C'è una voce che pesa quanto le altre e non appare da nessuna parte: la dipendenza da una sola persona. Se il vostro sistema può essere modificato solo da chi lo ha scritto, ogni intervento futuro è prezzato in una posizione di forza che non è la vostra.
Le tre difese sono note e costano poco se applicate da subito: il codice deve stare in un repository intestato a voi; deve esistere una documentazione minima che spieghi come si mette in piedi l'ambiente e come si rilascia; e almeno una volta qualcuno diverso dall'autore deve aver fatto un rilascio, per verificare che sia possibile.
Non è sfiducia verso il fornitore. È la condizione che rende sana la relazione, e un fornitore serio la propone da solo.
Ce ne sono due che non compaiono quasi mai nelle previsioni iniziali e che invece arrivano puntuali.
La prima sono i servizi di terzi. Un sistema di invio email, un servizio di mappe, un fornitore di pagamenti, un servizio di firma digitale: singolarmente sono cifre piccole, e crescono con l'uso. È buona norma sapere fin dall'inizio quali sono, con quale logica costano, e quale sarebbe l'alternativa se uno di essi cambiasse condizioni. Non serve prevedere tutto: serve non scoprirlo il mese in cui il volume raddoppia.
La seconda è la crescita dei dati. Un archivio che accumula documenti, immagini o registri cresce in modo silenzioso e costante. Senza una politica di conservazione — cosa si tiene, per quanto, cosa si archivia altrove — lo spazio occupato e il costo dei backup salgono ogni anno. Deciderlo il primo anno costa un'ora di discussione; deciderlo al quinto significa dover ragionare su dati che qualcuno nel frattempo ha imparato a dare per sempre disponibili.
Tre abitudini, non di più. Guardate la spesa infrastrutturale una volta l'anno con qualcuno che sappia leggerla. Tenete separate in bilancio le tre voci — infrastruttura, manutenzione, evoluzione — perché mescolate diventano un unico numero che non si può discutere. E decidete in anticipo, ogni anno, quanto siete disposti a investire in evoluzione: senza un tetto, le richieste tendono a espandersi fino a occupare tutto il budget disponibile.
Il costo di un software non è il prezzo del progetto: è il prezzo del progetto più cinque anni di vita. La differenza fra le due cifre è dove si decide se l'investimento è stato buono.
