# Lo sviluppo assistito dall’IA richiede ancora giudizio

Un workflow disciplinato per usare coding agent senza esternalizzare la responsabilità di engineering.

Published: 2024-12-11

## L’accelerazione sposta il collo di bottiglia

L’IA può produrre opzioni di implementazione, test, migrazioni, documentazione e indagini a velocità notevole. Quella velocità sposta il collo di bottiglia dalla digitazione al giudizio. Gli ingegneri devono definire il problema, selezionare i vincoli, riconoscere errori plausibili e decidere se il risultato si adatta al sistema che lo possiederà.

Un cambio generato può essere sintatticamente corretto e architetturalmente sbagliato. Può duplicare un’astrazione esistente, aggirare l’autorizzazione, ignorare i vincoli di deployment o ottimizzare una funzione locale indebolendo il confine di prodotto. La comprensione del repository resta la differenza tra generazione di codice e engineering.

## Dai all’agente un esito delimitato

I task forti descrivono l’esito visibile all’utente, i file o moduli rilevanti, gli invarianti che devono restare veri e come verrà verificato il successo. Evitano di prescrittizzare ogni riga impedendo all’agente di espandersi in refactor non correlati.

Prima di modificare, ispeziona le convenzioni locali, la documentazione del framework e le versioni attuali delle dipendenze. I sistemi di IA sono addestrati su pattern storici; i framework in rapido movimento invalidano spesso API familiari. Ancorare il lavoro al repository reale fa parte della correttezza, non della cerimonia.

- Dichiara il comportamento non negoziabile
- Nomina i test e gli ambienti che contano
- Preserva i cambi utente non correlati
- Chiedi alternative quando una decisione è costosa da invertire

## Revisiona il diff come un design

Revisiona il lavoro generato a più livelli. Il flusso utente ha senso? Confini e ownership dei dati sono chiari? Gli stati di fallimento sono gestiti? Il codice è leggibile nel linguaggio del repository? Poi ispeziona sicurezza, accessibilità, performance e comportamento operativo.

I diff grandi generati riducono la qualità della review. Preferisci incrementi piccoli e coerenti con verifica tra di essi. Quando un cambio è meccanico, l’automazione può essere ampia; quando contiene giudizio architetturale, tieni la superficie abbastanza compatta perché un umano possa davvero capirla.

## La verifica non è opzionale

Esegui analisi statica, type check, test e build di produzione. Per il lavoro di interfaccia, ispeziona il comportamento reale del browser a breakpoint e stati di interazione rilevanti. Per le migrazioni, testa sia l’esecuzione forward sia il recovery. Per le API, verifica autorizzazione e input malformati, non solo il percorso felice.

L’IA può aiutare a progettare questa verifica, ma non può far sparire la responsabilità. Se la suite di test è debole, anche la confidenza generata è debole. Aggiungi il test di alto valore più piccolo che protegge il comportamento in cambio.

## Mantieni umana l’ownership

I coding agent sono collaboratori potenti quando l’ingegnere resta responsabile di intento e conseguenze. Registra le decisioni importanti, dichiara le dipendenze generate e evita di inviare segreti o dati di produzione sensibili negli strumenti senza un confine approvato.

Il vantaggio durevole non è produrre più codice. È accorciare il percorso da un problema ben inquadrato a un esito verificato mantenendo la coerenza del sistema.
