Quanto è ben definito il progetto deve essere sufficiente per iniziare e sapere dove si dirigerà per le prossime due settimane.
Come Scrum Master, vorrei semplicemente dire che è necessario definire le funzioni lorde del prodotto in un foglio Excel o altrove, solo per tenere traccia delle proprie funzionalità. Rendendoli User Story aiuta molto a pensare a quali funzionalità hai bisogno in seguito. Quindi, assegna loro la priorità: La caratteristica più importante o imperativa nella parte superiore e la meno importante nella parte inferiore.
Dopo aver elencato alcune delle funzionalità più importanti, seleziona le funzionalità che ritieni di poter sviluppare portare allo stato di Fatto dopo un periodo di due settimane o un mese se preferisci. Quindi esplora la funzione selezionata in modo da poter iniziare la codifica in pochi.
Durante la codifica, penserai sicuramente ad altri elementi da sviluppare per portare le tue funzionalità selezionate in uno stato Fatto. Fatto significa che non hai più nulla da fare, cioè test, codifica, assemblaggio, la documentazione è fatta!
In qualsiasi momento l'elenco delle funzioni selezionate potrebbe espandersi, a patto che tu raggiunga l'obiettivo, ovvero, sei in grado di sviluppare tutto ciò che hai detto che avresti fatto durante il periodo indicato.
In breve, niente deve essere perfetto. Getta alcune idee, condividi con i tuoi compagni e verifica se ciò che è scritto ha senso per soddisfare i requisiti di prodotto richiesti. Se è così, allora sei dentro! Per chiarire, vado con un semplice prodotto di gestione clienti. Cosa è necessario?
As a user, I may manage the Customers;
As a system, I persist changes to the underlying data store;
As a user, I need to enter my credentials to be able to manage customers;
As a system, I have to authenticate the user against the Active Directory;
La tua prima bozza potrebbe essere così semplice! Quindi, possiamo vedere che la sicurezza è una parte importante del nostro sistema, è abbastanza importante da rendere la priorità assoluta (S / N)? Questo dipenderà dai requisiti che devi soddisfare. Diciamo che la gestione dei clienti è la cosa più cruciale qui. Quindi, nel prossimo Sprint, dobbiamo essere in grado di gestire i clienti in modo semplice ma accettabile. Cos'è la gestione clienti?
As a user, I may manage Customers;
-> As a user, I add a customer to the system;
-> As a user, I change a customer details;
-> As a user, I delete a customer;
-> As a system, I flag a deleted customer as being inactive instead of deleting it;
-> As a user, I need to list the customers;
-> As a user, I search the customers data bank for a given customer;
-> ...
Questo illustra già abbastanza funzionalità per poter iniziare a sviluppare l'applicazione. Se i tuoi programmatori hanno bisogno di ulteriori istruzioni, forse uno sviluppatore che si trova a suo agio con i diagrammi delle classi può progettare la classe del cliente e le sue proprietà e metodi! Ma per quanto mi riguarda, con questi pochi che ho scritto, ne avrei abbastanza per iniziare. Alcune funzionalità possono essere aggiunte o modificate lungo il percorso. Ciò che è importante è concentrarsi su ciò che hai detto che sarebbe stato Fatto. Nel nostro esempio, è la cosa di Customer Management. Non ci dobbiamo preoccupare dell'autenticazione dell'utente come ora. Arriverà più avanti nel prossimo Sprint.
Spero che questo aiuti! =)