Sviluppo agile ed extreme programming
   
Sviluppo agile ed XP
●
Francesco Trucchia
●
ideato srl
●
www.ideato.it
●
Sviluppo applicazioni 
web 2.0
●
Jacopo Romei...
   
Extreme programming
●
Metodologia conforme al Manifesto Agile
●
Pratiche antiche raccolte e consolidate, 
all'estremo
...
   
Agenda
●
Planning
– User story
– Planning game
– Release planning
– Iteration planning
●
Test automatici
– Da user sto...
   
User story
●
Cosa è?
– feature vs. meccanismo
●
Forma
– ternaria (quaternaria opzionalmente...)
– concisa
– linguaggio...
   
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 v...
   
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 20­80
– Ma non è superficiale?
●...
   
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,...
   
Release planning
   
Release planning
Assegnate le priorità alle vostre storie.
   
Release planning
●
Stimare la data di rilascio
– Project velocity
●
Cambia, sempre.
●
Stima intuitiva
●
Analogia (stes...
   
Iteration planning
●
Cos'è?
– Un piano dei lavori su grana fine
●
1­2­4 settimane
– Più frequente per maggior feedback...
   
Iteration planning
●
Selezione delle storie
– Pesco user story dal release planning fino a coprire 
l'effort disponibi...
   
Iteration planning
Pianifichiamo la nostra iterazione di 180'
   
Implementare le user story
●
Basiamoci sulla user story d'esempio
●
Passiamo al codice
●
Preparate
– coppie di svilupp...
   
Fine primo tempo
Domande sul planning?
   
Step by step
●
mkdir noucou
●
cd noucou
●
symfony generate:project noucou
●
symfony generate:app fe
●
symfony generate...
   
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:...
   
Step by step
[scrittura test della form]
symfony test:functional fe ricettaActions (rosso!)
[implementazion della form...
   
Fine secondo tempo
Domande sul TDD?
   
Sviluppo agile ed XP
●
Francesco Trucchia
●
ideato srl
●
www.ideato.it
●
Sviluppo applicazioni 
web 2.0
●
Jacopo Romei...
Upcoming SlideShare
Loading in …5
×

Extreme Programming e PHP

1,281 views

Published on

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,281
On SlideShare
0
From Embeds
0
Number of Embeds
102
Actions
Shares
0
Downloads
6
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Extreme Programming e PHP

  1. 1.     Sviluppo agile ed extreme programming
  2. 2.     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
  3. 3.     Extreme programming ● Metodologia conforme al Manifesto Agile ● Pratiche antiche raccolte e consolidate,  all'estremo ● Vedremo solo due pratiche
  4. 4.     Agenda ● Planning – User story – Planning game – Release planning – Iteration planning ● Test automatici – Da user story a test  funzionale – Unit test – Refactoring – Regression test
  5. 5.     User story ● Cosa è? – feature vs. meccanismo ● Forma – ternaria (quaternaria opzionalmente...) – concisa – linguaggio naturale e trasversale ● per sviluppatori e per manager
  6. 6.     Un esempio ● Come utente registrato ● voglio inserire una ricetta ● perché gli altri utenti possano leggerla
  7. 7.     Scriviamo delle user story Immaginiamo un social network per scambiare,  condividere e trovare ricette gastronomiche via  web.
  8. 8.     Note alla scrittura ● Story splitting (per i temi è dovuto, prima o poi) ● Story merging
  9. 9.     Planning game ● Cos'è? – Pratica per razionalizzare la stima ● della criticità ● delle scadenze
  10. 10.     Planning game ● Come si gioca? – Partecipanti – Carte – Giocata segreta – 0, 1, 2, 3, 5, 8, 13, 20, 40, 100
  11. 11.     Planning game ● Come si stima? – Intuito vs. analisi ● Legge di Pareto o criterio del 20­80 – Ma non è superficiale? ● Strumenti di controllo
  12. 12.     Planning game Giocate con le vostre user story.
  13. 13.     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)
  14. 14.     Release planning
  15. 15.     Release planning Assegnate le priorità alle vostre storie.
  16. 16.     Release planning ● Stimare la data di rilascio – Project velocity ● Cambia, sempre. ● Stima intuitiva ● Analogia (stesso team, progetto diverso?) ● Ultima iterazione (ultime 3?)
  17. 17.     Iteration planning ● Cos'è? – Un piano dei lavori su grana fine ● 1­2­4 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?
  18. 18.     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
  19. 19.     Iteration planning Pianifichiamo la nostra iterazione di 180'
  20. 20.     Implementare le user story ● Basiamoci sulla user story d'esempio ● Passiamo al codice ● Preparate – coppie di sviluppatori – symfony – un IDE di fiducia – LAMP
  21. 21.     Fine primo tempo Domande sul planning?
  22. 22.     Step by step ● mkdir noucou ● cd noucou ● symfony generate:project noucou ● symfony generate:app fe ● symfony generate:module fe ricetta
  23. 23.     Step by step ● symfony test:all (fail) ● symfony test:functional fe ricettaActions (fail)
  24. 24.     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:build­all [implementazione della list] symfony test:functional fe ricettaActions (verde!) [scrittura test della form]
  25. 25.     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:generate­module ­­with­show 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!)
  26. 26.     Fine secondo tempo Domande sul TDD?
  27. 27.     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

×