Date post: | 06-Dec-2014 |
Category: |
Documents |
Upload: | felice-pescatore |
View: | 332 times |
Download: | 0 times |
Why Agile?Adopt a new Cultural style
Ing. Felice Pescatorewww.felicepescatore.it
5 Febbraio 2013
AGENDA
Software Development
Common Development Problem
Why Agile
Adaptive vs. Predictive
Benefit
Disadvantage
Why Agile? 2
SOFTWARE DEVELOPMENT: FOUR PHASESWhat we do…
Requirements Analysis
Architecture and
Design
Development
Test and Feedback
Why Agile? 3
METHODS OF SOFTWARE DEVELOPMENTAdaptive vs. Predictive
Why Agile? 4
Predittivo
• Vecchie metodologie basate su metodi
predittivi;
• Funzionalità e task sono pianificati
all’inizio del progetto e restano validi
per l’intero ciclo di sviluppo;:
• Focus sulla pianificazione di dettaglio;
• Difficoltà nel gestire i cambiamenti;
Adattativo
• Adattamento rapido ai cambiamenti;
• Quando le esigenze cambiano, anche il
Team si modifica con esse;
• Gestire l’immediato ed avere una
Visione della strada da percorrere;
COMMON ISSUENot Only, of course!
Time to market for projects is too long
Unrealistic deadlines
Poor Estimation
Requirement Changes
Immature architecture and design
No Documentation or too much
Inadequate Testing
Why Agile? 5
PROJECTS TODAYNot Only, of course!
Troppo lenti
• “Le mie necessità sono cambiate, ma l’IT non riesce a supportarmi”
• “Nulla sarà pronto prima di un anno”
Scarsa attenzione al vero Valore
• “Lo scope del progetto è errato ma ne abbiamo già codificato la metà”
• “Ho ricevuto montagne di documentazione che nessuno usa ma il sistema non rispecchia le mie
necessità”
• “Abbiamo sprecato tempo (e denaro) a progettare e realizzare funzionalità che nessuno usa”
Poco reattivo
• “Il progetto costringe ad effettuare delle scelte vincolanti prima che gli stakeholder sappiano
cosa realmente interessa”;
• “Ogni piccola review costringe ad una revisione della commessa”
Fuori controllo
• “Non so cosa sta succedendo nello sviluppo del progetto”
• “Siamo in stallo perché quello che viene sviluppato sembra non produrre Valore”
Why Agile? 6
PROJECTS SUCCES Traditional vs. Agile
Why Agile? 7
2011 CHAOS report
The agile process is the universal remedy for software development project failure. Software applications developed through the agile process have three times the success rate of the traditional waterfall method and a much lower percentage of time and cost overruns.” (page 25)
WHY AGILE?… part 1…
Why Agile? 8
• Realizzare e rendere disponibili le
funzionalità che rispecchiano i requisiti
attesi e non quelli espresso;
• Ridurre gli sprechi (es: documentazione
inutile);
• Catturare e realizzare quanto realmente ha
Valore per il Cliente;
• Abbattere le barriera tra stakeholder e team
di sviluppo;
• Fornire una trasparenze nella gestione delle
fasi di progetto.
WHY AGILE?… part 2
Why Agile? 9
Customer satisfaction by rapid delivery of useful
software.
Welcome changing requirements, even late in
development.
Working software is delivered frequently.
Working software is the principal measure of
progress.
Sustainable development, able to maintain a
constant pace.
Close, daily co-operation between business
people and developers
Face-to-face conversation is best form of
communication.
Projects are built around motivated individuals.
Continuous attention to technical excellence and
good design.
Simplicity
Self organizing teams.
Regular adaptation to changing circumstances.
WATERFALL vs. AGILEROI first approach
Why Agile? 10
WATERFALL vs. AGILEComparing
Why Agile? 11
Team in attesa o non ancora costituito
Testing team peak
Design team peak
Development team peak
Requirements peak
Analisti e Tester non sono sul progetto
Design
Development
Test
Requirements
Typical water fall model development (With some overlap)
Poche possibilità di inserire nuove funzionalità e rivedere quelle pianificate
Rischio di rifare parte del lavoro per la scarsa aderenza ai reali requisiti
La soluzione è visibile/consumabile solo alla fine del ciclo di sviluppo
Nessun beneficio fino alla fine
Design
Development
Test
Requirements Design
Development
Test
Requirements
Design
DevelopmentTest
Requirements
No big team peaks/Spikes
Tutto il Team è pronto ed allocato sul progetto
Small iterations help in getting early feedback
La Collaborazione stretta reduce l’incertezza su cora realizzare
Migliore comprensione dei requisiti tramite le User Story Migliore qualità del prodotto grazie a test e rilasci continui Ogni iterazione produce valore Possibilità, teorica, di rilasciare il sistema in produzione ad
ogni iterazione Capacità di rispondere alle richieste di cambiamento
Agile model with Iterations
ITERATIVE INCREMENTAL DEVELOPMENTStep-by-step
Why Agile? 12
“Iterative development is an approach to building software (or
anything) in which the overall lifecycle is composed of several iterations in
sequence.
Each iteration is a self-contained mini-project composed of activities
such as requirements analysis, design, programming, and test.
Usually the partial system grows incrementally with new features,
iteration by iteration; in other words, incremental development.”
Craig Larman
ITERATIVE DEVELOPMENTLess first
Why Agile? 13
Iterative Development
All-At-Once Development
ITERATIVE DEVELOPMENTStep-by-Step
Why Agile? 14
IncrementalDelivery
All-At-OnceDelivery
WHAT IS AN AGILE METHODOLOGY?Values and Practices
Why Agile? 15
Agile (CORE) è un insieme di Valori e Principi, per lo sviluppo di soluzioni IT, che
enfatizzano la soddisfazione degli stakeholder attraverso il coinvolgimento diretto e il
rilascio continuo di soluzioni consumabili.
Intorno ai Valori e ai Principi del Manifesto Agile sono nate una serie di metodologie
(CORE) di delivery che enfatizzano il lavoro in piccolo team, con budget e tempi limitati.
Le metodologie Agili (CORE) sono considerate:
• Lightweight
• People-based piuttosto che Process-based
• Adattative invece che predittive
• Orientate alla produzione di Valore
WHEN AGILE COMING UP?History
Why Agile? 16
Agile nasce concettualmente intorno alla metà degli anni ‘90 come
soluzione allo sviluppo dinamico/leggero (lightweight software
development) in contrapposizione allo sviluppo
burocratizzato/pesante (heavy weight development).
Con Agile (CORE) andiamo ad identificare un insieme di Valori e Principi, per lo
sviluppo di soluzioni IT, che enfatizzano la soddisfazione degli stakeholder attraverso il
coinvolgimento diretto e il rilascio continuo di soluzioni consumabili.
AGILE MANIFESTOValues
Why Agile? 17
Process and toolsIndividuals and
interactionsover
Following a planResponding to change over
Comprehensive documentation
Working software over
Contract negotiationCustomer collaboration over
Source: www.agilemanifesto.org
Nel 2001 l’Agile Alliance, organizzazione no profit fondata da sviluppatori, crea il
Manifesto Agile, incentrato su 4 valori portati:
AGILE DEVELOPMENTAll in a picture
Why Agile? 18
AGILE…. DISTILLEDThe basis
Why Agile? 19
Creare una Vision
Abbracciare il Cambiamento
Priorizzare le Attività
Creare mini/micro WorkItem
Ottenere Feedback
Decidere i prossimi step
Collaborazione
Lavoro di Team
Brevi Iterazioni
Minimizzare i Rischi
Minimal Plannig
Small Team (5-9)
Close Work
WHAT IS AN AGILE METHODOLOGY?Agile CORE Family
Why Agile? 20
Intorno ai Valori e ai Principi del Manifesto Agile sono nate una serie di
metodologie (CORE) di delivery che enfatizzano il lavoro in piccolo team, con
budget e tempi limitati.
Le metodologie Agili (CORE) sono considerate:
• Lightweight
• People-based piuttosto che Process-based
• Adattative invece che predittive
• Orientate alla produzione di Valorescrum(1995), crystal clear, Extreme programming (1996), Adaptive software
development, Feature Driven Development, and Dynamic Systems (1995).
WHAT IS AN AGILE METHODOLOGY?Agile CORE Family Tree
Why Agile? 21
AGILE METHODOLOGYComparison
Why Agile? 22
AGILE…. MYTHSThey are alive!
Why Agile? 23
• no design
• no testing
• no documentation
• no idea of progress
• poor quality
• no plan
• auditors won’t allow it
KEY BENEFITNot Only…
Why Agile? 24
• Incremento della Flessibilità: viene minimizzato l’investimento iniziale
e massimizzato quello sul ROI (Return On Investment), grazie alla
creazione di un efficiente processo di sviluppo;
• Realizzazione della Soluzione Attesa: coinvolge stakeholder,
sviluppatori, manager, ecc, affinché la soluzione prodotta sia quella che
rispecchia le necessità di business (Valore);
• Accelera il Delivery: Idealmente ad ogni iterazione viene prodotta una
soluzione consumabile;
• Riduce i Rischi ed aumenta la Qualità: vengono affrontati e risolte
prima le incertezze ed i problemi.
KEY BENEFITEvolutionary design
Why Agile? 25
• Dal CHAOS report dello Standish Group emerge
un’allarmante verità:
• Circa i 2/3 delle features realizzate
basandosi su un up-front analysis risultano
inutilizzate!!
• La soluzione: abbracciare il cambiamento
• Agile è un approccio non lineare che
contempla il cambiamento e permette di
adattarsi ad esso;
• Le funzionalità che si scoprono non
necessarie vengono abbandonate prima,
idealmente ancor prima che ne inizi lo
sviluppo;
• La soluzione evolve abbracciando in modo
ottimale le mutate esigenze di business.
20%(EFFETTIVAMENTE USATE)
16%(USATE QUALCHE VOLTA)
19%(USATE RARAMENTE)
45%(MAI USATE)
KEY BENEFITAccelerates Delivery
Why Agile? 26
Lo sviluppo incrementale organizzato in
iterazioni permette al Team di ragionare
in funzione di soluzioni consumabili,
velocizzandone il delivery.
• Le varie soluzioni consumabili non sono prototipi, ma versioni incrementali sistema reale;
• Il Team si focalizza sui task a maggior rischio (high-risk) e maggior Valore (high-value aspects);
• Gli stakeholder possono decider se accettare o meno le nuove funzionalità:
• Avere il prima possibile le nuove funzionalità consente agli stakeholder di attuare i relativi piani di accettazione il prima possibile
KEY BENEFITReduces risk and increases quality
Why Agile? 27
Le Iterazioni accompagnano il progetto nella
propria evoluzione, abbracciando i rischi ed
attuando le opportune soluzioni risolutive.
• Nuove User Story possono essere aggiunte al
progetto, ma non all’Iterazione
• Le User Story non incluse nell’iterazione
corrente possono essere ri-priorizzate;
• Alcune User Story, non incluse nell’iterazione,
possono sparire per far posto a nuove User
Story a priorità più alta, mantenendo il
vincolo temporale/economico previsto.
DISADVANTAGEYes: not only benefit!
Why Agile? 28
• L’adozione dell’Agile non è banale:
• Rende visibile tutti i problemi
• Agile non corregge nulla: è il Team che lo
fa
• Il Team deve lavorare bene, altrimenti i
progetti saranno condannati ad una rapida
cancellazione;
• Una sua adozione parziale potrebbe essere
peggio che una sua non adozione.
@Why Agile?
ABOUT MEget in touch
Why Agile? 29
Disciplined Agile Delivery Italy Group
Felice Pescatore, Agile Software
Architect
Email: [email protected]
Cell. 392/7157684
www.felicepescatore.it
THANKS FOR WATCHING
Why Agile? 30