
Algoritmi sotto pressione: lezioni ingegneristiche da tre incidenti storici
Il software raramente fallisce nei casi normali. Fallisce quando incontra scenari che nessuno aveva previsto. Heartbleed, la collisione di SHA-1 e il …
19/02/2026
27/03/2026 - 7 min di lettura

L’AI nel coding viene spesso valutata con la metrica sbagliata.
Ci chiediamo se il codice generato sia corretto. Se compili. Se i test passano. Se il tempo di delivery si riduce.
Sono domande legittime. Ma non sono il punto più interessante.
Il costo nascosto, quello che inizia a pesare davvero quando l’uso diventa quotidiano, non è l’errore evidente. È la perdita di contesto.
Ed è un problema più subdolo, perché all’inizio sembra produttività.
Gli strumenti di coding AI stanno evolvendo velocemente: sempre più spesso non si limitano ad autocomplete o chat, ma leggono il codebase, modificano file, eseguono comandi, lanciano test e propongono pull request. Anthropic descrive Claude Code come uno strumento capace di leggere l’intero progetto, lavorare su più file e integrarsi con tool e workflow di sviluppo; OpenAI presenta Codex come un agente che opera su repository pre-caricati, esegue comandi e produce modifiche verificabili in sandbox isolate.
Questo cambia il gioco.
Perché il vantaggio non è più solo “scrivere più velocemente”. È delegare pezzi interi del flusso di sviluppo.
E infatti GitHub osserva che nel 2025 l’attività degli sviluppatori ha raggiunto livelli record, con aumenti su push, pull request e issue chiuse, pur precisando che si tratta di segnali osservazionali e non di prove causali dirette dell’impatto AI.
Il rischio è confondere questo aumento di output con un aumento equivalente di comprensione.
Non sono la stessa cosa.
Nel lavoro reale di sviluppo, il collo di bottiglia raramente è digitare codice.
Il collo di bottiglia è mantenere una mappa mentale coerente del sistema:
capire dove vive la logica,
quali vincoli esistono,
quali dipendenze sono fragili,
quali convenzioni non scritte guidano davvero il progetto,
dove un cambiamento locale può creare un effetto a catena.
È proprio per questo che sempre più strumenti AI cercano di “caricare contesto”. GitHub documenta repository custom instructions, Spaces e integrazioni via MCP per migliorare la qualità delle risposte; Copilot supporta anche forme di memory di repository. Anthropic, allo stesso modo, mette al centro memoria, comandi condivisi e integrazioni esterne per dare all’agente più contesto operativo e progettuale.
Il messaggio implicito è chiarissimo:
senza contesto, la qualità cala.
Ma c’è un secondo problema, ancora più umano.
Anche quando l’AI ha abbastanza contesto per produrre una risposta plausibile, può essere il developer a perderlo.
La perdita di contesto non avviene in modo drammatico. Avviene in modo comodo.
Succede quando smetti di attraversare davvero il sistema e inizi a saltare da un prompt all’altro.
Succede quando:
A quel punto il codice può anche funzionare.
Ma tu ne capisci meno di prima.
Ed è lì che nasce il costo.
Martin Fowler ha evidenziato in più contributi recenti che i coding agent non sono semplici chatbot: lavorano su tool, file e workflow, e il loro valore cresce quando capiscono obiettivi, vincoli e codebase specifico. Thoughtworks sottolinea anche che fornire esempi, reference application e contesto strutturato migliora sensibilmente la qualità dell’output.
Questo però porta a un paradosso.
Più l’assistente diventa capace di agire sul sistema, più diventa facile per il developer saltare passaggi cognitivi importanti.
In altre parole: l’AI può toglierti attrito, ma può anche toglierti esposizione.
E senza esposizione ripetuta ai vincoli reali del sistema, il tuo modello mentale si indebolisce.
Un errore visibile si corregge.
Un test che fallisce, una query lenta, una race condition: sono problemi seri, ma riconoscibili.
La perdita di contesto, invece, è più pericolosa perché produce conseguenze cumulative:
GitHub nota che i developer avanzati nell’uso dell’AI si stanno spostando da “code producers” a orchestratori che delegano e verificano. È un cambiamento reale del ruolo. Ma proprio per questo la skill critica diventa la verifica con contesto, non la semplice produzione assistita.
Il punto non è quindi “usare o non usare AI”.
Il punto è come evitare che la delega riduca la comprensione.
Ci sono alcuni segnali abbastanza chiari:
Il primo è che il codice generato ti sembra buono finché resta nel file, ma fai fatica a spiegare come impatta il resto del sistema.
Il secondo è che inizi a fidarti dei pattern sintattici più della semantica del progetto.
Il terzo è che la review si trasforma in controllo estetico: naming, stile, refusi. Meno domande su vincoli, failure mode, effetti laterali, contratti impliciti.
Il quarto è che diventa sempre più difficile intervenire senza assistente, anche su problemi che prima avresti affrontato da solo.
Il quinto è che il tempo “risparmiato” torna indietro sotto forma di debug confuso, regressioni sottili e incoerenze tra moduli.
La risposta non è rallentare tutto. E nemmeno rinunciare agli strumenti.
La risposta è usare l’AI in modo da amplificare il contesto, non sostituirlo.
Tre pratiche funzionano molto bene.
Prima di chiedere codice, chiedi:
Così costringi lo strumento a rendere visibile il ragionamento operativo e costringi te stesso a seguirlo.
Le piattaforme stanno andando tutte nella stessa direzione: istruzioni di repository, memory, spazi condivisi, MCP, reference application. Non è un dettaglio di prodotto: è il riconoscimento che il contesto di progetto conta quanto il modello.
Tradotto in pratica:
documentare convenzioni,
golden path,
vincoli architetturali,
comandi di test,
policy di sicurezza,
pattern approvati.
Se il contesto è solo nella testa dei senior, l’AI produrrà codice plausibile ma culturalmente incoerente con il progetto.
Ci sono task che puoi delegare quasi totalmente:
boilerplate, trasformazioni meccaniche, scaffolding, test iniziali, documentazione operativa.
E ci sono task in cui il developer dovrebbe restare al centro:
decisioni architetturali,
debugging di sistemi complessi,
trade-off di dominio,
failure mode,
confini tra servizi,
migrazioni delicate.
Più una decisione impatta la forma del sistema, meno ha senso viverla come puro output delegato.
Una squadra matura non dovrebbe chiedersi solo: “quanto ci ha fatto risparmiare?”
Dovrebbe chiedersi anche:
Se la seconda parte peggiora, il costo arriverà. Solo più tardi.
L’AI nel coding non è interessante perché scrive codice.
È interessante perché cambia il punto in cui si crea valore umano.
Meno sulla produzione pura.
Più su contesto, giudizio, orchestrazione, verifica.
Ma proprio qui sta il rischio.
Se usata bene, l’AI ti libera energia meccanica e ti lascia più spazio per ragionare sul sistema.
Se usata male, ti fa produrre più velocemente mentre perdi contatto con la cosa più importante: la mappa mentale che tiene insieme tutto.
E nel software, quando perdi quella, il conto arriva sempre.

Il software raramente fallisce nei casi normali. Fallisce quando incontra scenari che nessuno aveva previsto. Heartbleed, la collisione di SHA-1 e il …
19/02/2026

Il codice non è un fatto individuale: è un linguaggio condiviso. In questo articolo vediamo come automazione, linter ultra-veloci e Git Hooks permetto…
18/12/2025

Abbiamo creato ddmushi per organizzare meglio le API con TanStack React Query, mantenendo type-safety, validazione e una developer experience più ordi…
02/04/2026

Nel 2026 scriviamo software usando framework sofisticati, runtime complessi e piattaforme che nascondono sempre più dettagli. Tornare alle basi con il…
23/01/2026