Spec-Driven Development:From Code to Contract in the Age of AI Coding Assistants
Questo articolo presenta una guida completa allo Spec-Driven Development (SDD), delineandone i principi, i tre livelli di rigore della specifica e gli strumenti di supporto per dimostrare come trattare le specifiche come l'artefatto primario possa sfruttare efficacemente gli assistenti alla programmazione basati su IA in diversi domini del software.
Articolo originale sotto licenza CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Questa è una spiegazione generata dall'IA dell'articolo qui sotto. Non è stata scritta né approvata dagli autori. Per precisione tecnica, consulta l'articolo originale. Leggi il disclaimer completo
Immagina di assumere un robot chef molto talentuoso, incredibilmente veloce, ma leggermente letterale, per cucinare un pasto complesso per te.
Il Vecchio Modo (Code-First):
Ti avvicini al robot e dici: "Preparami una cena deliziosa".
Il robot, desideroso di compiacerti, inizia immediatamente a tagliare le verdure e a scaldare le padelle. Immagina che tu voglia la pasta. Immagina che tu la voglia piccante. Immagina che tu voglia usare quell'olio al tartufo costoso che non hai nemmeno menzionato.
Dieci minuti dopo, hai un piatto di pasta al tartufo piccante. Tu volevi un'insalata.
Ora devi dire al robot di fermarsi, buttare via la pasta e ricominciare da capo. Questo è ciò che il documento chiama "vibe coding": affidarsi a prompt vaghi in cui l'IA deve indovinare la tua intenzione. Il risultato è spesso un disastro che richiede continui interventi correttivi.
Il Nuovo Modo (Spec-Driven Development):
Invece di urlare ordini, scrivi prima una scheda della ricetta (la Specifica).
Scrivi esattamente: "Voglio un'insalata. Usa spinaci, pomodori e feta. Niente noci. Condimento a parte. Servire a temperatura ambiente".
Consegni questa scheda al robot. Il robot la legge, controlla la sua comprensione e poi inizia a cucinare.
Se il robot prova ad aggiungere delle noci, si ferma perché la scheda dice "Niente noci". Se prova a servirla calda, si ferma.
In questo scenario, la scheda della ricetta è il capo. Il cibo (il codice) è solo il risultato del seguire la ricetta. Se il cibo ha un sapore sbagliato, non dai la colpa allo chef; controlli se la ricetta era chiara.
I Tre Livelli di Severità
Il documento spiega che non serve sempre un contratto di 50 pagine. Esistono tre modi per utilizzare questo approccio della "scheda della ricetta", a seconda di quanto si è seri:
Spec-First (Lo "Schizzo"):
- Cos'è: Scrivi la ricetta prima di iniziare a cucinare per assicurarti che tutti siano d'accordo su cosa si sta preparando.
- Quando usarlo: Ottimo per provare una nuova idea o per un progetto isolato.
- Il limite: Una volta cucinato il pasto, potresti buttare via la scheda della ricetta. Se cambi la ricetta in seguito, la scheda potrebbe non essere aggiornata. È buono per iniziare, ma non per la manutenzione a lungo termine.
Spec-Anchored (Il "Menu Vivente"):
- Cos'è: La scheda della ricetta è tenuta sul frigorifero accanto ai fornelli. Ogni volta che cambi il piatto (aggiungi più formaggio, cambi il condimento), devi aggiornare la scheda immediatamente.
- Quando usarlo: Questo è il punto ideale per la maggior parte delle cucine professionali (software in produzione).
- La magia: La cucina ha un robot ispettore. Se lo chef cambia il piatto ma dimentica di aggiornare la scheda, l'ispettore suona un allarme. Questo assicura che il menu (la documentazione) corrisponda sempre al cibo (il software).
Spec-as-Source (La "Stampante 3D"):
- Cos'è: Questa è la versione più estrema. Non tocchi mai direttamente il cibo. Modifichi solo la scheda della ricetta. Una macchina poi automaticamente stampa il cibo basandosi solo su quella scheda.
- Quando usarlo: Viene utilizzato in settori ad alto rischio come la costruzione di motori automobilistici o dispositivi medici, dove un errore potrebbe essere pericoloso.
- La regola: Se vuoi cambiare i freni di un'auto, non vai sotto il cofano con una chiave inglese. Cambi il progetto e la macchina ricostruisce i freni perfettamente. Non ti è mai permesso modificare manualmente le parti generate.
Perché l'IA Rende Questo Necessario
Il documento sostiene che gli assistenti alla programmazione basati su IA sono come quel robot chef talentuoso ma letterale. Sono incredibili nel seguire le istruzioni, ma pessimi nel "leggere nel pensiero".
- Senza una specifica: Chiedi all'IA di "aggiungere una funzione di login". L'IA indovina le regole della password, il tipo di database e il livello di sicurezza. Spesso sbaglia.
- Con una specifica: Fornisci all'IA un contratto chiaro: "Il login richiede una password di 12 caratteri, usa l'email e blocca l'account dopo 3 tentativi falliti". L'IA segue le regole perfettamente.
Il Flusso di Lavoro: Una Danza in Quattro Fasi
Il documento suggerisce un ritmo semplice per questo processo:
- Specificare: Scrivere il "Cosa". (La Ricetta).
- Pianificare: Scrivere il "Come". (La lista della spesa e la disposizione della cucina).
- Implementare: Costruire. (La cottura).
- Validare: Controllare. (Assaggiare). Se il gusto non corrisponde alla ricetta, correggi la cottura oppure aggiorna la ricetta, ma non ignorare mai la discrepanza.
Quando Usarlo (E Quando No)
Il documento fornisce una guida decisionale semplice:
- Usalo quando: Stai costruendo qualcosa di grande, lavori in team, usi l'IA o stai costruendo qualcosa dove gli errori sono costosi (come il settore bancario o l'automotive).
- Non usarlo quando: Stai realizzando un prototipo rapido da buttare via, o sei un programmatore solitario che costruisce una semplice app di "to-do list" dove i requisiti sono ovvi. In quei casi, scrivere una ricetta dettagliata è solo una perdita di tempo.
Il Grande Messaggio
Per decenni, gli sviluppatori software hanno scritto prima il codice e poi la "ricetta" (la documentazione), se anche l'hanno scritta. Questo documento dice: Ribalta la situazione.
Rendi la Specifica la cosa principale che crei. Tratta il Codice come il semplice output automatico di quella specifica.
Facendo così, smetterai di tirare a indovinare, smetterai di lottare con i tuoi strumenti di IA e assicurerai di costruire esattamente ciò che intendevi costruire. Il codice diventa l'ombra della specifica, non il contrario.
Sommerso dagli articoli nel tuo campo?
Ricevi digest giornalieri degli articoli più recenti corrispondenti alle tue parole chiave di ricerca — con riassunti tecnici, nella tua lingua.