View
1.930
Download
0
Category
Preview:
DESCRIPTION
Citation preview
Sviluppo agile ed extreme programming
Sviluppo agile ed XP
● Francesco Trucchia● ideato srl● www.ideato.it● Sviluppo applicazioni
web 2.0
● Jacopo Romei● www.sviluppoagile.it● Coaching agile e
consulenze
Extreme programming
● Metodologia conforme al Manifesto Agile● Pratiche antiche raccolte e consolidate,
all'estremo● Vedremo solo due pratiche
Agenda
● Planning– User story– Planning game– Release planning– Iteration planning
● Test automatici– Da user story a test
funzionale– Unit test– Refactoring– Regression test
User story
● Cosa è?– feature vs. meccanismo
● Forma– ternaria (quaternaria opzionalmente...)– concisa– linguaggio naturale e trasversale
● per sviluppatori e per manager
Un esempio
● Come utente registrato● voglio inserire una ricetta● perché gli altri utenti possano leggerla
Scriviamo delle user story
Immaginiamo un social network per scambiare, condividere e trovare ricette gastronomiche via
web.
Note alla scrittura
● Story splitting (per i temi è dovuto, prima o poi)● Story merging
Planning game
● Cos'è?– Pratica per razionalizzare la stima
● della criticità● delle scadenze
Planning game
● Come si gioca?– Partecipanti– Carte– Giocata segreta– 0, 1, 2, 3, 5, 8, 13, 20, 40, 100
Planning game
● Come si stima?– Intuito vs. analisi
● Legge di Pareto o criterio del 2080– Ma non è superficiale?
● Strumenti di controllo
Planning game
Giocate con le vostre user story.
Release planning● Cos'è?
– Un piano dei lavori su grana grossa● Priorità
– Business value (Kano, analisi di mercato, etc etc)– Costo– Conoscenza del dominio e del processo– Rischio– Ordinamento a grana fine (1 vs. 1)
Release planning
Release planning
Assegnate le priorità alle vostre storie.
Release planning
● Stimare la data di rilascio– Project velocity
● Cambia, sempre.● Stima intuitiva● Analogia (stesso team, progetto diverso?)● Ultima iterazione (ultime 3?)
Iteration planning
● Cos'è?– Un piano dei lavori su grana fine
● 124 settimane– Più frequente per maggior feedback– Meno frequente per minore overhead
– Basato sui task, calcolato in ore (o giorni ideali, o pomodori)
– Non torno al vecchio metodo?
Iteration planning
● Selezione delle storie– Pesco user story dal release planning fino a coprire
l'effort disponibile (in minuti?)● Scrivere i test: 20● Scrivere la form: 20● Scrivere la validazione: 25● Scrivere la business logic: 20
– I test non sono un accessorio, come vedremo
Iteration planning
Pianifichiamo la nostra iterazione di 180'
Implementare le user story
● Basiamoci sulla user story d'esempio● Passiamo al codice● Preparate
– coppie di sviluppatori– symfony– un IDE di fiducia– LAMP
Fine primo tempo
Domande sul planning?
Step by step
● mkdir noucou● cd noucou● symfony generate:project noucou● symfony generate:app fe● symfony generate:module fe ricetta
Step by step
● symfony test:all (fail)● symfony test:functional fe ricettaActions (fail)
Step by step[scrittura test <h1>Nouvelle cousine 2.0 (Beta)</h1>]
[correzione in actions e in template]
symfony test:functional fe ricettaActions (verde!)
[scrittura test della list]
symfony test:functional fe ricettaActions (rosso!)
[modifca schema.yml]
[modifica database.yml]
symfony propel:buildall
[implementazione della list]
symfony test:functional fe ricettaActions (verde!)
[scrittura test della form]
Step by step[scrittura test della form]
symfony test:functional fe ricettaActions (rosso!)
[implementazion della form]
symfony test:functional fe ricettaActions (verde!)
mv apps/fe/modules/ricetta apps/fe/modules/ricetta.backup
symfony propel:generatemodule withshow fe ricetta Ricetta
symfony test:functional fe ricettaActions (rosso!)
[refactorig del codice]
symfony test:functional fe ricettaActions (verde!)
[scrittura test update ricetta]
[creazione del file fixtures]
[modifica del test per caricare le fixture]
symfony test:functional fe ricettaActions (verde!)
[scrittura test validazione ricetta]
symfony test:functional fe ricettaActions (verde!)
Fine secondo tempo
Domande sul TDD?
Sviluppo agile ed XP
● Francesco Trucchia● ideato srl● www.ideato.it● Sviluppo applicazioni
web 2.0
● Jacopo Romei● www.sviluppoagile.it● Coaching agile e
consulenze
Recommended