Sviluppo Agile secondo l'approccio SCRUM

80
Sviluppo Agile secondo l’approccio SCRUM

description

Come abbiamo introdotto la metodologia agile, attraverso SCRUM, in una piccola agenzia web multi progetto seguendo un approccio lean per gestire sia i team che i progetti.

Transcript of Sviluppo Agile secondo l'approccio SCRUM

Page 1: Sviluppo Agile secondo l'approccio SCRUM

Sviluppo Agile secondo l’approccio SCRUM

Page 2: Sviluppo Agile secondo l'approccio SCRUM

@teamcantiere !!

Matteo Papadopoulos — @spleenteo Stefano Verna — @steffoz

!!

Ruby Rails • WebApp • Mobile App • Design

Page 3: Sviluppo Agile secondo l'approccio SCRUM

Storia e contesto

Page 4: Sviluppo Agile secondo l'approccio SCRUM

1968 NATO conference

Storia e contesto

Page 5: Sviluppo Agile secondo l'approccio SCRUM

Software Crisis

Storia e contesto

Page 6: Sviluppo Agile secondo l'approccio SCRUM

• in ritardo • over-budget • pessima qualità • inutili

Storia e contesto

Page 7: Sviluppo Agile secondo l'approccio SCRUM

Software Engineering

Storia e contesto

Page 8: Sviluppo Agile secondo l'approccio SCRUM

Com’è andata?

Page 9: Sviluppo Agile secondo l'approccio SCRUM

1960

1970

1980

Com’è andata?

Page 10: Sviluppo Agile secondo l'approccio SCRUM

Status quo

Com’è andata?

Page 11: Sviluppo Agile secondo l'approccio SCRUM

2009

Com’è andata?

Page 12: Sviluppo Agile secondo l'approccio SCRUM

24% completi fallimenti

75% over-budget

Com’è andata?

Page 13: Sviluppo Agile secondo l'approccio SCRUM

(come è stato possibile cambiare il mondo?)

Com’è andata?

Page 14: Sviluppo Agile secondo l'approccio SCRUM

1. ridurre la complessità

Software Engineering

Page 15: Sviluppo Agile secondo l'approccio SCRUM

smettiamo di scrivere codice

Page 16: Sviluppo Agile secondo l'approccio SCRUM

codice macchina

assembler

linguaggi programmazione

programmazione ad oggetti

?????

Page 17: Sviluppo Agile secondo l'approccio SCRUM

1960 - COBOL

1990 - PROLOG

2000 - SOA, UML2

Page 18: Sviluppo Agile secondo l'approccio SCRUM

non è complesso descrivere la soluzione; è complesso il problema

complessità intrinseca

Page 19: Sviluppo Agile secondo l'approccio SCRUM

1. ridurre la complessità

Page 20: Sviluppo Agile secondo l'approccio SCRUM

2. ridurre l’errore umano

Software Engineering

Page 21: Sviluppo Agile secondo l'approccio SCRUM

metodi formali !

modellazione matematica del problema

Page 22: Sviluppo Agile secondo l'approccio SCRUM

“costo inaccessibile”

Page 23: Sviluppo Agile secondo l'approccio SCRUM

2000 - Polar Lander100.000.000$ di investimento

Page 24: Sviluppo Agile secondo l'approccio SCRUM

“sono stati scritti troppi pochi test”

Page 25: Sviluppo Agile secondo l'approccio SCRUM

2. ridurre l’errore umano

Page 26: Sviluppo Agile secondo l'approccio SCRUM

3. eliminare la variabilità dei progetti

Software Engineering

Page 27: Sviluppo Agile secondo l'approccio SCRUM

ingegneria industriale/civile

Page 28: Sviluppo Agile secondo l'approccio SCRUM

progetti ripetibili !

!

!

!

progetti unici

Page 29: Sviluppo Agile secondo l'approccio SCRUM

IKEA 2011 - 280 stores

Page 30: Sviluppo Agile secondo l'approccio SCRUM

Casa sulla cascata 1939 - Frank Lloyd Wright

Page 31: Sviluppo Agile secondo l'approccio SCRUM

costo stimato 30.000$

costo finale: 400%

Page 32: Sviluppo Agile secondo l'approccio SCRUM

pessima qualità statica

inagibile

Page 33: Sviluppo Agile secondo l'approccio SCRUM

ricostruita nel ‘90

Page 34: Sviluppo Agile secondo l'approccio SCRUM

progettazione !

!

!

costruzione

Page 35: Sviluppo Agile secondo l'approccio SCRUM
Page 36: Sviluppo Agile secondo l'approccio SCRUM
Page 37: Sviluppo Agile secondo l'approccio SCRUM

qual’è il parallelo di queste fasi nel mondo SW?

progettazione !

costruzione

= ????????? !

= ?????????

Page 38: Sviluppo Agile secondo l'approccio SCRUM

progettazione !

costruzione

= specifiche !

= programmazione

qual’è il parallelo di queste fasi nel mondo SW?

Page 39: Sviluppo Agile secondo l'approccio SCRUM

progettazione !

costruzione

= specifiche !

= programmazione

qual’è il parallelo di queste fasi nel mondo SW?

Page 40: Sviluppo Agile secondo l'approccio SCRUM

progettazione !

costruzione

= codice sorgente !

= compilazione

qual’è il parallelo di queste fasi nel mondo SW?

Page 41: Sviluppo Agile secondo l'approccio SCRUM

progettazione !

costruzione

= codice sorgente !

= compilazione

10%

90%

99%

1%

rapporto economico

Page 42: Sviluppo Agile secondo l'approccio SCRUM

20 programmatori

Page 43: Sviluppo Agile secondo l'approccio SCRUM

20 architetti

Page 44: Sviluppo Agile secondo l'approccio SCRUM

la costruzione di software non è un processo

definibile

Page 45: Sviluppo Agile secondo l'approccio SCRUM

waterfall

analisi/design

coding

verifica/test

pubblicazione

Page 46: Sviluppo Agile secondo l'approccio SCRUM

Software Engineering

Page 47: Sviluppo Agile secondo l'approccio SCRUM

processo empirico

1. osservazione 2. ipotesi 3. esperimento

Page 48: Sviluppo Agile secondo l'approccio SCRUM

2001 Agile

Page 49: Sviluppo Agile secondo l'approccio SCRUM

Gli individui e le interazioni più che i processi e gli strumenti

• Le architetture, i requisiti e la progettazione migliori emergono da team che si auto-organizzano.

• Fondiamo i progetti su individui motivati, dando loro l'ambiente e il supporto di cui hanno bisogno.

• I processi agili promuovono uno sviluppo sostenibile. Tutti i soggetti coinvolti dovrebbero essere in grado di mantenere indefinitamente un ritmo costante.

Page 50: Sviluppo Agile secondo l'approccio SCRUM

Il software funzionante più che la documentazione esaustiva

• Il software funzionante è il principale metro di misura di progresso

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

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

Page 51: Sviluppo Agile secondo l'approccio SCRUM

La collaborazione col cliente più che la negoziazione dei contratti

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

• Una conversazione faccia a faccia è il modo più efficiente e più efficace per comunicare con il team ed all'interno del team.

Page 52: Sviluppo Agile secondo l'approccio SCRUM

Rispondere al cambiamento più che seguire un piano

• Accogliamo i cambiamenti nei requisiti, anche a stadi avanzati dello sviluppo. I processi agili sfruttano il cambiamento a favore del vantaggio competitivo del cliente.

• A intervalli regolari il team riflette su come diventare più efficace, dopodiché regola e adatta il proprio comportamento di conseguenza.

Page 53: Sviluppo Agile secondo l'approccio SCRUM

Framework Agili !

Kanban, SCRUM, XP

Page 54: Sviluppo Agile secondo l'approccio SCRUM

SCRUM

Page 55: Sviluppo Agile secondo l'approccio SCRUM

• Lo sviluppo avviene in cicli di lavoro chiamati Sprint della durata di 1-4 settimane

• Ogni fase è time-boxed e non allungabile

• Il Cliente decide le features, il team la fattibilità

• Il team si impegna per consegnare un sottoinsieme di features, per entro il termine dello Sprint

• Ad ogni Sprint, il team revisiona il lavoro con il cliente, iterando

Page 56: Sviluppo Agile secondo l'approccio SCRUM

Product owner

Team

ScrumMaster

Page 57: Sviluppo Agile secondo l'approccio SCRUM

• È "Il Cliente", o chi per esso, responsabile delle scelte

strategiche e funzionali del prodotto

• Mantiene una lista di features da implementare

ordinata per priorità

• Può giocare su qualità esterna e scope delle features

per massimizzare il ROI (Return-On-Investment)

• Dev'essere presente e disponibile durante tutto lo

Sprint

Product Owner

Page 58: Sviluppo Agile secondo l'approccio SCRUM

• È responsabile dell'implementazione del prodotto ai

massimi livelli di qualità interna

• Non esistono team managers o project managers interni

• Ha un alto grado di autonomia e si auto-organizza al suo

interno

• Ogni membro del team decide quale feature vuole

implementare tra quelle concordate con il Product

Owner

• Ogni membro lavora su un solo progetto alla volta

Team

Page 59: Sviluppo Agile secondo l'approccio SCRUM

• È “L’Arbitro", il responsabile di un'efficace esecuzione

delle varie fasi del processo Scrum

• Lavora affinché i principi Scrum vengano compresi e

applicati

• Controlla che ogni fase sia stata portata a termine

con dovizia dai responsabili

• L'efficacia dello Scrum sta nella capacità di reattività e

di autorevolezza dello ScrumMaster

Scrum Master

Page 60: Sviluppo Agile secondo l'approccio SCRUM
Page 61: Sviluppo Agile secondo l'approccio SCRUM

icelog backlog current in progress done deployed accepted

D

a typical week of work

A

B

C

E

F

result of brief

Story: User purchases a premium plan!

As a Registered User, I want to purchase a premium plan So that I can access advanced features !

Scenario: Successful payout!Given I’m signed in When I access the pricing page And I select one of the premium plans And I proceed to the checkout Then the premium plan should be enabled And I should receive a confirmation email

Page 62: Sviluppo Agile secondo l'approccio SCRUM

demo time: the stakeholder tests the

stories and approves/rejects them

icebox backlog current in progress done deployed accepted

D

A

B

C

E

F

A1

A2

the stakeholder

prioritizes the stories

the team estimates and accepts a

set of stories

the team works on the stories

following the given priorities

Page 63: Sviluppo Agile secondo l'approccio SCRUM
Page 64: Sviluppo Agile secondo l'approccio SCRUM

agile agency?

Page 65: Sviluppo Agile secondo l'approccio SCRUM

difficoltà di applicazione

team piccoli, framework sproporzionato !

focus 100%?! !

non solo programmazione: ci sono task, tipo la grafica, che si adattano meno al framework

Page 66: Sviluppo Agile secondo l'approccio SCRUM

A intervalli regolari il team riflette su come diventare più efficace, dopodiché regola e adatta

il proprio comportamento di conseguenza.

“Gli individui e le interazioni più che i processi e gli strumenti”

team piccoli, framework sproporzionato

Page 67: Sviluppo Agile secondo l'approccio SCRUM

focus 100%?!

32h settimana

garantite

Page 68: Sviluppo Agile secondo l'approccio SCRUM

non solo programmazione: ci sono task, tipo la grafica, che si

adattano meno al framework

brief mood

wireframe mockup

Page 69: Sviluppo Agile secondo l'approccio SCRUM

Riunione di inizio progetto in cui il product

owner racconta e discute la visione del progetto

a tutto il team, sia grafici che sviluppatori i quali

si rendono parte attiva del progetto fin da subito

brief

Page 70: Sviluppo Agile secondo l'approccio SCRUM

È il concept design, un passo oltre il “colpo

d’occhio”. Definisce, senza tenere conto del

contenuto ma solo della vision, lo stile del

progetto in termini di font, icone, tipo di immagini

mood

Page 71: Sviluppo Agile secondo l'approccio SCRUM

style tiles

Page 72: Sviluppo Agile secondo l'approccio SCRUM

È la rappresentazione dello scheletro di una app, una griglia

che non tiene conto della grafica/mood bensì del contenuto.

Il WF è creato con l’intento di disporre gli oggetti al posto

giusto per il raggiungimento di un determinato obiettivo

wireframes

Page 73: Sviluppo Agile secondo l'approccio SCRUM

wireframes

Page 74: Sviluppo Agile secondo l'approccio SCRUM

come vendere l’agile?

Page 75: Sviluppo Agile secondo l'approccio SCRUM

preventivi?!

Page 76: Sviluppo Agile secondo l'approccio SCRUM

dal punto di vista del cliente, il

momento di maggiore

incertezza è il momento

peggiore per definire

specifiche (incerte) e accettare

clausole vincolanti.

Page 77: Sviluppo Agile secondo l'approccio SCRUM

un preventivo significa

!

• specifiche vincolate

• frizioni

Page 78: Sviluppo Agile secondo l'approccio SCRUM

{we win

{

you win

what we think our quotation

preventivo significa

che qualcuno ci rimette

working time

idea

qualità

Page 79: Sviluppo Agile secondo l'approccio SCRUM

• “formazione” del cliente • definizione di un budget • una stima non-vincolante • pagamenti regolari • contratti “settimanali”, senza lock-

in • garanzia di qualità interna

come vendere l’agile?

Page 80: Sviluppo Agile secondo l'approccio SCRUM

dubbi / domande?! !

!

!

@teamcantiere