Idea

Un sistema capito è un sistema che si saprebbe ricostruire

Info

Scritto originalmente in francese. Tradotto dall'IA — il significato è stato preservato, non la prosa.

Idea principale

Chiedersi «funziona?» davanti a un'applicazione sviluppata con un assistente non dice nulla su quanto la si padroneggi: schermate che rispondono, un database che esiste e un'API che gira convivono benissimo con centinaia di scelte tecniche che nessuno sa spiegare. La domanda che fa la differenza è un'altra: si saprebbe rifare questo sistema altrove, con un'altra tecnologia?

Rispondere di sì presuppone di sapere dove sono i contratti tra API, dove vivono le regole di dominio, quali test descrivono il comportamento atteso invece dell'implementazione attuale. Questi tre punti di riferimento non si ottengono a posteriori: si impongono durante la costruzione — pretendere i contratti, far produrre i set di test e poi la piramide dei test prima di sviluppare, rifiutare che la logica di dominio finisca sparsa negli endpoint, anche senza arrivare a un approccio DDD completo che il progetto non giustifica.

La ricostruzione non va intrapresa davvero. Serve come domanda di controllo, e la risposta misura quello che il team sa dire del sistema, non quello che il sistema mostra.

Perché è importante

Offre un criterio di qualità da far valere proprio dove la velocità di consegna non dice più niente. Una demo funzionante passa qualunque sia lo stato della comprensione; «saprei ricostruirlo?» fallisce esattamente quando la comprensione manca.

Trasforma anche la comprensione in un requisito di progettazione invece che in una virtù individuale: a renderla possibile sono linee di separazione riconoscibili, e quelle si decidono mentre si costruisce.

Sfumature e limiti

Nessuno ricostruisce per verificare che ne sarebbe stato capace. Il criterio resta quindi una domanda posta in coscienza, esposta all'indulgenza di chi risponde — un sistema può sembrare ricostruibile a chi l'ha guidato e non esserlo per nessun altro.

E non dice nulla del valore del sistema: si può saper rifare identica un'applicazione che non serve a nessuno, o la cui architettura è mediocre.

Domande aperte

  • Quale prova breve — far riprendere un modulo da qualcun altro, riscrivere un componente senza avere l'esistente sotto gli occhi — darebbe a questo criterio una verifica che non dipenda dall'autovalutazione?