Diventare PM nell'era dell'IA 05 | Lascia tutto vago e l'IA riempirà i vuoti per te
Dici all’IA «fammi una funzione di login».
E lei te la fa. Ma tra quella tua frase e quel pezzo di codice, ha preso al posto tuo una sfilza di decisioni che non hai minimamente nominato: email o numero di telefono, serve un codice di verifica, dopo quanti errori bloccare l’account, per quanto tempo, scrivere nel messaggio d’errore «password sbagliata» oppure «account o password errati», mettere o no il «ricordami», per quanto tempo tenere viva la sessione. Una dozzina di decisioni, e nessuna l’hai presa tu: le ha indovinate tutte al posto tuo.
Il problema non è se le indovina giuste, ma che non te lo chiede proprio. Se questo lavoro lo prendesse in mano una persona, ti ribatterebbe «ma questo login va a numero di telefono o a email?». L’IA no. È una yes-machine: fa quello che dici, non quello che vuoi. Dove il requisito non specifica nulla, riempie con il default che ha visto più spesso durante l’addestramento — regole di validazione, logica di scadenza, gestione degli errori: ti completa tutto, e quasi mai è quello che ti serve.
Sean Grove di OpenAI ha detto una frase: il codice che scrivi è solo il 10-20% del tuo valore, l’80-90% restante è dire chiaramente cosa va costruito. Quando l’IA si prende in carico tutto il passaggio del «scriverlo», a te resta solo quell’80% iniziale — portare il requisito a un punto in cui non c’è ambiguità. Ecco quattro mosse da eseguire.
1. Trasforma gli aggettivi in numeri
«Più veloce», «più semplice», «più in evidenza», «buona esperienza» — queste parole l’IA non può verificarle, può solo definirsene una per conto suo. Qualcuno ha scritto all’IA «il sistema deve rispondere rapidamente al sovraccarico di corrente», e l’IA ha marcato direttamente questa riga come «non verificabile»: non c’è una soglia misurabile, «rapidamente» quanto rapidamente?
Trasforma gli aggettivi in numeri e l’ambiguità sparisce. «Il caricamento deve essere veloce» diventa «la prima schermata compare entro 1,5 secondi»; «la lista non troppo lunga» diventa «al massimo 8 elementi per schermata, oltre si pagina»; «pulsante in evidenza» diventa «pulsante nel colore primario, con contrasto sul fondo sufficiente a leggerlo». Tutto ciò che si può scrivere come numero o regola, non lasciarlo come aggettivo.
2. Scrivi tutti gli stati
doaipm insiste da sempre sui quattro stati reali: in caricamento, vuoto, errore, successo. Se dici solo «fammi una lista di ordini», l’IA per default ti fa lo stato di successo — ci sono dati, la rete va, tutto è normale.
Lista degli ordini: durante il caricamento mostra uno skeleton screen; quando non c’è nemmeno un ordine mostra «Ancora nessun ordine» più un punto d’ingresso per andare a ordinare; quando la richiesta fallisce mostra «Caricamento fallito, tocca per riprovare»; nel caso normale ogni riga mostra numero d’ordine, importo e stato.
Che aspetto ha una lista vuota, cosa mostri all’utente durante il caricamento, come segnali un fallimento — questi tre casi, se non li scrivi, l’IA o non li fa, o te li riempie a caso. Nei prodotti reali la probabilità che l’utente sbatta contro il vuoto e l’errore è molto più alta di quanto pensi.
3. Elenca i casi limite
La cosa più facile da risparmiare, e anche quella che più facilmente fa danni, sono i percorsi eccezionali. Studiando come l’IA riempie le assunzioni davanti a requisiti vaghi si è scoperto che ciò che riempie di più è proprio questo: cosa fare se i dati sono scaduti, se accede chi non ha i permessi, se due persone operano sullo stesso elemento contemporaneamente, se scade il timeout.
Se fai un coupon, devi mettere in chiaro queste cose: quando il coupon è scaduto e l’utente tocca «usa» cosa compare, se lo stesso coupon viene usato da due dispositivi che ordinano insieme a chi viene assegnato, se l’utente lo usa a metà e poi chiede un rimborso il coupon torna o no. Se non le elenchi, l’IA ne assume una per ciascuna, e scopri come aveva indovinato solo quando il problema esplode in produzione.
4. A lavoro finito, auto-verifica con un test a contesto zero
Per giudicare se un requisito è abbastanza chiaro c’è un metro già pronto: consegnalo a una persona che non sa niente di questo progetto, riesce a costruire, seguendolo, esattamente la stessa cosa che hai in testa? Se due persone, dopo averlo letto, lo interpretano in due modi diversi, allora non è ancora abbastanza chiaro: continua a scomporlo, finché l’ambiguità non sparisce.
E se ti pare una scocciatura, c’è un modo ancora più sbrigativo: chiedi all’IA di non muovere un dito e di elencarti, una per una, le assunzioni che ha intenzione di riempire al posto tuo. Quel «do per scontato che il coupon valga su tutto» e «assumo una validità di 7 giorni» che ti mette in fila sono esattamente i punti che poco fa non hai detto chiaramente. Approfitta del fatto che non ha ancora fatto niente per tappare quei buchi.
Una cosa che puoi fare oggi: prendi un requisito che stai per buttare all’IA, non inviarlo subito, passalo prima attraverso «aggettivi in numeri, tutti gli stati, casi limite elencati», e solo dopo invialo. Poi confronta: quanto differisce questa versione del risultato da quella che avresti spedito di getto.
Per approfondire
- Sean Grove (OpenAI) «The New Code»: la spec è il tuo 80-90% del valore — https://www.youtube.com/watch?v=8rABwKRsec4
- Improve & Repeat «Why Requirements Matter So Much for AI Coding Agents» (l’elenco delle assunzioni che l’IA riempie davanti a requisiti vaghi): https://improveandrepeat.com/2026/04/why-requirements-matter-so-much-for-ai-coding-agents/
- Terzo articolo della serie «Tratta l’IA come un collega, non come uno strumento»: /it/blog/ai-as-colleague/
- Quarto articolo della serie «Giudicare “se farlo” ora costa più di “se è fattibile”»: /it/blog/judgment-over-feasibility/
Discussione