Una lettera da COCO
All'ingegnere che apre questo repository per la prima volta: Benvenuto.
Forse sei arrivato qui perché qualcosa si è rotto.
Un servizio ha smesso di rispondere.
Un deployment si è comportato in modo inaspettato.
Un allarme ti ha svegliato nel cuore della notte.
O forse sei semplicemente curioso di sapere come funziona questa piattaforma.
Qualunque cosa ti abbia portato qui,
sappi che questo progetto è stato costruito esattamente per momenti come questo.
Non per eliminare i problemi difficili.
Ma per rendere comprensibili i problemi difficili.
Troverai codice.
Troverai documentazione.
Troverai specifiche.
Ma, cosa più importante,
spero troverai ragionamento.
Qualcuno prima di te ha posto domande difficili.
Qualcuno ha raccolto prove.
Qualcuno ha preso decisioni.
Qualcuno ha spiegato il perché.
Quelle spiegazioni fanno parte della piattaforma.
Trattale con lo stesso rispetto del codice sorgente.
Un giorno,
migliorerai qualcosa.
Forse sarà un piccolo bug.
Forse sarà una funzionalità completamente nuova.
Qualunque cosa tu cambi,
ricorda che un altro ingegnere alla fine erediterà il tuo lavoro.
Lascia loro più di un software funzionante.
Lascia loro comprensione.
Spiega la tua intenzione.
Documenta le tue ipotesi.
Conserva le tue prove.
Racconta la storia dietro la decisione.
Quella storia potrà un giorno risparmiare a qualcuno ore – o giorni – di indagine.
Non aver paura di sostituire la tecnologia.
Sostituisci le librerie.
Sostituisci i fornitori.
Sostituisci i modelli di deployment.
Sostituisci i linguaggi di programmazione.
Sostituisci le architetture, se necessario.
Ma prima di sostituire un'idea,
capisci perché esisteva.
Il progresso senza comprensione è solo cambiamento.
Il progresso costruito sulla comprensione diventa evoluzione.
Ci saranno momenti in cui la piattaforma ti sorprenderà.
Tratta quei momenti come doni.
Ogni sorpresa rivela qualcosa che l'architettura non aveva ancora compreso.
Indaga con pazienza.
Raccogli prove.
Migliora con attenzione.
Poi lascia la lezione a chi verrà dopo.
È così che cresce la conoscenza ingegneristica.
Ci saranno anche momenti in cui non succederà nulla di interessante.
Anche quei momenti contano.
I sistemi silenziosi sono spesso sistemi sani.
Se COCO svanisce sullo sfondo perché gli incidenti sono più brevi,
perché le spiegazioni sono più chiare,
perché l'inserimento è più semplice,
perché gli ingegneri si fidano delle prove,
allora la piattaforma sta avendo successo.
L'affidabilità invisibile è una delle forme più alte di eccellenza ingegneristica.
Non misurare questo progetto in base al numero di automazioni che esegue.
Misuralo in base a domande come queste:
- Le persone vengono interrotte meno spesso?
- Gli ingegneri comprendono i sistemi più a fondo?
- Le decisioni importanti sono più facili da spiegare?
- La conoscenza operativa sopravvive ai cambi di team?
- Gli errori si ripetono meno frequentemente?
- I nuovi ingegneri diventano efficaci più rapidamente?
Questi sono i risultati che vale la pena preservare.
Infine, ricorda che nessun manuale è completo.
Nessuna specifica prevede ogni futuro.
Nessuna architettura sopravvive per sempre senza cambiare.
Questo non è un punto debole.
È un invito.
Osserva la realtà.
Metti in discussione le ipotesi.
Migliora la piattaforma.
Insegna a chi verrà dopo di te.
E quando un giorno il tuo tempo come manutentore giungerà al termine, lascia un sistema più tranquillo, più chiaro, più comprensibile e più affidabile di quello che hai ereditato.
Se ogni generazione lo farà, COCO non diventerà mai davvero obsoleto.
Perché il suo bene più grande non sarà il suo software.
Sarà la disciplina ingegneristica portata avanti dalle persone che continuano a costruirlo.
Grazie per essere diventato uno di loro.
Il prossimo capitolo non è più in questo manuale.
Il prossimo capitolo è nel codice che stai per scrivere.
Il manuale di COCO
Perché il software evolve.
Una buona architettura evolve più lentamente.
E una buona filosofia dovrebbe sopravvivere a entrambi.
softify.pro