festivalmente: getting things done
TRANSCRIPT
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
UN COMPUTER* SENZA SOFTWARE
È COMPLETAMENTE INUTILE
*PC di casa, portatile, cellulare, orologio, ATM, console, automobile etc…
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!)
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?