SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Downloaden Sie, um offline zu lesen
   
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 20­80
– 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
●
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?
   
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:build­all
[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: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!)
   
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

Weitere ähnliche Inhalte

Ähnlich wie Extreme Programming e PHP

Agile Ux: progettare e sviluppare web a iterazioni
Agile Ux: progettare e sviluppare web a iterazioniAgile Ux: progettare e sviluppare web a iterazioni
Agile Ux: progettare e sviluppare web a iterazioniAlberto Mucignat
 
Presentazione di Drupal 7 al Linux Day 26 ottobre 2013
Presentazione di Drupal 7 al Linux Day 26 ottobre 2013Presentazione di Drupal 7 al Linux Day 26 ottobre 2013
Presentazione di Drupal 7 al Linux Day 26 ottobre 2013Janhu Silvio Crispiatico
 
Non so assolutmente niente di informatica o web ma devo comunque creare un pr...
Non so assolutmente niente di informatica o web ma devo comunque creare un pr...Non so assolutmente niente di informatica o web ma devo comunque creare un pr...
Non so assolutmente niente di informatica o web ma devo comunque creare un pr...Gabriele Guizzardi
 
Come implementare i Rich Snippet per rafforzare la presenza in SERP
Come implementare i Rich Snippet per rafforzare la presenza in SERPCome implementare i Rich Snippet per rafforzare la presenza in SERP
Come implementare i Rich Snippet per rafforzare la presenza in SERPWeb2Lab Studio
 
Python per tutti
Python per tuttiPython per tutti
Python per tuttimasci
 
TYPO3 strumento per differenti soluzioni: sito community e sito multi-domain
TYPO3 strumento per differenti soluzioni: sito community e sito multi-domainTYPO3 strumento per differenti soluzioni: sito community e sito multi-domain
TYPO3 strumento per differenti soluzioni: sito community e sito multi-domaingammsystem
 
Agile and Lean: dalla pratica alla teoria
Agile and Lean: dalla pratica alla teoriaAgile and Lean: dalla pratica alla teoria
Agile and Lean: dalla pratica alla teoriaFrancesco Mapelli
 
Follow the UX path @Appsterdam
Follow the UX path @AppsterdamFollow the UX path @Appsterdam
Follow the UX path @AppsterdamMarco Buonvino
 
Riccardo it starts_with_a_goal_DevOps_Heroes_Parma
Riccardo it starts_with_a_goal_DevOps_Heroes_ParmaRiccardo it starts_with_a_goal_DevOps_Heroes_Parma
Riccardo it starts_with_a_goal_DevOps_Heroes_ParmaRiccardo Porrini
 
Rifare da 0 una piattaforma legacy
Rifare da 0 una piattaforma legacyRifare da 0 una piattaforma legacy
Rifare da 0 una piattaforma legacySusanna Ferrario
 
Collaborare con gli sviluppatori per organizzare e sviluppare servizi di orie...
Collaborare con gli sviluppatori per organizzare e sviluppare servizi di orie...Collaborare con gli sviluppatori per organizzare e sviluppare servizi di orie...
Collaborare con gli sviluppatori per organizzare e sviluppare servizi di orie...Stefano Penge
 
Mobile and web app Andrea Trento
Mobile and web app Andrea TrentoMobile and web app Andrea Trento
Mobile and web app Andrea TrentoInSide Training
 
Dall'ideazione alla progettazione - Teamwork e metodologie Agili
Dall'ideazione alla progettazione - Teamwork e metodologie AgiliDall'ideazione alla progettazione - Teamwork e metodologie Agili
Dall'ideazione alla progettazione - Teamwork e metodologie AgiliMassimiliano Camillucci
 
Percorsi formativi Lean-Agile
Percorsi formativi Lean-AgilePercorsi formativi Lean-Agile
Percorsi formativi Lean-AgileGiulio Roggero
 
Portfolio e referenze Ilario Gobbi
Portfolio e referenze Ilario GobbiPortfolio e referenze Ilario Gobbi
Portfolio e referenze Ilario GobbiIlario Gobbi
 
Ttg 09 07_2015_debug_vs_2015
Ttg 09 07_2015_debug_vs_2015Ttg 09 07_2015_debug_vs_2015
Ttg 09 07_2015_debug_vs_2015Piero Sbressa
 
It starts with a goal - Prato
It starts with a goal - PratoIt starts with a goal - Prato
It starts with a goal - PratoRiccardo Porrini
 

Ähnlich wie Extreme Programming e PHP (20)

Agile Ux: progettare e sviluppare web a iterazioni
Agile Ux: progettare e sviluppare web a iterazioniAgile Ux: progettare e sviluppare web a iterazioni
Agile Ux: progettare e sviluppare web a iterazioni
 
Startup weekend bootcamp
Startup weekend bootcampStartup weekend bootcamp
Startup weekend bootcamp
 
Presentazione di Drupal 7 al Linux Day 26 ottobre 2013
Presentazione di Drupal 7 al Linux Day 26 ottobre 2013Presentazione di Drupal 7 al Linux Day 26 ottobre 2013
Presentazione di Drupal 7 al Linux Day 26 ottobre 2013
 
Non so assolutmente niente di informatica o web ma devo comunque creare un pr...
Non so assolutmente niente di informatica o web ma devo comunque creare un pr...Non so assolutmente niente di informatica o web ma devo comunque creare un pr...
Non so assolutmente niente di informatica o web ma devo comunque creare un pr...
 
Come implementare i Rich Snippet per rafforzare la presenza in SERP
Come implementare i Rich Snippet per rafforzare la presenza in SERPCome implementare i Rich Snippet per rafforzare la presenza in SERP
Come implementare i Rich Snippet per rafforzare la presenza in SERP
 
Python per tutti
Python per tuttiPython per tutti
Python per tutti
 
TYPO3 strumento per differenti soluzioni: sito community e sito multi-domain
TYPO3 strumento per differenti soluzioni: sito community e sito multi-domainTYPO3 strumento per differenti soluzioni: sito community e sito multi-domain
TYPO3 strumento per differenti soluzioni: sito community e sito multi-domain
 
Agile and Lean: dalla pratica alla teoria
Agile and Lean: dalla pratica alla teoriaAgile and Lean: dalla pratica alla teoria
Agile and Lean: dalla pratica alla teoria
 
Follow the UX path @Appsterdam
Follow the UX path @AppsterdamFollow the UX path @Appsterdam
Follow the UX path @Appsterdam
 
Follow the UX path
Follow the UX pathFollow the UX path
Follow the UX path
 
Riccardo it starts_with_a_goal_DevOps_Heroes_Parma
Riccardo it starts_with_a_goal_DevOps_Heroes_ParmaRiccardo it starts_with_a_goal_DevOps_Heroes_Parma
Riccardo it starts_with_a_goal_DevOps_Heroes_Parma
 
Rifare da 0 una piattaforma legacy
Rifare da 0 una piattaforma legacyRifare da 0 una piattaforma legacy
Rifare da 0 una piattaforma legacy
 
Collaborare con gli sviluppatori per organizzare e sviluppare servizi di orie...
Collaborare con gli sviluppatori per organizzare e sviluppare servizi di orie...Collaborare con gli sviluppatori per organizzare e sviluppare servizi di orie...
Collaborare con gli sviluppatori per organizzare e sviluppare servizi di orie...
 
Mobile and web app Andrea Trento
Mobile and web app Andrea TrentoMobile and web app Andrea Trento
Mobile and web app Andrea Trento
 
Dall'ideazione alla progettazione - Teamwork e metodologie Agili
Dall'ideazione alla progettazione - Teamwork e metodologie AgiliDall'ideazione alla progettazione - Teamwork e metodologie Agili
Dall'ideazione alla progettazione - Teamwork e metodologie Agili
 
Percorsi formativi Lean-Agile
Percorsi formativi Lean-AgilePercorsi formativi Lean-Agile
Percorsi formativi Lean-Agile
 
Portfolio e referenze Ilario Gobbi
Portfolio e referenze Ilario GobbiPortfolio e referenze Ilario Gobbi
Portfolio e referenze Ilario Gobbi
 
Ttg 09 07_2015_debug_vs_2015
Ttg 09 07_2015_debug_vs_2015Ttg 09 07_2015_debug_vs_2015
Ttg 09 07_2015_debug_vs_2015
 
It starts with a goal - Prato
It starts with a goal - PratoIt starts with a goal - Prato
It starts with a goal - Prato
 
Pro php refactoring
Pro php refactoringPro php refactoring
Pro php refactoring
 

Mehr von Francesco Trucchia

Raccolta requisiti, stima e pianificazione in progetti agili - Università di ...
Raccolta requisiti, stima e pianificazione in progetti agili - Università di ...Raccolta requisiti, stima e pianificazione in progetti agili - Università di ...
Raccolta requisiti, stima e pianificazione in progetti agili - Università di ...Francesco Trucchia
 
Oltre Tata: lean startup all'italiana
Oltre Tata: lean startup all'italianaOltre Tata: lean startup all'italiana
Oltre Tata: lean startup all'italianaFrancesco Trucchia
 
Reingegnerizzazione di un Content Management System verso l'accessibilità sec...
Reingegnerizzazione di un Content Management System verso l'accessibilità sec...Reingegnerizzazione di un Content Management System verso l'accessibilità sec...
Reingegnerizzazione di un Content Management System verso l'accessibilità sec...Francesco Trucchia
 
eZ publish - Introduzione al sistema
eZ publish - Introduzione al sistemaeZ publish - Introduzione al sistema
eZ publish - Introduzione al sistemaFrancesco Trucchia
 

Mehr von Francesco Trucchia (9)

Raccolta requisiti, stima e pianificazione in progetti agili - Università di ...
Raccolta requisiti, stima e pianificazione in progetti agili - Università di ...Raccolta requisiti, stima e pianificazione in progetti agili - Università di ...
Raccolta requisiti, stima e pianificazione in progetti agili - Università di ...
 
Business model canvas
Business model canvasBusiness model canvas
Business model canvas
 
Cowo42 - Coworking Osimo
Cowo42 - Coworking OsimoCowo42 - Coworking Osimo
Cowo42 - Coworking Osimo
 
Oltre Tata: lean startup all'italiana
Oltre Tata: lean startup all'italianaOltre Tata: lean startup all'italiana
Oltre Tata: lean startup all'italiana
 
Agile software lifecycle
Agile software lifecycleAgile software lifecycle
Agile software lifecycle
 
Spaghetti code refactoring
Spaghetti code refactoringSpaghetti code refactoring
Spaghetti code refactoring
 
Reingegnerizzazione di un Content Management System verso l'accessibilità sec...
Reingegnerizzazione di un Content Management System verso l'accessibilità sec...Reingegnerizzazione di un Content Management System verso l'accessibilità sec...
Reingegnerizzazione di un Content Management System verso l'accessibilità sec...
 
eZ publish - Introduzione al sistema
eZ publish - Introduzione al sistemaeZ publish - Introduzione al sistema
eZ publish - Introduzione al sistema
 
eZ publish - Extension
eZ publish - ExtensioneZ publish - Extension
eZ publish - Extension
 

Extreme Programming e PHP