Guadagni:
- Capacità di trasformare richieste aziendali vaghe in requisiti software e storie utente chiari e verificabili con il supporto dell'intelligenza artificiale
- Capacità di confrontare i pro e i contro della progettazione del sistema, del modello di dati e delle decisioni architetturali in modo strutturato con l'intelligenza artificiale
- Capacità di convalidare criticamente il progetto proposto dall'IA rispetto a requisiti, scalabilità e vincoli
La maggior parte dei progetti software fallisce non a causa di un codice errato, ma a causa di requisiti fraintesi. Una richiesta di una sola frase come "Consenti agli utenti di scaricare i report" lascia dietro di sé decine di domande senza risposta: in quale formato? Chi è responsabile? Quanti record? E se è lento? L’analisi dei requisiti (tradurre una richiesta aziendale in esigenze tecniche chiare e verificabili) e la progettazione del software (costruire su carta la struttura per soddisfare tali esigenze) sono la fase in cui si prevengono gli errori più costosi prima di scrivere il codice. In questa unità impareremo a utilizzare l'intelligenza artificiale come un "partner di pensiero" in questa fase: un partner che demistifica l'incertezza, seleziona le opzioni, ma lascia a te la decisione finale.
L’intelligenza artificiale qui produce due grandi valori. Innanzitutto, pone domande che salti; Porta in superficie presupposti nascosti e casi limite in una richiesta. In secondo luogo, elenca rapidamente i pro e i contro di una decisione progettuale. Ma questo è il pericolo: l’intelligenza artificiale fornirà raccomandazioni generiche come “migliori pratiche” senza conoscere appieno il contesto (budget, team, sistema esistente, vincolo legale). È tuo compito filtrare questi consigli rispetto alla tua verità.
Concetti: Storia dell'utente: una breve frase che esprime un bisogno sotto forma di "... come, voglio poter... perché...". Criteri di accettazione: condizioni verificabili che devono essere soddisfatte affinché un lavoro possa essere considerato "fatto". Requisito non funzionale: requisiti relativi a "come si comporterà" piuttosto che a "cosa farà", come velocità, sicurezza, scalabilità.
Dalla richiesta vaga al requisito verificabile
Un buon requisito è misurabile e verificabile. Non "lascia che il sistema sia veloce", ma "lascia che i risultati della ricerca ritornino entro 500 ms". Ecco un modo passo passo per utilizzare l'intelligenza artificiale per ridurre l'incertezza:
- Fornisci la richiesta così com'è e genera la domanda. Chiedere all'IA non la soluzione, ma prima di "elencare come domanda qualsiasi cosa non chiara in questa richiesta".
- Tu dai le risposte. Solo tu conosci il contesto; Rispondi alle domande dell'intelligenza artificiale con i tuoi reali vincoli aziendali.
- Fallo tradurre in storie di utenti e criteri di accettazione. Tradurre la necessità chiarita in elementi verificabili.
- Aggiungi casi limite e scenari negativi. "Risultato vuoto", "utente non autorizzato", "file troppo grande" ecc.
Richiesta di estrazione dell'ambiguità: "Tradurremo la seguente richiesta aziendale in un requisito software. Non proporre ancora una soluzione. Innanzitutto, estrai TUTTE le ambiguità e i presupposti nascosti a cui non viene data risposta in questa richiesta come un elenco di domande. Raggruppa le domande sotto le seguenti intestazioni: ambito, utente/autorità, volume di dati, prestazioni, condizioni di errore, sicurezza. Richiesta: "Consenti agli utenti di scaricare la cronologia degli ordini come report."
Storia dell'utente + richiesta criteri di accettazione: "Dividi la seguente esigenza chiarita in storie utente conformi ai principi INVEST. Scrivi 3-5 criteri di accettazione verificabili per ogni storia (nel formato Dato-Quando-Allora). Aggiungi almeno 2 scenari negativi (accesso non autorizzato, dati vuoti). Necessità: [scrivi qui la necessità chiarita]"
Confronto delle decisioni di progettazione con l'intelligenza artificiale
Il design è un compromesso costante: velocità contro flessibilità, semplicità contro scalabilità? L’intelligenza artificiale inserisce questi compromessi in un rapido foglio di calcolo. Ad esempio, per una funzionalità di "invio di notifiche", è possibile discutere se utilizzare un approccio sincrono (invio su richiesta) o asincrono (coda, invio in background).
Richiesta di confronto del design: "Sto progettando una funzione di invio di una notifica di posta elettronica all'utente. Confronta i due approcci: (A) consegna sincrona durante la richiesta HTTP, (B) consegna asincrona in background inserendolo nella coda dei messaggi. Crea una tabella sui seguenti assi: tempo di attesa dell'utente, tolleranza agli errori, complessità, costo dell'infrastruttura, difficoltà nel debug. Riassumi in 2 frasi quale sceglierei alla fine, in tal caso. Non prendere la decisione per me."
asse
trasmissione sincrona
Asincrono (coda)
Tempo di attesa dell'utente
Lungo (in attesa di spedizione)
Breve (restituisce immediatamente)
Tolleranza ai guasti
Basso (la richiesta esplode se l'invio esplode)
Alto (riprova possibile)
complessità
basso
Medio-alto (infrastruttura a coda)
Costo delle infrastrutture
basso
Componenti aggiuntivi richiesti
Dove si adatta
Basso volume, applicazione semplice
Volume elevato, consegna critica
Suggerimento: dire all'IA "non prendere la decisione per me, mostrami solo le opzioni e le condizioni" ti costringe a pensare e riduce il rischio di accettare ciecamente un suggerimento. La migliore decisione progettuale è quella presa dalla persona che conosce il tuo contesto (tu).
Prompt debole / Prompt forte
DEBOLE: "Progetta un database per il sistema degli ordini." (Risultato: quale scala, quali relazioni, quali vincoli non sono chiari; uno schema generale, non realistico.) FORTE: "Suggerire una bozza di modello di dati per un piccolo e-commerce. Entità: cliente, ordine, prodotto, articolo dell'ordine. Vincoli: possono esserci molti prodotti in un ordine; il prezzo del prodotto può cambiare nel tempo, ma il prezzo corrente dovrebbe essere conservato nell'ordine passato; sono previsti circa 500 ordini al giorno. Relazioni e perché "Spiega che hai preso la decisione. Specifica come hai risolto il problema relativo alla cronologia dei prezzi. Forniscilo come un elenco di entità e campi, non come codice."
La differenza di un potente prompt; scala (500 ordini al giorno), regola aziendale (il prezzo passato deve essere mantenuto) e il formato di output desiderato. Una singola frase come "Il prezzo passato deve essere mantenuto" cambia completamente il design; Se non lo specifichi, l'IA produrrà un diagramma impreciso ma dall'aspetto plausibile.
Mini custodie
Caso 1 – Presupposto nascosto. Un team codifica direttamente la richiesta "l'utente può caricare la foto del profilo". Un altro team ha chiesto all'intelligenza artificiale informazioni sull'incertezza: "dimensione massima? formati consentiti? controllo dei contenuti inappropriato? eliminare la vecchia foto?" Produce 8 domande come. Il primo team viene a conoscenza del problema in produzione quando file da 20 MB riempiono il server; La seconda squadra lo risolve nel design.
Caso 2 – Presupposto di scala errato. L'intelligenza artificiale propone un complesso livello di memorizzazione nella cache per una funzionalità di reporting. Quando l’ingegnere fa notare che i dati reali sono solo 30 report al giorno, l’AI semplifica il suggerimento. Non specificare la scala comporta il costo di una complessità non necessaria; specificando si risparmiano 2 settimane di lavoro non necessario.
Caso 3 – Divario nei criteri di accettazione. "Cosa succede se il pagamento fallisce?" Poiché la domanda non è mai stata posta, un sistema d'ordine contrassegnerà comunque l'ordine come "confermato" in caso di pagamento non andato a buon fine. L’elenco degli scenari negativi generati dall’IA coglie questo divario; I criteri di accettazione di 1 riga prevengono la perdita di denaro reale.
Errori comuni
- Passando la richiesta direttamente al codice. Il codice scritto prima che l'ambiguità venga risolta risolve rapidamente il problema sbagliato.
- Accettare ciecamente le “migliori pratiche” generali dell’intelligenza artificiale. Se non specifichi il contesto (dimensione, budget, team), il consiglio non funzionerà per te.
- Saltare i requisiti non funzionali. Se non vengono specificate velocità, sicurezza e scala, il progetto risulterà incompleto.
- Sto solo pensando allo scenario felice. Scenari negativi come dati vuoti, utente non autorizzato, stato di errore dovrebbero essere inclusi nella progettazione.
- Delegare la decisione ad AI. L’intelligenza artificiale genera opzioni; Sei tu a decidere quale compromesso si adatta alla tua attività.
In sintesi
L'analisi e la progettazione dei requisiti è la fase in cui vengono rilevati gli errori più economici. Qui, l’intelligenza artificiale genera domande che rivelano incertezze, elabora storie di utenti e criteri di accettazione e stabilisce compromessi nella progettazione di grafici. Ma solo tu conosci il contesto; È tuo compito filtrare i consigli dell'intelligenza artificiale in base alla portata, al budget, al team e ai vincoli legali e prendere la decisione finale. La disciplina del “non prendere la decisione per me, mostrami le opzioni” porta sia a una migliore progettazione che a un apprendimento più profondo.
Compito dell'applicazione
Scegli una richiesta di lavoro di una frase dal tuo contesto. Innanzitutto, applica la richiesta di ambiguità all'intelligenza artificiale e rispondi alle domande con i tuoi vincoli reali. Tradurre poi l'esigenza chiarita in almeno 2 user story e 3 criteri di accettazione per ciascuna; Includere almeno 1 scenario negativo. Infine, crea una tabella comparativa per una decisione progettuale (sincrono/asincrono, struttura della tabella, ecc.) e scrivi la tua decisione in 2 frasi.
lista di controllo
- [ ] Ho rimosso le ambiguità come domande prima di passare la richiesta nel codice.
- [ ] Ho fornito il contesto (scala, autorità, prestazioni, vincolo legale) all'IA.
- [] Ho suddiviso le storie degli utenti in criteri di accettazione verificabili.
- [ ] Ho aggiunto almeno uno scenario al ribasso/vantaggio.
- [] Ho valutato la decisione progettuale con la tabella dei compromessi.
- [ ] Ho preso la decisione finale in base al mio contesto, non l'ho lasciata all'IA.