Il PO definisce con gli sviluppatori le User Stories • Gli sviluppatori stimano le US • Ogni settimana: • Il PO sceglie le X storie più importanti • Gli sviluppatori implementano le US secondo le indicazioni del PO • Demo delle US che vengono accettate dal PO Che cosa può andare storto?
interessano di più il Product Owner • Ci interfacciamo con servizi di analisi statistica del comportamento degli utenti • Ma il committente dice “Tutto quello che volevo era un sito che assomigli a quello del Gorgonzola Zeta”
falliscono per il non soddisfacimento dei requisiti non funzionali, raramente per il non soddisfacimento dei requisiti funzionali.” Francesco Cirillo, extremeprogramming-it, 18/02/2010
di più che con il sistema vecchio Scala: € fatturati al mese Status [dec. 2010]: 123 K€ Goal [dec. 2011]: 180 K€ Nome: Acquisto-Facile Tipo: Valore Stakeholder: Users Scala: tempo necessario per trovare e acquistare un determinato articolo Status [giu. 2011]: 150s Goal [dic. 2011]: 30s Nome: Disponibile Tipo: Valore Stakeholder: Davide, operations Scala: % di tempo in cui il sistema è disponibile Status [giu. 2011]: 90% Goal [dic. 2011]: 97% Nome: Aggiornamento-Facile Tipo: Valore Stakeholder: Luca, help desk Scala: Tempo necessario per aggiornare i banner Status [giu. 2011]: 290s Goal [dic. 2011]: 30s Nome: Codice-Pulito Tipo: Valore Stakeholder: Team di sviluppo Scala: McCabe Status [giu. 2010]: 2,7 Goal [sempre]: < 3 Nome: Modifiche-Facili Tipo: Valore Stakeholder: Proprietà XPeppers Scala: Tempo necessario a implementare una modifica definita Status [giu. 2011, modifica=nuova home page]: 30 pomodori Goal [set.2011, modifica=nuova home page]: 10 pomodori
time. Once a quarter reflect on the team, the project, its progress, and its alignment with larger goals. Extreme Programming Explained, 2nd ed., 2005 Pratica: release plan As the XP customer, you have a right to an overall plan, ... to define software releases and to manage scope to get a quality release out on time. Extreme Programming Installed, 2000.
visualizzare e aggiornare le informazioni [A,B,C,...] di uno studente Nome: Produttività-Segreteria Tipo: Valore Descrizione: Il segretario esegue la procedura amministrativa [XYZ] più agevolmente Scala: Tempo necessario ad eseguire [XYZ] (secondi) Status [giu. 2011]: 350s Goal: 20s Requisito o Soluzione tecnica?
amministrativa [XYZ] più agevolmente Scala: Tempo necessario ad eseguire [XYZ] (secondi) Status [giu. 2011]: 350s Goal: 20s Nome: Wizard-Iscrizione-Studenti Tipo: Soluzione Descrizione: Sequenza di passi orientata al compito di iscrivere gli studenti Nome: Crud-Studenti Tipo: Soluzione Descrizione: Maschere di gestione tabella studenti Soluzioni che supportano i Valori
della feature A Utenti tipo II - 7 utenti che necessitano delle feature A, B Utenti tipo III - 400 utenti che necessitano delle feature A, B, C, D Nome: Step-Feature-A Tipo: Step Descrizione: Implementare la feature A Criterio di accettazione: Un utente tipo I migrato con successo Nome: Step-Feature-B Tipo: Step Descrizione: Implementare la feature B Criterio di accettazione: Un utente tipo II migrato con successo Nome: Migrazione-Utenti Tipo: Valore Descrizione: l’Utente prosegue la sua operatività con il nuovo sistema Scala: % degli Utenti migrati Goal: [01/01/2012] 100% Come raggiungere questo obiettivo?
di A Utenti tipo II - 7 utenti che necessitano di A, B Utenti tipo III - 400 utenti che necessitano di A, B, C, D Nome: Step-Feature-A Tipo: Step Descrizione: Implementare la feature A Criterio di accettazione: Un utente di tipo I migrato con successo Nome: Step-Feature-B Tipo: Step Descrizione: Implementare la feature B Criterio di accettazione: Un utente di tipo II migrato con successo Nome: Piano-Incrementale Versione: 0.1 Passo 0: Step-Feature-A Passo 1: Step-Feature-B Passo 2: Step-Feature-C ... Nome: Migrazione-Utenti Tipo: Valore Descrizione: l’Utente prosegue la sua operatività con il nuovo sistema Scala: % degli Utenti migrati Goal: [01/01/2012] 100%
viene copiata sul DB vecchio Supporta: Migrazione-Utenti, Piano- Incrementale Database nuovo Linux App nuova Database legacy Windows App vecchia Batch Sync Utente tipo I Utente tipo II Admin Altre soluzioni tecniche Nome: Migrazione-Utenti Tipo: Valore Descrizione: l’Utente prosegue la sua operatività con il nuovo sistema Scala: % degli Utenti migrati Goal: [01/01/2012] 100%
sistema aggiungendo HW Scala: TX/s supportate rispetto a un cluster di 1 server Goal: [2 server] 180% Goal: [3 server] 250% Goal: [4 server] 310% Nome: Stateless Tipo: Soluzione Descrizione: I server non conservano stato fra una richiesta HTTP e l’altra Supporta: Scalabile Nome: Sessione-su-DB Tipo: Soluzione Descrizione: La sessione HTTP viene conservata sul DB Supporta: Scalabile, Stateless Impatta: Latenza Nome: Sessione-su-cookie-crittato Tipo: Soluzione Descrizione: La sessione HTTP viene conservata in un cookie crittato stile Rails Supporta: Scalabile, Stateless Impatta: Sicurezza Soluzioni alternative