Festivalmente: Getting Things done

27
GETTING THINGS DONE Dallo sviluppo del software alla vita di tutti i giorni Grassano, 29 Dicembre 2015 Vincenzo Garambone

Transcript of Festivalmente: Getting Things done

GETTING THINGS DONEDallo sviluppo del software alla vita di tutti i giorni

Grassano, 29 Dicembre 2015

Vincenzo Garambone

CHI SONO• Software Developer

• Formatore Tecnico Oracle & Microsoft

• Tecnologie & interessi:

• Java

• HTML 5

• Video Game Development

• Free & Open Source Software

• Metodologie Agili

COS'È ESATTAMENTE IL SOFTWARE?

• L'insieme di istruzioni e regole in grado di fornire ad un computer la capacità di compiere una o più operazioni.

software |ˈsôf(t)wer|noun

CHE ASPETTO HA IL SOFTWARE?

Utente Sviluppatore

UN COMPUTER* SENZA SOFTWARE

È COMPLETAMENTE INUTILE

*PC di casa, portatile, cellulare, orologio, ATM, console, automobile etc…

ANNI '60

“Penso che nel mondo ci sia mercato forse per 4 o 5 computer” Thomas J. Watson

CEO di IBM

ANNI '60

• A differenza di quanto avvenuto con altre scienze applicate, l'informatica:

• Cresce e si evolve in modo rapidissimo

• I progetti diventano sempre più complessi…

ANNI '60

• … e non si sa come affrontarli:

• Sforamento dei budget

• Ritardi nel completamento

• Scarsa affidabilità

CRISI DEL SOFTWARE!

• Nasce la consapevolezza che il processo di costruzione di un’applicazione software deve essere affrontato nello stesso modo adottato dagli ingegneri per costruire sistemi grandi e complessi come ponti, raffinerie, aerei.

• Nasce l'Ingegneria del Software

INGEGNERIA?

L’approccio sistematico allo sviluppo, all’operatività, alla manutenzione e al ritiro del software

Ciclo di Vita

I MODELLI DI SVILUPPO

• Sono la risposta all'annosa domanda:

• Come diavolo organizzo il mio lavoro?

• Condizionano quella che sarà la "vita" del SW.

CODE & FIX• Scrivere il programma, compilare e correggere

eventuali errori finché non ne siamo soddisfatti

• I criteri di qualità sono del tutto soggettivi

• Il lavoro non è strutturato, né documentato

• Le operazioni di manutenzione sono difficoltose (e costose!)

EXPECTATIONS…

…VS REALITY

WATERFALL

• Lavoro suddiviso in fasi consequenziali

• ogni stadio di sviluppo viene eseguito solo e soltanto dopo il precedente

WATERFALL• Il lavoro con approccio Waterfall è tipicamente orientato alle richieste del

cliente:

• Cosa vuole il cliente? *

• Come possiamo realizzarlo? *

• Ok, facciamolo. *

• Proviamo il risultato. *

• Consegnamo il prodotto. *

*Quando abbiamo finito, sarebbe meglio scrivere "qualche" documento a riguardo

WATERFALL• Ma se qualcosa va storto?

• Il cliente cambia idea?

• Il nostro team cambia idea?

• Il mondo cambia?

• Ricominciamo daccapo.

I MODELLI AGILI!

• Nel Febbraio 2001, 17 sviluppatori software pubblicano il Manifesto For Agile Software Development

• Composto da 12 punti, il manifesto cambierà radicalmente il modo di lavorare nell'industria del software

THE AGILE MANIFESTO

1.La nostra massima priorità è soddisfare il cliente, rilasciando software di valore, fin da subito e in maniera continua.

2.Accogliamo i cambiamenti nei requisiti, anche a stadi avanzati dello sviluppo.

THE AGILE MANIFESTO

3. Consegnamo frequentemente software funzionante, con cadenza variabile da un paio di settimane a un paio di mesi, preferendo i periodi brevi.

THE AGILE MANIFESTO

4.Committenti e sviluppatori devono lavorare insieme e quotidianamente per tutta la durata del progetto.

5.Fondiamo i progetti su individui motivati. Diamo loro l'ambiente e il supporto di cui hanno bisogno

THE AGILE MANIFESTO5.Una conversazione faccia a faccia è il modo più

efficiente e più efficace per comunicare

THE AGILE MANIFESTO

10. La semplicità - l'arte di massimizzare la quantità di lavoro non svolto - è essenziale.

THE AGILE MANIFESTO12. A intervalli regolari il team riflette su come diventare più efficace,

dopodiché regola e adatta il proprio comportamento di conseguenza.

PERCHÉ ESSERE AGILI?

• Ciò che conta sono le persone: utenti finali, clienti o colleghi

• C'è sempre da imparare

• Si cercano le soluzioni a problemi difficili con semplicità

PERCHÉ ESSERE AGILI?

• Perché sviluppare software significa risolvere problemi…

• …pensandoci bene, non è poi così diverso dall'affrontare la vita di tutti i giorni, no?

GRAZIE!

@garambo

garambo.it

/garambo