Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming
-
Upload
francesco-fullone -
Category
Technology
-
view
1.908 -
download
0
description
Transcript of Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming
Abbattere il rischio di insuccessocon Extreme Programming
Jacopo Romei
Di cosa t ra t te remo?
● Ovviamente: tecniche XP– Planning game– Pair programming– Continous integration– Test automatici - poco, altrimenti Gabriele
Lana cosa è venuto a fare?! ;)
● Progetti reali● Calvizie
Sa lva rs i f i nché s i è i n tempo
● Una metodologia serve ad organizzare il lavoro degli esseri umani.
● Una metodologia deve contribuire alla felicità degli essere umani.
Momento a fo r i sma
Se fai sempre quello che hai sempre fatto, otterrai sempre quello che hai sempre
ottenuto.
Abramo Lincoln
XP in una f rase
● Insieme di pratiche empiriche per lo sviluppo del software che ha come obiettivo la soddisfazione del cliente.
● Occhio!– empiriche, non astratte– soddisfazione del cliente, non il piacere di
programmare
XP non è una re l i g ione
● Le pratiche XP sono– una forma di conoscenza– uno strumento
● attenzione all'uso improprio
– modulari– risonanti
● limite di questo stesso talk
Nasce un nuovo p roget to
Forse un solo sviluppatore
Cont inous in tegra t ion
● Il limbo del codice: dall'ideazione all'integrazione
● Programmando soli è il default
Cont inous in tegra t ion & co .
● Compari perfetti:– I test automatici– Source versioning (SVN)
● Sviluppo adiabatico● DISCLAIMER: i veri nerd si tappino le orecchie!!!
No ia vs . c rea t iv i tà
● Creatività vs. incertezza● Sviluppo adiabatico vs. creatività● Sviluppo adiabatico vs. incertezza● Noia vs. sviluppo adiabatico● Noia vs. serenità
– XP e le altre metodologie agili puntano sulla persona quindi puntano sulla serenità
Momento a fo r i sma
Tutti pensano di cambiare il mondo. Nessuno di cambiare se stesso.
Lev Tolstoj
F in to XP
● Sviluppatori che praticano un cattivo XP● Nessuna metodologia funziona contro
– pigrizia– incompetenza– scorrettezza
● Cambiare sviluppatori
I l p roget to c resce
Riesco a pagare un collaboratore
Tut t i ne l l a s tessa ba rca
● Ok, siamo in due. E ora?– Frà Rodolfo da Ceprano (alias Christian De
Sica) in “Vacanze in America”: “Chi se fa l'affari sua, torna sano a casa sua!”
– Condivisione di problemi e soluzioni: pair programming
Pa i r p rogramming
● Critica tipica: perché pagare due persone per fare una cosa sola?
● Risposta: perché potrebbe convenire.– qualità significa indirettamente velocità– varianza ridotta– il solito empirismo sperimentale– ultimo ma non ultimo: morale alto
Pa i r p rogramming in remoto
● Attivo– Gobby
● Passivo– Strategico: VNC client, Skype– Tattico: VNC server, Skype
● Funziona, garantisce Francesco Trucchia ;)
I l p roget to p rospera
Non si è mai troppi, basta pianificare.
Comun ica re è comp lesso
Persone coinvolte
Can
ali d
a ge
stire
I l c l i en te se rve a no i e no i a lu i
Scadenze, scadenze, scadenze.
Manager s t ruzz i , c l i en t i s t ruzz i
● Il disordine esiste● Una metodologia
seria– non finge di non
saperlo– ne riduce l'effetto
efficacemente
Div ide e t impera
● Caos nel codice: test automatici● Caos nei cervelli: pair programming● Caos nei processi: agile planning
– posticipare le decisioni per ridurre lo scope● Planning game● Release planning● Iteration planning
P lann ing game
● User stories (feature driven)● Assegnazione di un peso● Vantaggi
– stima chi è esperto– promuove la discussione– riduce la varianza (come il pair
programming!)– divertimento, morale alto
Assegnaz ione d i p r i o r i tà
● Valore economico– denaro fatto o denaro risparmiato
● Costo– il costo varia col tempo: a volte meglio
aspettare, a volte meglio agire
● Nuova conoscenza– del prodotto o del progetto
● Rischio– scadenze, costi, funzionalità
Assegnaz ione d i p r i o r i tà
Assegnaz ione d i p r i o r i tà
Re lease p lann ing
● User stories● Velocity
– nota– tipica– stimata
● Deadline
Momento a fo r i sma
Essere incerti è scomodo,ma essere certi è ridicolo.
Proverbio cinese
I t e ra t i on p lann ing
● User stories● Scomposizione in task● Lunghezza dell'iterazione
P lann ing ne l mondo vero
● Budget fissati? Scadenze fissate?– Riduzione dello scope– Introduzione di buffer per l'incertezza
Mul t i - t ask ing e manager s t ruzz i
● Semplicemente inefficace● E' possibile dimostrarlo!
Mul t i - t ask ing e manager s t ruzz i
● 2 task (per i tempi morti dell'uno e dell'altro intercalati)
● Corretta assegnazione di priorità
Momento a fo r i sma
Le buone soluzioni sono inutili tentativi di interferire
con le leggi scientifiche. La loro origine è la pura vanità.
Il loro risultato il nulla.
Oscar Wilde