Sviluppo basato su prove
La disciplina mancante nell'ingegneria assistita da IA
I team hanno adottato strumenti di codifica basati sull'intelligenza artificiale, hanno riscontrato picchi di velocità a breve termine e poi hanno pagato la tassa di verifica in seguito in debug, regressioni e incidenti di produzione.
Il divario non è generazionale. Il divario ne è la prova. Lo sviluppo basato sull'evidenza trasforma questa lacuna in un flusso di lavoro ripetibile con cancelli espliciti.
Il ciclo
Il modello è semplice: definire l'intento, dimostrare il divario, acquisire la linea di base, implementare, dimostrare il superamento, acquisire il risultato e verificare le dimensioni della qualità prima della revisione.
Il vincolo critico è la sequenza. I passaggi prima dell'implementazione creano affidabilità; i passaggi successivi all'implementazione creano fiducia.
| Fase | Cosa succede | Perché è importante | | --- | --- | --- | | Documento | Scrivi cosa significa "fatto" prima dell'implementazione. | Previene requisiti variabili e criteri di successo vaghi. | | Prova: fallita | Definire ed eseguire test che dimostrino l'esistenza del divario. | Conferma che stai testando il comportamento, non le ipotesi. | | Cattura: prima | Registrare i risultati di base prima di toccare l'implementazione. | Fornisce prove non negoziabili per i revisori e gli audit futuri. | | Implementare | Applica la modifica con l'assistenza dell'intelligenza artificiale rispettando i vincoli. | L'esecuzione rimane veloce mentre la barra rimane definita dall'uomo. | | Prova: superata | Esegui test mirati e conferma che il comportamento ora è superato. | Convalida la modifica risolve gli esatti criteri di accettazione. | | Cattura: Dopo | Raccogli gli artefatti post-modifica equivalenti. | Consente di cancellare il confronto prima/dopo. | | Verifica | Controlla la sicurezza, l'accessibilità, le prestazioni, i documenti e la deriva. | Rileva i test sulle modalità di errore che mancano da soli. | | Recensione | Il revisore umano accetta o rifiuta in base alle prove. | Mantiene la responsabilità nei confronti degli ingegneri, non dei suggerimenti. |
:::nome grafico: ImplementationLoopDiagram didascalia: Il ciclo di implementazione: vincoli definiti dall'uomo, esecuzione assistita dall'intelligenza artificiale. :::
| Fase | Cosa succede | Perche conta |
|---|---|---|
| Document | Scrivi cosa significa "fatto" prima dell'implementazione. | Previene requisiti variabili e criteri di successo vaghi. |
| Prova: fallita | Definire ed eseguire test che dimostrino l'esistenza del divario. | Conferma che stai testando il comportamento, non le ipotesi. |
| Cattura: prima | Registrare i risultati di base prima di toccare l'implementazione. | Fornisce prove non negoziabili per i revisori e gli audit futuri. |
| Implement | Applica la modifica con l'assistenza dell'intelligenza artificiale rispettando i vincoli. | L'esecuzione rimane veloce mentre la barra rimane definita dall'uomo. |
| Prova: superata | Esegui test mirati e conferma che il comportamento ora è superato. | Convalida la modifica risolve gli esatti criteri di accettazione. |
| Cattura: dopo | Raccogli gli artefatti post-modifica equivalenti. | Consente di cancellare il confronto prima/dopo. |
| Verify | Controlla la sicurezza, l'accessibilità, le prestazioni, i documenti e la deriva. | Rileva i test sulle modalità di errore che mancano da soli. |
| Review | Il revisore umano accetta o rifiuta in base alle prove. | Mantiene la responsabilità nei confronti degli ingegneri, non dei suggerimenti. |
Prima che le prove siano irreversibili nella pratica
I team possono teoricamente ricostruire una linea di base dopo l’inizio dell’implementazione, ma quasi nessuno lo fa. Lo slancio si sposta verso il fissaggio in avanti.
Questo è il motivo per cui la mancanza di prove preliminari viene trattata come una condizione di ripristino nei cicli disciplinati.
:::nome grafico: MaturityLadder didascalia: Modello di maturità: ad hoc per l'ingegneria verificata da audit. :::
L'audit: dieci dimensioni
| Dimensione | Cosa intercetta |
|---|---|
| Build | Compilazione, lanugine e integrità della suite |
| Telemetry | Perdite di informazioni personali e payload di registrazione non sicuri |
| Accessibility | Punti di riferimento, flusso della tastiera, gerarchia delle intestazioni |
| Security | Segreti, rischio di iniezione, difetti di dipendenza |
| Performance | N+1 percorsi, cicli illimitati, perdite di memoria |
| Documentation | Deriva delle specifiche e dell'implementazione |
| Copertura di prova | Il comportamento cambia senza test corrispondenti |
| TODO Debito | Follow-up saltati e segnaposto non risolti |
| Gestione degli errori | Errori ingeriti e parti interne trapelate |
| Verbosità dell'intelligenza artificiale | Commenti ridondanti e astrazioni inutili |
L'audit: dieci dimensioni
| Dimensione | Cosa cattura | | --- | --- | | Costruisci | Compilazione, lint e integrità della suite | | Telemetria | Perdite di informazioni personali e payload di registrazione non sicuri | | Accessibilità | Punti di riferimento, flusso della tastiera, gerarchia delle intestazioni | | Sicurezza | Segreti, rischio di iniezione, difetti di dipendenza | | Prestazioni | N+1 percorsi, cicli illimitati, perdite di memoria | | Documentazione | Deriva delle specifiche e dell'implementazione | | Copertura del test | Cambiamenti di comportamento senza test corrispondenti | | Debito TODO | Follow-up saltati e segnaposto non risolti | | Gestione degli errori | Errori ingeriti e parti interne trapelate | | Verbosità dell'intelligenza artificiale | Commenti ridondanti e astrazioni inutili |
:::nome grafico: AuditRadarChart didascalia: Atteggiamento dell'audit prima e dopo i controlli basati sull'evidenza. :::
Esempi di evidenze per dominio
| Dominio | Evidenza prima | Evidenza dopo |
|---|---|---|
| Endpoint API | risposta curl con stato errato | risposta curl con stato e schema previsti |
| Migrazione della banca dati | Query prima della migrazione | Query che mostra nuove colonne e valori popolati |
| Infrastructure | Risultati del piano attuale | Pianificare e applicare l'output desiderato |
| Performance | Riferimento di riferimento | Delta del benchmark dopo l'ottimizzazione |
| Toppa di sicurezza | Rilevamento dello scanner | Rapporto sulla pulizia dello scanner |
L'onere della prova nelle pull request
Riferimenti
- Kent Beck (2025) Codifica aumentata: oltre le vibrazioni
- ThoughtWorks (2025) Sviluppo test-first assistito dall'intelligenza artificiale
- METR (2025) Gli strumenti di intelligenza artificiale hanno reso gli sviluppatori esperti più lenti del 19%.
- Addy Osmani (2026) L'intelligenza artificiale scrive il codice più velocemente. Il tuo compito è ancora dimostrare che funziona.
- Microsoft.NET (2026) Dieci mesi con Copilot Coding Agent in dotnet/runtime