Organizzazione requisiti in un piano del prodotto
Dopo aver analizzato i requisiti del cliente in modo da comprendere le funzioni del prodotto, è necessario elaborare un piano per implementare il prodotto. In alternativa, per un prodotto esistente, è necessario individuare la funzionalità mancante ed elaborare un piano per apportare le modifiche. Tuttavia, i requisiti non specificano automaticamente il piano.
Questo argomento descrive un metodo per ottenere un piano partendo da un set di requisiti. Si tratta di uno dei tanti metodi che funzionano in Visual Studio e sarà necessario adattarlo alle proprie esigenze.
È possibile utilizzare backlog e backlog di portfolio per definire ed eseguire il mapping dei requisiti e delle funzionalità.
Requisiti e funzionalità
Esistono due tipi di requisiti in questo metodo: i requisiti del cliente e le funzionalità. I requisiti del cliente sono quelli che si ottengono analizzando gli obiettivi che il cliente vuole raggiungere usando il prodotto. Le funzionalità sono elementi del piano del prodotto che corrispondono a subset di dimensioni più ridotte dei requisiti del cliente. Ogni funzionalità può includere parti dei requisiti del cliente derivate da diversi aspetti dell'esperienza utente e da aree funzionali diverse.
Requisiti del cliente
I requisiti del cliente vengono determinati dalla discussione con gli utenti potenziali e con le altri parti interessate.
Per analizzare questi requisiti, in genere vengono creati storyboard e modelli e gli scenari vengono scomposti in passaggi di dimensioni più ridotte che formano un albero. È possibile collegare gli elementi di modellazione, ad esempio i casi di utilizzo e le attività, agli elementi di lavoro dello scenario.
Esistono due tipi di requisiti del cliente:
Gli scenari, anche noti come casi di utilizzo, rappresentano le sequenze di interazioni tra gli utenti e il prodotto per realizzare obiettivi specifici. Uno scenario di esempio potrebbe avere il titolo "L'utente compra un libro".
I requisiti di qualità del servizio includono prestazioni, sicurezza, usabilità e altri criteri.
È possibile rappresentare questi requisiti come elementi di lavoro di tipo requisito, con il campo Tipo di requisito impostato su Scenario o Qualità del servizio. Per altre informazioni, vedere Sviluppare requisiti.
Questi elementi di lavoro del requisito devono essere collegati ai test di sistema in modo da garantire che tutti i requisiti siano testati. Vedere Pianificare test manuali Team Web Access.
Visualizzare il backlog o aprire la query dei requisiti del cliente per elencare questi elementi di lavoro del requisito.
Usare il report Rapporto Stato di avanzamento requisiti (CMMI) per controllare quali requisiti siano stati soddisfatti.
Funzionalità
Una funzionalità è un elemento in un piano del prodotto che rappresenta un gruppo di attività. Nella pianificazione del prodotto, i rappresentanti del team di sviluppo e le parti interessate assegnano le funzionalità alle iterazioni. Per altre informazioni, vedere Pianificare un progetto (CMMI).
Immettere le funzionalità come elementi di lavoro del requisito con il campo Tipo di requisiti impostato su Funzionalità.
Il titolo della funzionalità indica, con le parole degli utenti, quali attività potranno svolgere con il prodotto non consentite nelle iterazioni precedenti. Gli elementi del piano che non offrono un nuovo valore per l'utente sono pochi o del tutto assenti.
Ad esempio, questa sequenza di funzionalità può costituire un piano di implementazione:
"Un acquirente può scegliere un libro da un elenco e aggiungerlo all'elenco delle preferenze".
"L'elenco dei libri visualizza i prezzi. Nell'elenco delle preferenze viene visualizzato il prezzo totale".
"I fornitori possono applicare dei tag ai libri. Gli acquirenti possono filtrare l'elenco dei libri in base ai tag".
Nessuna funzionalità riguarda solo un passaggio dell'esperienza utente e prevede solo una parte dell'architettura del prodotto. Al contrario, poiché vengono implementate tutte le funzionalità, diverse funzioni vengono rivisitate e migliorate con il nuovo valore per l'utente.
Una funzionalità viene assegnata a un'iterazione durante la pianificazione del prodotto. Tutte le attività in una funzionalità devono essere assegnate alla stessa iterazione.
Una funzionalità descrive una realizzazione parziale dei requisiti del cliente. Si tratta di un subset di requisiti del cliente e potrebbe implementare in modo limitato i singoli requisiti del cliente.
Ogni funzionalità può essere collegata a uno o più test case in grado di testare la parte di requisiti rappresentata dalla funzionalità. Questi test case sono un subset dei test di sistema collegati ai requisiti del cliente.
Lo stato della funzionalità non deve essere contrassegnato come completato finché i test non sono stati definiti e superati completamente.
Ogni funzionalità corrisponde a un gruppo di attività di sviluppo e test. È la radice di una struttura ad albero di attività. Le attività di sviluppo implementano i requisiti parziali descritti dalla funzionalità. Le attività di test progettano ed eseguono i test case appropriati.
Usare la query Requisiti del prodotto per elencare le funzionalità.
Ricerca di funzionalità
La suddivisione dei requisiti in funzionalità incrementali è un'attività creativa che deve coinvolgere sviluppatori, analisti e parti interessate. Una funzionalità definisce una parte delle funzionalità del prodotto che può essere implementata separatamente rispetto alle funzioni circostanti. Quindi, un set di definizioni di funzionalità e un ordinamento in un piano dipendono parzialmente dall'architettura del sistema.
Per questo motivo, la pianificazione e la progettazione iniziale del prodotto devono andare in parallelo, in particolare nell'iterazione 0 in cui viene delineato il nucleo del piano.
Scomposizione degli scenari
Per organizzare i requisiti in funzionalità, è utile scomporre gli scenari in passaggi più piccoli.
Gli storyboard spesso semplificano questa attività. Uno storyboard è una sequenza di immagini che illustrano lo scenario. I diagrammi di attività UML sono utili per visualizzare percorsi alternativi, mentre i diagrammi di sequenza UML consentono ai diversi attori di discutere delle iterazioni. Dopo aver usato questi strumenti per analizzare uno scenario, è possibile immettere gli scenari scomposti in Team Explorer. Ciò consente di collegare i test case agli scenari e di verificare che i requisiti siano stati soddisfatti. Per altre informazioni, vedere Diagrammi di attività UML: linee guida e Diagrammi di sequenza UML: linee guida.
Funzionalità: requisiti soddisfatti in ogni iterazione
Una funzionalità è un requisito che riepiloga le attività che gli utenti possono eseguire al completamento di ogni iterazione. È possibile creare più funzionalità per ciascuna iterazione. Immetterle come elementi di lavoro del requisito, impostando Tipo di requisito su Funzionalità.
Usare le assegnazioni degli scenari agli elementi di lavoro per definire le funzionalità. Il piano di funzionalità dell'esempio seguente deriva dalle assegnazioni degli scenari alle iterazioni nella sezione precedente:
Iterazione 1
- Il cliente sceglie gli elementi da un menu, li aggiunge a un ordine, quindi aggiunge un indirizzo di spedizione.
Iterazione 2
I clienti visualizzano inizialmente un elenco di ristoranti, quindi ne scelgono uno.
Quando un cliente completa l'ordine, questo viene visualizzato nella schermata del ristorante prescelto.
I prezzi degli elementi e il prezzo totale vengono visualizzati nell'ordine.
Iterazione 3
Il ristorante contrassegna l'ordine come "Completato" dopo la consegna del pasto. Il pasto viene registrato per il ristorante.
Ogni ristorante può inserire e aggiornare il proprio menu.
Il cliente può sfogliare il menu di tutti i ristoranti prima di selezionarne uno.
Iterazione 4
Il cliente immette i dettagli per il pagamento quando un ordine viene completato. L'addebito sulla carta del cliente viene eseguito quando il ristorante contrassegna l'ordine come Completato.
Il ristorante viene pagato per gli ordini contrassegnati con Completato.
Iterazione 5
- I ristoranti possono impostare una propria area di consegna. Il cliente immette il codice postale all'inizio della sessione. Il sito Web visualizza solo i ristoranti che consegnano nell'area specificata.
Scenari parzialmente implementati
La scomposizione degli scenari in passaggi più piccoli consente di separare alcuni passaggi che possono essere implementati prima degli altri.
Tuttavia, in alcuni casi si possono separare altri aspetti degli scenari. In questo esempio, il team può implementare una versione di base dell'esperienza utente nelle prime iterazioni, quindi migliorarla in un secondo momento. Quindi, possono essere aggiunte le seguenti funzionalità:
- Iterazione 6 - Il ristorante può scegliere la combinazione colori e i caratteri del menu e caricare il proprio logo e le immagini dei piatti.
Questo tipo di funzionalità non emerge direttamente dalla scomposizione in passaggi, ma di solito viene evidenziata durante la discussione degli storyboard. Le funzionalità dell'esperienza utente sono validi candidati per le iterazioni successive.
Immissione e controllo delle funzionalità
Creare gli elementi di lavoro con il tipo di requisito dell'elemento di lavoro e impostare il campo Tipo di requisito su Funzionalità. Impostare il titolo della funzionalità sulla descrizione breve.
Traccia delle funzionalità nei requisiti
È possibile collegare le funzionalità ai requisiti nei modi seguenti:
Collegare gli elementi di lavoro della funzionalità ai requisiti dello scenario foglia delle iterazioni. È necessario collegarli usando i collegamenti Elementi correlati perché gli scenari foglia hanno già elementi padre.
Collegare gli elementi di lavoro del test case agli scenari e ai requisiti di qualità del servizio di cui eseguono il test. Collegare le funzionalità al subset di test case che deve essere superato dopo aver sviluppato la funzionalità. In questo modo, i test case agiscono come collegamento tra le funzionalità e i requisiti del cliente.
Funzionalità di qualità del servizio
I requisiti di qualità del servizio in genere riguardano tutta la progettazione del software. Ad esempio, solitamente i requisiti di sicurezza non sono associati a una particolare attività di sviluppo.
Tuttavia, per ogni requisito di qualità del servizio è necessario creare un elemento di lavoro della funzionalità i cui elementi figlio eseguono principalmente test di attività per garantire che il criterio di qualità del servizio sia soddisfatto. Questi elementi di lavoro vengono chiamati funzionalità di qualità del servizio.
Alcune funzionalità di qualità del servizio possono includere attività di sviluppo. Ad esempio, in un'iterazione iniziale è possibile implementare una versione del sistema in grado di gestire solo pochi utenti, come modello di prova. Per un'iterazione successiva, è possibile aggiungere una funzionalità che specifichi la capacità di destinazione come indicato nei requisiti del cliente.
Pianificazione del prodotto
Prima di iniziare un'iterazione, tenere una riunione per rivedere il piano del prodotto. Durante la prima riunione di pianificazione del prodotto viene creato il piano, mentre nelle riunioni successive il piano viene rivisto in base alle iterazioni precedenti. Per altre informazioni, vedere Pianificare un progetto (CMMI).
In una revisione del piano del prodotto In a piano del prodotto, discutere delle funzionalità con le parti interessate dell'azienda e prepararsi a ridefinirne le priorità e a organizzarle in iterazioni diverse. La riunione deve includere le parti interessate dell'azienda e i rappresentanti del team di sviluppo.
La riunione verterà sulla sequenza con cui verranno sviluppate le funzionalità. A tale scopo, proiettare o condividere su schermo la visualizzazione di Office Excel della query Requisiti del prodotto e ordinare le funzionalità per iterazione.
Una tecnica alternativa prevede l'inserimento delle funzionalità in una sequenza specifica e l'analisi di quanto può essere eseguito in ciascuna iterazione. Ad esempio, gli sviluppatori possono valutare se "Il cliente può visualizzare i prezzi" debba essere spostato dall'iterazione 2 all'iterazione 3, senza spostarlo all'interno della sequenza. Per inserire gli elementi in una sequenza, aggiungere una colonna denominata Classifica nel foglio di calcolo e inserire i numeri interi che denotano la sequenza. Ordinare il foglio di calcolo in base a questa colonna. Le classificazioni non verranno archiviate in Team Foundation Server, ma è possibile salvare il foglio di calcolo. Quando si apre di nuovo il foglio di calcolo, fare clic su qualsiasi cella nella tabella di elementi di lavoro, quindi fare clic su Aggiorna nella scheda Team.
La pianificazione del prodotto prende in considerazione le priorità delle funzionalità e i costi di sviluppo. Le priorità vengono stabilite dalle parti interessate dell'azienda, con alcune indicazioni relative ai rischi fornite dagli sviluppatori. Le stime dei costi vengono fornite dagli sviluppatori. Per avere un'idea precisa dei costi, il team di sviluppo deve aver già eseguito dei lavori sull'architettura del prodotto e potrebbe essere necessaria un po' di esperienza derivata dalle iterazioni precedenti. Per questo motivo, le stime dei costi devono essere perfezionate a ogni revisione del piano del prodotto.
Pianificazione dell'iterazione
Dopo aver rivisto il piano del prodotto, pianificare l'iterazione. Il piano del prodotto determina le funzionalità che verranno fornite entro la fine dell'iterazione. Il piano di iterazione determina il lavoro che il team dovrà svolgere per implementare e testare le funzionalità.
Le seguenti attività fanno parte della pianificazione dell'iterazione:
Creare attività per lo sviluppo e i test e collegarle come elementi figlio ai requisiti delle funzionalità.
Creare test case per gli aspetti dei requisiti del cliente da sviluppare in ogni funzionalità. I test case devono essere collegati ai requisiti del cliente in modo da monitorare lo stato di completamento dei requisiti.
È anche possibile collegare i test case alle funzionalità per tenere traccia della corrispondenza tra le funzionalità e i requisiti. La funzionalità non deve essere contrassegnata come completata finché non vengono superati i test case collegati.
Per altre informazioni, vedere Pianificare un'iterazione (CMMI).