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