Le storie e i requisiti degli utenti sono animali molto diversi.
Requisiti
I requisiti presuppongono che il design dell'applicazione sia fatto in anticipo e che lo sviluppo sia l'implementazione di quel progetto. I requisiti quindi si concentrano su come implementare una funzionalità.
Esempio di requisito:
- Crea un modulo di contatto utente con i seguenti campi: nome, cognome, email, testo libero e un pulsante di invio. Quando viene premuto il pulsante di invio, viene inviata un'email al nostro team di supporto.
User story
Le storie degli utenti si concentrano su che ottenere, e insistono sul fatto che il design del prodotto è fatto all'ultimo minuto ed è una collaborazione tra una persona del prodotto e una persona sviluppatore. I dettagli vengono decisi durante l'implementazione in base alle opportunità.
Esempio di una storia:
- Come utente di Jimmy, desidero contattare il team di assistenza quando non posso utilizzare correttamente il sito in modo che possa aiutarmi.
Qual è la differenza?
Come puoi vedere, c'è sicuramente una differenza nella quantità di dettagli forniti, ma ci sono anche molte informazioni che sono disponibili solo nella storia, ovvero lo scopo che cos'è stiamo cercando di ottenere con questa funzione.
Sebbene possa sembrare che lo scopo sia relativamente irrilevante, questo è un presupposto errato nello sviluppo agile. In genere, sono due i casi in cui la conoscenza dello scopo è molto importante: ridurre il costo delle opportunità e consentire l'agilità.
Costo opportunità
Se ci sono ipotesi nascoste nel requisito, potrebbe essere molto difficile da raggiungere. Ad esempio: c'è un server di posta disponibile? In caso contrario, il requisito potrebbe richiedere molto più tempo per essere sviluppato. In alcuni altri casi potrebbe essere mancato un modo più semplice per raggiungere lo stesso obiettivo a causa del design.
Al contrario, la storia dell'utente riguarda un utente che contatta il nostro dipartimento di supporto. Se l'invio di una posta è irrealizzabile o troppo costoso, possiamo escogitare una soluzione diversa sul posto: scrivere ad un database, ad esempio, o usare un modulo tramite Google docs, o semplicemente inserire un indirizzo email al posto del modulo. Questo non può essere fatto facilmente con un requisito, ma è fatto facilmente con una storia e una persona presente al prodotto.
Agilità
Per questo motivo, con i requisiti in genere tendiamo a pensare preventivamente a queste supposizioni nascoste e ci assicuriamo che non ci siano intoppi. Quindi in questo caso potrebbe esserci un diverso requisito, programmato in anticipo, che assicurava la presenza di un server di posta.
Questo ci porta a un'altra enorme differenza tra storie e requisiti che è gerarchia . Come ho esemplificato sopra, i requisiti devono, per loro natura, essere ordinati in una gerarchia naturale in modo che le dipendenze siano soddisfatte. Le storie, d'altra parte, si concentrano sullo scopo e non hanno tali vincoli.
Questo è in base alla progettazione, poiché in agile è di fondamentale importanza aggiungere, rimuovere, riprogrammare e modificare le storie secondo necessità durante l'esecuzione del progetto. I requisiti possono generalmente essere aggiunti, a volte modificati o rimossi, ma in genere è molto doloroso spostarli a causa di tutte le dipendenze. Semplicemente non viene fatto molto spesso. Se stai lavorando con i requisiti, la tua implementazione agile ne risentirà, o probabilmente non sarà affatto molto agile, nel senso di essere in grado di abbracciare il cambiamento.