Jacopo Romei: Abbattere i rischi di insuccesso con Extreme Programming

Post on 14-Jan-2015

1.908 views 0 download

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