← Tutte le note

La seconda opinione vale solo se non conosce la prima

In qualsiasi lavoro di sviluppo serio esiste un momento di verifica: qualcuno rilegge, qualcuno collauda, qualcuno firma. Nella pratica quel momento è quasi sempre inefficace, e non perché il revisore sia distratto. È inefficace perché il revisore ha letto il piano prima di leggere il risultato.

Chi conosce il ragionamento verifica il ragionamento

Quando si spiega a un collega cosa si è fatto e perché, gli si sta consegnando anche la griglia con cui giudicarlo. Da quel momento la revisione risponde a una sola domanda — il codice fa quello che l’autore ha detto di voler fare? — e quella domanda ha quasi sempre risposta sì. Non è pigrizia: è come funziona l’attenzione quando il contesto è condiviso.

La domanda che nessuno pone è l’altra: cosa succede in tutti i casi che l’autore non ha considerato? Per porla bisogna non sapere cosa l’autore ha considerato.

Cosa trova davvero chi guarda solo il diff

Tre esempi reali, ripuliti da ogni riferimento: tutti e tre passati da una revisione interna, tutti e tre fermati da una revisione che non aveva visto nulla se non le righe cambiate.

  • Un blocco di accesso a un servizio esterno, messo lì per impedire due chiamate contemporanee. Corretto nel caso normale. Se però l’operazione andava in errore, il blocco non veniva mai rilasciato: da quel momento l’intero servizio restava fermo fino al riavvio. Chi aveva scritto la modifica ragionava sul caso che voleva risolvere.
  • Un controllo automatico di conformità che, quando il dato era ambiguo, lasciava passare. Un controllo che in caso di dubbio dice sì non è un controllo: è un timbro.
  • Un documento di collaudo che citava righe di codice non più esistenti e dichiarava una copertura di test superiore a quella reale. Il software funzionava. Il documento su cui il cliente avrebbe basato l’accettazione, no.

Il difetto più caro non è nel codice: è nell’affermazione

Il terzo caso è quello che oggi conta di più. Con il codice generato in fretta — dalle persone o dagli strumenti — la parte che si degrada per prima non è la logica: sono le affermazioni sul lavoro svolto. Quali file sono cambiati, quanti test coprono cosa, cosa è stato verificato davvero e cosa solo dichiarato.

Un’affermazione sbagliata in un documento di rilascio non genera un errore a video. Genera una decisione presa su un presupposto falso, e la decisione arriva sempre più in alto del difetto.

Come si organizza in pratica

Non serve un reparto qualità. Servono tre regole:

  1. Chi verifica non riceve il piano, solo il risultato e i requisiti originali.
  2. Ogni verdetto ha un’evidenza allegata: il comando eseguito, l’output, la riga. Senza evidenza il verdetto è non verificato — che è un esito legittimo, a differenza di un conforme inventato.
  3. I rilievi si chiudono o si motivano, mai si archiviano in silenzio.

Costa qualche ora per rilascio. Il confronto non è con il tempo risparmiato saltandola, ma con il costo di scoprire in esercizio che il controllo era un timbro.

Parliamone