Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

32
Abbattere il rischio di insuccesso con Extreme Programming Jacopo Romei

description

 

Transcript of Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

Page 1: Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

Abbattere il rischio di insuccessocon Extreme Programming

Jacopo Romei

Page 2: Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

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

Page 3: Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

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.

Page 4: Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

Momento a fo r i sma

Se fai sempre quello che hai sempre fatto, otterrai sempre quello che hai sempre

ottenuto.

Abramo Lincoln

Page 5: Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

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

Page 6: Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

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

Page 7: Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

Nasce un nuovo p roget to

Forse un solo sviluppatore

Page 8: Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

Cont inous in tegra t ion

● Il limbo del codice: dall'ideazione all'integrazione

● Programmando soli è il default

Page 9: Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

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!!!

Page 10: Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

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à

Page 11: Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

Momento a fo r i sma

Tutti pensano di cambiare il mondo. Nessuno di cambiare se stesso.

Lev Tolstoj

Page 12: Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

F in to XP

● Sviluppatori che praticano un cattivo XP● Nessuna metodologia funziona contro

– pigrizia– incompetenza– scorrettezza

● Cambiare sviluppatori

Page 13: Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

I l p roget to c resce

Riesco a pagare un collaboratore

Page 14: Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

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

Page 15: Jacopo Romei: Abbattere i rischi di insuccesso con Extreme 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

Page 16: Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

Pa i r p rogramming in remoto

● Attivo– Gobby

● Passivo– Strategico: VNC client, Skype– Tattico: VNC server, Skype

● Funziona, garantisce Francesco Trucchia ;)

Page 17: Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

I l p roget to p rospera

Non si è mai troppi, basta pianificare.

Page 18: Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

Comun ica re è comp lesso

Persone coinvolte

Can

ali d

a ge

stire

Page 19: Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

I l c l i en te se rve a no i e no i a lu i

Scadenze, scadenze, scadenze.

Page 20: Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

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

Page 21: Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

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

Page 22: Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

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

Page 23: Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

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à

Page 24: Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

Assegnaz ione d i p r i o r i tà

Page 25: Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

Assegnaz ione d i p r i o r i tà

Page 26: Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

Re lease p lann ing

● User stories● Velocity

– nota– tipica– stimata

● Deadline

Page 27: Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

Momento a fo r i sma

Essere incerti è scomodo,ma essere certi è ridicolo.

Proverbio cinese

Page 28: Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

I t e ra t i on p lann ing

● User stories● Scomposizione in task● Lunghezza dell'iterazione

Page 29: Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

P lann ing ne l mondo vero

● Budget fissati? Scadenze fissate?– Riduzione dello scope– Introduzione di buffer per l'incertezza

Page 30: Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

Mul t i - t ask ing e manager s t ruzz i

● Semplicemente inefficace● E' possibile dimostrarlo!

Page 31: Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

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à

Page 32: Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

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