2013 why agile

30
Why Agile? Adopt a new Cultural style Ing. Felice Pescatore www.felicepescatore.it 5 Febbraio 2013

Upload: felice-pescatore

Post on 06-Dec-2014

339 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: 2013 why agile

Why Agile?Adopt a new Cultural style

Ing. Felice Pescatorewww.felicepescatore.it

5 Febbraio 2013

Page 2: 2013 why agile

AGENDA

Software Development

Common Development Problem

Why Agile

Adaptive vs. Predictive

Benefit

Disadvantage

Why Agile? 2

Page 3: 2013 why agile

SOFTWARE DEVELOPMENT: FOUR PHASESWhat we do…

Requirements Analysis

Architecture and

Design

Development

Test and Feedback

Why Agile? 3

Page 4: 2013 why agile

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;

Page 5: 2013 why agile

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

Page 6: 2013 why agile

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

Page 7: 2013 why agile

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)

Page 8: 2013 why agile

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.

Page 9: 2013 why agile

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.

Page 10: 2013 why agile

WATERFALL vs. AGILEROI first approach

Why Agile? 10

Page 11: 2013 why agile

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

Page 12: 2013 why agile

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

Page 13: 2013 why agile

ITERATIVE DEVELOPMENTLess first

Why Agile? 13

Iterative Development

All-At-Once Development

Page 14: 2013 why agile

ITERATIVE DEVELOPMENTStep-by-Step

Why Agile? 14

IncrementalDelivery

All-At-OnceDelivery

Page 15: 2013 why agile

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

Page 16: 2013 why agile

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.

Page 17: 2013 why agile

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:

Page 18: 2013 why agile

AGILE DEVELOPMENTAll in a picture

Why Agile? 18

Page 19: 2013 why agile

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

Page 20: 2013 why agile

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).

Page 21: 2013 why agile

WHAT IS AN AGILE METHODOLOGY?Agile CORE Family Tree

Why Agile? 21

Page 22: 2013 why agile

AGILE METHODOLOGYComparison

Why Agile? 22

Page 23: 2013 why agile

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

Page 24: 2013 why agile

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.

Page 25: 2013 why agile

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)

Page 26: 2013 why agile

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

Page 27: 2013 why agile

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.

Page 28: 2013 why agile

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.

Page 29: 2013 why agile

@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

Page 30: 2013 why agile

THANKS FOR WATCHING

Why Agile? 30