Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

73
PERCHÉ A FARE I PREVENTIVI FACCIAMO COSÌ SCHIFO? CRISTIANO RASTELLI

description

L'idea del talk è quella di mostrare come spesso in fase di preventivazione di un lavoro si tenda a sottovalutare tutta una serie di aspetti e attività apparentemente secondari, ma in realtà con un impatto notevole sull'effort. Scopo del talk è quello di portare all'attenzione degli sviluppatori come questo "difetto" nelle proprie stime abbia impatto non solo sulla remuneratività del proprio lavoro, ma soprattutto sulla qualità complessiva del prodotto consegnato al cliente.L'idea del talk è quella di mostrare come spesso in fase di preventivazione di un lavoro si tenda a sottovalutare tutta una serie di aspetti e attività apparentemente secondari, ma in realtà con un impatto notevole sull'effort. Scopo del talk è quello di portare all'attenzione degli sviluppatori come questo "difetto" nelle proprie stime abbia impatto non solo sulla remuneratività del proprio lavoro, ma soprattutto sulla qualità complessiva del prodotto consegnato al cliente.

Transcript of Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Page 1: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

PERCHÉ A FARE I PREVENTIVIFACCIAMO COSÌ SCHIFO? CRISTIANO RASTELLI

Page 2: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Table of contents

Flying to the moon

Una piccola storia

Il nervo scoperto

Coders are special

My experience

Let’s play “quote”

Costi nascosti

Side-effects

Alcuni riferimenti

Conclusioni

Page 3: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

CAVEAT

Page 4: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Le dimensioni contano

Page 5: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Ci sono altri mondi, là fuori!

Page 6: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

FLYING TO THE MOON

Page 7: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Flying to the moon

I progetti “Mercury” e “Gemini”, a cui si riferiscono queste immagini, sono state due serie di missioni spaziali, condotte dalla NASA con lo scopo di acquisire il know-how e le competenze necessarie per portare, in poco meno di dieci anni, il primo uomo sulla Luna.

Hanno ottenuto risultati mai raggiunti prima d’allora:

primo equipaggio in orbita attorno alla terra

prima “camminata” di un astronauta nello spazio

primo rendez-vous e attracco fra due veicoli spaziali

Page 8: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Flying to the moon

“I believe that this nation should commit itself to achieving the goal, before this decade is out, of landing a man on the moon and returning him safely to the earth”

President John F. Kennedy

25 maggio 1961

Page 9: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Flying to the moon

E’ stato il maggior sforzo economico, tecnologico e scientifico mai sostenuto dagli USA, assieme al Progetto Manhattan e alla costruzione dello stretto di Panama.

Page 10: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Flying to the moon

E’ stato il maggior sforzo economico, tecnologico e scientifico mai sostenuto dagli USA, assieme al Progetto Manhattan e alla costruzione dello stretto di Panama.

Stima iniziale Stima J. Webb Stima finale Costo finale0

5

10

15

20

25

30

Costo del Programma Apollo (miliardi di dollari)

Page 11: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Flying to the moon

E’ stato il maggior sforzo economico, tecnologico e scientifico mai sostenuto dagli USA, assieme al Progetto Manhattan e alla costruzione dello stretto di Panama.

Stima iniziale Stima J. Webb Stima finale Costo finale0

5

10

15

20

25

30

Costo del Programma Apollo (miliardi di dollari)

Page 12: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Flying to the moon

E’ stato il maggior sforzo economico, tecnologico e scientifico mai sostenuto dagli USA, assieme al Progetto Manhattan e alla costruzione dello stretto di Panama.

Stima iniziale Stima J. Webb Stima finale Costo finale0

5

10

15

20

25

30

Costo del Programma Apollo (miliardi di dollari)

Page 13: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Flying to the moon

E’ stato il maggior sforzo economico, tecnologico e scientifico mai sostenuto dagli USA, assieme al Progetto Manhattan e alla costruzione dello stretto di Panama.

Stima iniziale Stima J. Webb Stima finale Costo finale0

5

10

15

20

25

30

Costo del Programma Apollo (miliardi di dollari)

Page 14: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Flying to the moon

E’ stato il maggior sforzo economico, tecnologico e scientifico mai sostenuto dagli USA, assieme al Progetto Manhattan e alla costruzione dello stretto di Panama.

Stima iniziale Stima J. Webb Stima finale Costo finale0

5

10

15

20

25

30

Costo del Programma Apollo (miliardi di dollari)

Page 15: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Preventivarenon si può “andare corti”

budget stanziati dal committente

Prevedere *Occorre sapere valutare e analizzare:

ogni minimo dettaglio (dalla vite allo stadio propulsivo)

ogni possibile/probabile futura necessità

tutti i possibili casi, non solo il “best-case scenario”.

* Non significa essere degli indovini o fare oracoli sul futuro...

Page 16: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Flying to the moon

Buzz Aldrin20 luglio 1969

Page 17: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

UNA PICCOLA

STORIA

Page 18: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Cirpo

Page 19: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

“Ma sì, ma quanto vuoi metterci a...”

Cirpo

Page 20: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Una piccola storia / 1

Una sera, mentre stavamo facendo una conference-call via Skype per l’organizzazione della Node.js Conference, si stava parlando di totem da piazzare agli ingressi della sala.

Io sostenevo che meno cose c’erano da fare, meglio era (c’erano altre mille cose da fare, ricordare, organizzare).

A un certo punto Cirpo se ne è uscito con questa frase: “Ma sì, ma quanto vuoi metterci? Tanto le fa Riccardo”.

E qui mi si è accesa una lampadina: stava completamente tralasciando tutti gli aspetti collaterali dell’attività che non fossero la semplice, mera esecuzione materiale.

Page 21: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Una piccola storia / 2

E mi sono fatto questa domanda: ma perché i DEV in particolare – ma gli esseri umani in generale – sono così pessimi a fare stime e preventivi?

Forse, ho pensato, c’è un motivo antropologico, qualcosa che condiziona il nostro cervello e lo induce a sottovalutare sistematicamente gli sforzi (gli “effort”) per permettere agli uomini di osare di più, di fare cose che normalmente non farebbero e “selezionare la specie” più intraprendente?

In ogni caso, mi sono proposto che avrei tenuto un talk su questo tema, in cui fare “pelo e contropelo” ai DEV.

Perciò, eccomi qui!

Page 22: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

IL NERVO SCOPERTO

Page 23: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Il nervo scoperto

Questa sessione, quando è stata proposta la prima volta alla UGIALT.net Conference, è stata in assoluto la più votata dagli utenti, fra quelle in lizza per l’ammissione.

Vi faccio notare che questo non è un talk tecnico, come gli altri. Cosa vuol dire secondo voi?

Evidentemente è un’esigenza, un problema, una necessità, c’è un “sentire comune” che in fondo non siamo poi tanto bravi a fare preventivi*.

Insomma avevo toccato il classico “nervo scoperto” (e francamente, non immaginavo fosse così scoperto!).

* Non credo di essermi sbagliato poi molto nel dare il titolo a questo talk, no?

Page 24: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

CODERSARE

SPECIAL

Page 25: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

You’re not that special, devs!

Page 26: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Coders are not special!

Da che mondo e mondo pittori, artisti, artigiani, architetti, ingegneri, costruttori, tutti quanti hanno dovuto produrre progetti e stime di costo ex-ante.

Tutti coloro che devono “creare” qualcosa che prima non esisteva, che disegnano e progettano soluzioni su misura, che producono e realizzano prodotti “non standardizzati”.

In molti casi (la buona parte?) hanno sbagliato stima.

Noi non facciamo eccezione.

Il punto qui però è: come fare un preventivo che abbia il minor margine di errore possibile?

Page 27: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Gli strumenti giusti

Page 28: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Nessuno ti può insegnare

La verità è che fare preventivi è come educare i figli: puoi trovare manuali ovunque, puoi chiedere consigli a chiunque ma alla fine qualunque “metodo” deciderai di adottare ti sembrerà comunque imperfetto, troppo “astratto”, che non tiene conto del tuo caso particolare/speciale.

Perché, come per i figli, fare un preventivo ti tocca da vicino, ha a che fare con il tuo “vissuto quotidiano”.

Con le tue esperienze pregresse.Con il tuo senso di auto-stima.Con l’amore per il tuo lavoro.Con il tuo conto in banca.

Page 29: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

MY EXPERIENCE

Page 30: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

My experience

Quindi non son qui per darvi nessun tipo di “lezione”.

Tantomeno per esporvi teorie su come elaborare il preventivo perfetto e infallibile.

Sono qui per raccontarvi lamia esperienza.

Page 31: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

3... 2... 1... Via!

Page 32: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

[ slide mancanti ]

Page 33: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Cosa ho imparato

Page 34: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Cosa ho imparato

Separare mentalmente (e fisicamente) il ragionamento fra le attività da realizzare (quindi il progetto) e il tempo che occorre a realizzarle (quindi il preventivo)In questo modo si perde meno di vista l’obiettivo del preventivo, che è quello di fornire una stima/valutazione economica al proprio cliente dei costi di ideazione/progettazione/realizzazione di una determinata attività.

Ragionare in termini di giorno-uomo ideale (di 8 ore)*(poi magari ce ne impieghi 12, ma quello è comunque il tuo parametro di riferimento temporale, la tua “unità di misura” di base)

Tenere sempre a bada la vocina che è in noi.Quella che ormai riconosciamo, quella che ci fa dire “ma sì, ma cosa vuoi metterci a” oppure “non sarà caro? e se poi per il cliente è troppo?” e alla fine ci porta a sottostimare gli effort di un progetto, specie se complesso.

Page 35: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Cosa ho imparato

Il cliente guarda la cifra in basso a destra.Non c’è nulla da fare, è un dato di fatto oggettivo. Come il sole che sorge e tramonta. Occorre farsene una ragione e agire di conseguenza.

Decidere (a seconda del cliente) cosa mostrare e cosa invece omettere (o non specificare affatto)Ad esempio la suddivisione del progetto in sotto-attività oppure il numero di giornate previste per ogni singola voce e/o il costo a giornata.

Ci sono tipi diversi di clienti.A noi il compito di capire chi è l’interlocutore che abbiamo di fronte, cosa ci sta chiedendo, che tipo di risposta dare, in che forma comunicargli la nostra proposta progettuale/economica. A noi il compito di decidere se e quanto del nostro tempo dedicare (ovvero investire) nella redazione del preventivo.

Page 36: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

LET’S PLAY “QUOTE”

Page 37: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Let’s play “quote”

Page 38: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Let’s play “quote”

Decidere assieme allo staff se fare le magliette per la conferenza

• Fare email allo staff + polling/doodle

Chiedere se qualcuno ha conoscenza/esperienza di stampatori di t-shirt

Chiedere preventivo a 2 o 3 diversi stampatori di magliette

• Fare email in cui si spiega cosa serve, come saranno le magliette, ecc.

Confrontare fra loro i tre preventivi ricevuti

• Cercare su internet il prezzo medio di una maglietta, per confronto

• Decidere assieme agli altri membri dello staff quale scegliere

Preparare le bozze grafiche delle magliette (con diverse soluzioni)

• Cercare su internet i colori disponibili per le magliette

• Scegliere il colore e ideare la grafica da far stampare sulle magliette

• Realizzare i file grafici (vettoriali e/o bitmap alta risoluzione)

Page 39: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Let’s play “quote”

Decidere la grafica finale delle magliette

• Sottoporre via email le soluzioni ideate/create ai membri dello staff

• Leggere risposte/commenti e rispondere a propria volta

• Modificare la bozza sulla base delle indicazioni ricevute

• Scegliere soluzione definitiva assieme allo staff (con polling/doodle)

Raccogliere le prenotazioni per le magliette

• Creare form online con Google Docs

• Creare pagina web per embedding e raccolta dati “clienti”

Decidere quante magliette far stampare

• Estrarre da foglio di calcolo i numeri aggregati per sesso, taglia, colore

• Calcolare numero magliette aggiuntive da vendere il giorno della conf

Ordinare le magliette allo stampatore

• Mandare numeri e grafica finale allo stampatore per quotazione finale

Page 40: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Let’s play “quote”

Preparare i file grafici definitivi per lo stampatore (in diversi formati)

• Inviare email allo stampatore con i dettagli tecnici dei file allegati

Passare dallo stampatore per accordarsi, firmare l’ordine e dare l’acconto

• Passare da chi ha la cassa per prendere i soldi da dare allo stampatore

Chiamare stampatore per avere conferma della data di consegna

Chiamare stampatore per accordarsi sul ritiro delle magliette

Passare a ritirare le magliette dallo stampatore

• Verificare la stampa delle magliette, pagare e caricare gli scatoloni

Consegnare le magliette a chi le “venderà” il giorno della conferenza

• Preparare foglio excel con la lista delle prenotazioni effettuate

• Portare scatoloni a casa degli incaricati, per permettergli di suddividere le magliette per tipo, colore, taglia, ecc.

Page 41: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

COSTI NASCOSTI

Page 42: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Costi nascosti

Incontri preliminariPresentazione, raccolta dei requisiti, redazione del preventivo, illustrazione dell’offerta, trattative per definizione budget finale.

Attività kickoff Pianificazione delle attività, boostrap del progetto, attribuzione dei task.

Riunioni in corso d’operaIncontri per richieste di modifiche, attività integrative, raccolta feedback, avanzamento lavori, consegna del prodotto, eventuale formazione.

Gestione del progettoMantenimento delle relazioni con il cliente ed eventuali suoi fornitori di servizi, coordinamento delle attività dei propri collaboratori, redazione documenti di progetto, lettura/scrittura delle email.

Page 43: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Costi nascosti

Attività non previsteRichieste e/o modifiche e/o integrazioni in corso d’opera.Variazione degli obiettivi di progetto al mutare degli interlocutori.

Attività sottovalutate“Beh, ma quanto vuoi metterci a...”. Tempi di acquisizione di nuove competenze.Curve di apprendimento più lunghe del previsto.

Attività collaterali/a conclusione del progettoRegistrazione nei motori di ricerca, attivazione statistiche, creazione di account e configurazione profili su social network e servizi online.

Varie ed eventualiTempi di trasferta, anticipi economici (acquisto servizi/prodotti per conto del cliente, iva, tasse, ecc.), solleciti dei pagamenti, recupero crediti.

Page 44: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

SIDE-EFFECTS

Page 45: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Side-effects

Page 46: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Side-effects

Ritardo nella consegna

Page 47: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Side-effects

Ritardo nella consegna

• (e nell’avvio dei progetti successivi)

Page 48: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Side-effects

Ritardo nella consegna

• (e nell’avvio dei progetti successivi)

Credibilità personale

Page 49: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Side-effects

Ritardo nella consegna

• (e nell’avvio dei progetti successivi)

Credibilità personale

Professionalità dimostrata

Page 50: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Side-effects

Ritardo nella consegna

• (e nell’avvio dei progetti successivi)

Credibilità personale

Professionalità dimostrata

Remuneratività del lavoro

Page 51: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Side-effects

Ritardo nella consegna

• (e nell’avvio dei progetti successivi)

Credibilità personale

Professionalità dimostrata

Remuneratività del lavoro

Qualità complessiva

Page 52: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

L’effetto più importante

Sbagliare l’effort

di un preventivo

ha impatto diretto

sulla qualità

del lavoro ultimato.

Page 53: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

ALCUNI RIFERIMENTI

Page 54: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

“bias cognitivo”

Page 55: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Planning fallacy

“Tendenza delle persone/organizzazioni a sotto-stimare il tempo che impiegano ad eseguire un determinato task, anche se hanno già avuto esperienze pregresse di ritardo per task simili”. (fonte: wikipedia, as usual)

Page 56: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Un effetto di “blind spot”

Sottostimadi tempo, costie rischi

Sovrastimadei benefici

Page 57: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Possibili spiegazioni

Wishful-thinkingFocus sul best-case scenario: *

* “Massì, ma quanto vuoi metterci a...”

No-BreakdownMancanza di analisi puntuale:

1

2

Page 58: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

E’una questione di dettagli

http://www.quora.com/Engineering-Management/Why-are-software-development-task-estimations-regularly-off-by-a-factor-of-2-3

Page 59: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

E’una questione di dettagli

http://www.quora.com/Engineering-Management/Why-are-software-development-task-estimations-regularly-off-by-a-factor-of-2-3

Page 60: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

E’una questione di dettagli

http://www.quora.com/Engineering-Management/Why-are-software-development-task-estimations-regularly-off-by-a-factor-of-2-3

Page 61: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

“breakdown”

Page 62: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

E’ una metodologia di project-management, introdotta dalla difesa americana e poi adottata e sviluppata proprio dalla NASA per la gestione dei progetti Mercury e Gemini:

Work Breakdown Structure

Page 63: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

E’ una metodologia di project-management, introdotta dalla difesa americana e poi adottata e sviluppata proprio dalla NASA per la gestione dei progetti Mercury e Gemini:

Work Breakdown Structure

prodotto (“deliverable”), non attività cosa, non come o in quanto!

Page 64: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

E’ una metodologia di project-management, introdotta dalla difesa americana e poi adottata e sviluppata proprio dalla NASA per la gestione dei progetti Mercury e Gemini:

Work Breakdown Structure

prodotto (“deliverable”), non attività cosa, non come o in quanto!

decomposizione del problema albero gerarchico

Page 65: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

E’ una metodologia di project-management, introdotta dalla difesa americana e poi adottata e sviluppata proprio dalla NASA per la gestione dei progetti Mercury e Gemini:

Work Breakdown Structure

prodotto (“deliverable”), non attività cosa, non come o in quanto!

decomposizione del problema albero gerarchico

singoli elementi discreti migliore stima di tempi e costi

Page 66: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

E’ una metodologia di project-management, introdotta dalla difesa americana e poi adottata e sviluppata proprio dalla NASA per la gestione dei progetti Mercury e Gemini:

Work Breakdown Structure

prodotto (“deliverable”), non attività cosa, non come o in quanto!

decomposizione del problema albero gerarchico

singoli elementi discreti migliore stima di tempi e costi

misurabilità

Page 67: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Work Breakdown Structure

Page 68: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

“cost overrun”

Page 69: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Non siamo soli...

Sydney Opera House

Canale di Suez

Concorde

Canale sotto la Manica

Eurofighter

Denver International Airport

Millennium Dome

Telescopio Hubble

and more...

Page 70: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

CONCLUSIONI

Page 71: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Consigli

1. Prevedere. Non solo preventivare.

2. Numeri. Non solo funzionalità.

3. Non sottovalutate gli effort.

4. Non mettetevi nei panni del cliente, ma nei vostri!

5. E’ un processo “trial & error”, rassegnatevi.

6. Non perdete mai di vista la qualità finale del prodotto.

7. Piuttosto meno cose, se dovete stare in un budget.

Page 72: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

CrSIo RaTl

@areaweb

Grazie!

www.didoo.net

Page 73: Perché a fare i preventivi facciamo così schifo? @BetterSoftware 2102

Credits

http://www.nasa.gov/ http://tothemoon.ser.asu.edu