Quando un progetto va live e ti lascia addosso un senso di fallimento


Ci sono progetti che, finche’ li sviluppi, ti sembrano sotto controllo.

Li apri sul tuo computer e funzionano. Li provi in staging e funzionano. Li fai vedere a qualcuno e, piu’ o meno, funzionano. A un certo punto inizi quasi a convincerti che il difficile sia passato.

Poi arriva il live.

Ed e’ li’ che il software smette di essere un progetto e diventa una responsabilita’.

Nelle ultime settimane ho scritto un software frontend/backend per gestire le votazioni di un referendum. Non era un progettino laterale, non era una demo, non era un esercizio per vedere se una certa architettura stava in piedi. Era una cosa reale, con utenti reali, tempi reali, aspettative reali.

Forse e’ anche per questo che mi aspettavo un’altra sensazione nel momento in cui sarebbe andato online. Pensavo sollievo, soddisfazione, magari anche un po’ di orgoglio.

Invece quello che mi e’ rimasto addosso e’ stato soprattutto altro.

Quando il codice esce dalla tua testa

Finche’ sviluppi, il software vive in un ambiente che in qualche modo ti appartiene. Anche quando e’ complesso, anche quando hai mille pezzi da far combaciare, resta dentro un perimetro che controlli quasi tutto tu.

Il live rompe quel perimetro.

All’improvviso non conta piu’ solo se una funzione restituisce il dato giusto. Conta quando lo restituisce, quante volte, in che ordine, sotto quale carico, con quali effetti collaterali, con quali cache in mezzo, con quali richieste concorrenti, con quali assunzioni silenziose che in sviluppo non facevano rumore e in produzione invece diventano il problema.

Nel mio caso non e’ andata come speravo.

Ci sono stati blocchi lato server. Ci sono state scelte di caching che in produzione si sono rivelate sbagliate o comunque inadatte. Ci sono stati punti della logica che, davanti al comportamento reale del sistema, non hanno retto come pensavo.

Detto cosi’ sembra quasi un elenco tecnico. Ma non e’ solo questo.

Perche’ quando succede davvero, non lo vivi come una lista di bug. Lo vivi come una perdita di fiducia, almeno temporanea, in quello che avevi costruito.

La parte che pesa davvero

La cosa piu’ scomoda da ammettere e’ che non mi ha colpito solo il problema tecnico. Mi ha colpito la distanza tra come immaginavo il progetto e come si e’ comportato nel momento piu’ importante.

Quella distanza fa male in un modo strano.

Perche’ quando lavori a un sistema del genere non ci metti dentro solo ore. Ci metti attenzione, ragionamento, ipotesi, scelte, compromessi. Ci metti anche una parte di fiducia personale: l’idea che, pur con tutti i limiti, quello che stai costruendo reggera’ abbastanza bene da meritarsi il momento in cui verra’ usato davvero.

Quando poi non succede, e il live ti restituisce blocchi, tensione e comportamenti che non avevi previsto nel modo giusto, la sensazione non e’ soltanto “ho commesso degli errori”.

La sensazione, almeno per me, assomiglia di piu’ a un fallimento.

Non necessariamente un fallimento assoluto, non una sentenza definitiva sul mio lavoro, ma qualcosa che gli assomiglia abbastanza da non poterlo chiamare con un nome piu’ comodo.

La tentazione di raccontarsela meglio

In questi casi sarebbe facile scriverla in modo pulito.

Dire che ogni progetto insegna qualcosa. Dire che la produzione e’ la vera maestra. Dire che dagli errori si impara.

Sono tutte frasi vere, ma dette troppo presto diventano quasi un modo elegante per non stare davvero dentro al problema.

Prima della lezione, almeno per come la vivo io, c’e’ un passaggio meno nobile: prendere atto che il software non ha retto come avrebbe dovuto e che questa cosa mi ha colpito piu’ di quanto volessi ammettere.

Perche’ non e’ solo il sistema ad essersi inceppato. Si e’ inceppata anche l’immagine mentale che avevo del progetto.

E forse questa e’ la parte piu’ amara: non vedere soltanto cosa si e’ rotto, ma vedere incrinarsi l’idea che avevi di averlo capito abbastanza bene.

Il punto in cui la responsabilita’ brucia

Quando un progetto fallisce in privato, resta un problema tecnico. Quando inciampa davanti agli utenti, diventa qualcosa di piu’ esposto.

Ti senti osservato anche se magari nessuno ti sta guardando davvero. Ti senti responsabile anche oltre la quota razionale. E ogni malfunzionamento pesa il doppio, perche’ non e’ piu’ solo una questione di sistema: e’ una questione di affidabilita’, di credibilita’, quasi di identita’ professionale.

Forse e’ esagerato dirlo cosi’. Ma sarebbe piu’ falso ridurlo a un semplice incidente di percorso.

Ci sono errori che correggi e basta. Altri invece ti restano addosso perche’ ti obbligano a chiederti non solo cosa si e’ rotto, ma come hai potuto pensare che fosse abbastanza solido.

Quello che oggi faccio fatica a dire bene

Oggi faccio fatica a trasformare tutto questo in una morale ordinata.

Non mi viene da dire che in fondo e’ andata bene lo stesso. Non mi viene da dire che era tutto previsto. Non mi viene nemmeno da raccontarla come una bella storia di crescita, almeno non ancora.

Quello che sento adesso e’ piu’ ruvido.

Sento disappunto. Sento stanchezza. Sento quella forma di delusione che arriva quando hai lavorato seriamente a qualcosa e poi, nel momento in cui doveva reggere, la realta’ ti mostra che non eri pronto quanto pensavi.

E insieme a questo sento anche una parola che di solito, nel nostro lavoro, si evita per istinto: fallimento.

Non mi piace usarla, ma girarci intorno mi sembrerebbe ancora meno onesto.

Forse il punto e’ proprio non addolcirlo subito

Magari tra qualche settimana guardero’ questa esperienza con piu’ lucidita’. Magari riusciro’ a sezionare meglio gli errori: server, caching, concorrenza, ipotesi architetturali, test insufficienti, mancanza di simulazioni realistiche. Magari riusciro’ anche a scrivere un post tecnico piu’ utile e meno emotivo.

Ma questo non e’ quel post.

Questo e’ il punto in cui provo a non raccontarmela meglio di com’e’ andata.

Ho scritto un software a cui tenevo. L’ho visto andare live in modo diverso da come speravo. E la sensazione che mi ha lasciato addosso non e’ una lezione elegante. E’ un misto di frustrazione, amarezza e fallimento.

Forse la parte utile verra’ dopo. Oggi, pero’, la verita’ che sento e’ questa.