1 / 18

Agile contracts: come fare? Alex Ruggeri Italian Agile Day Bologna – 23 novembre 2007

Agile contracts: come fare? Alex Ruggeri Italian Agile Day Bologna – 23 novembre 2007. Le 4 variabili. Costo (cost) Tempo (time) Qualità (quality) Obiettivo (scope).

aminia
Download Presentation

Agile contracts: come fare? Alex Ruggeri Italian Agile Day Bologna – 23 novembre 2007

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Agile contracts: come fare?Alex RuggeriItalian Agile DayBologna – 23 novembre 2007 Progetto “Pronto Pizza”

  2. Le 4 variabili • Costo (cost) • Tempo (time) • Qualità (quality) • Obiettivo (scope) “... For software development, scope is the most important variable to be aware of... One of the most powerful decisions in project management is eliminating scope. If you actively manage scope, you can provide managers and customers with control over cost, quality, and time.” “What if we see the ‘softness’ of requirements as an opportunity, not a problem?” Kent Beck Agile contracts: come fare?

  3. Gli interessi in gioco DEL CLIENTE • Qualità del software • Rispetto dei tempi previsti • Poter cambiare rapidamente • Spendere il giusto (poco) • Non dipendere da un fornitore • Risorse proprie coinvolte • Codici sorgenti • Documentazione • Sviluppo in-house • … Agile contracts: come fare?

  4. Gli interessi in gioco • DEL FORNITORE “AGILE” • Qualità del software • Disporre del tempo necessario • Disponibilità al cambiamento • Guadagnareilgiusto (molto) • Fidelizzazione del cliente • OK, ma… • Devopropriodarteli? • Mmm… chepalle! • Preferiscoilmioufficio • !?! DEL CLIENTE • Qualità del software • Rispetto dei tempi previsti • Poter cambiare rapidamente • Spendere il giusto (poco) • Non dipendere da un fornitore • Risorse proprie coinvolte • Codici sorgenti • Documentazione • Sviluppo in-house • … Il contratto ideale deve essere sintesi e mediazione di tutti gli interessi in gioco oppure... Agile contracts: come fare?

  5. Creare un rapporto di fiducia “...one of the main points made was that a contract cannot substitute for a trust relationship.  This is clearly stated as part of the Agile Manifesto as customer collaboration over contract negotiation.” Ian Shimmings Un rapporto di fiducia però si costruisce insieme nel tempo, quindi abbiamo sempre bisogno di un contratto. Agile contracts: come fare?

  6. I Tipi di contratti • Fixed Price • Time-and-Materials • Profit Sharing • Progressive • Target Cost • PS 2000 (Norway) Fonte: Mary Poppendieck Agile contracts: come fare?

  7. Fixed Price • Si prefigge di raggiungere obiettivi definiti (o presunti tali) • Blocca il progetto su quanto concordato • Di solito il cliente delega la gestione completa del progetto tipo “chiavi in mano” • Il fornitore si assume il rischio maggiore • Di solito non favorisce il miglior prezzo • il fornitore esperto aumenta il costo per ammoritizzare il rischio • le richieste di modifica costano molto di più • Di solito non è la soluzione a minor rischio • La selezione favorisce il fornitore più “ottimista” (disperato?) e quindi aumenta il rischio che il progetto fallisca • Si adatta molto bene alla logica del budget • Il fornitore bravo, assumendosi il rischio, può guadagnare di più in caso contrario può farsi molto male Agile contracts: come fare?

  8. Time and Materials • Di solito si utilizza quando gli obiettivi non sono ben definiti • Il progetto può cambiare direzione senza aggravi di costi • Di solito il cliente conduce in prima persona il progetto, il fornitore è deresponsabilizzato • Il cliente si assume il rischio maggiore • Di solito i costi sono molto più alti • il fornitore è poco incentivato a raggiungere gli obiettivi • Il cliente deve essere attento affinchè il fornitore non se ne approfitti • Ci sono problemi di budget nel caso in cui si “sfora” • Il fornitore ha un guadagno più basso ma sicuro Agile contracts: come fare?

  9. Profit Sharing • Cliente e fornitore condividono i profitti attraverso una “joint venture” • Il cliente ha già un suo business certo, necessita di un sistema software ed offre parte dei suoi profitti per poterlo realizzare • Il cliente possiede le competenze del “dominio” e si offre per spingere il nuovo prodotto sul mercato • Pro • Entrambi le parti crescono (o non crescono) insieme • Tutte le persone coinvolte nel progetto sono motivate per far bene • Contro • La propietà intellettuale potrebbe essere un problema • Il cliente non è sufficentemente aggressivo nello spingere il prodotto • La qualità del prodotto potrebbe essere scarsa Affascinante, molto agile ma molto rischioso! Agile contracts: come fare?

  10. Progressive • Inizia con un accordo tra le parti che delinea gli obiettivi generali (Umbrella or Framework Contract) • Il lavoro viene suddiviso in fasi • Si cerca di tenere le fasi piccole per contenere il rischio • Ogni fase prevede un contratto • Spesso il contratto è di tipo Fixed Price • Gli obiettivi (story) previsti in una fase sono negoziabili • A parità di valore il cliente può decidere di dare priorità ad una story piuttosto che ad un’altra anche durante l’esecuzione di una fase • Il fornitore accetta il rischio che al termine di una fase il progetto venga cancellato • E’ compatibile con la logica del budget Permette di far crescere la reciproca fiducia, quindi è agile! Agile contracts: come fare?

  11. TSE: un caso concreto • E’ un sistema per la gestione ed il governo dei temi che riguardano l’Ambiente, la Sicurezza e l’Igiene del lavoro secondo le normative ISO 14.000, OHSAS 18.000 e la politica aziendale • Il cliente è un leader mondiale nella produzione dei tubi d’acciaio, 23.500 dipendenti (maggio 2007), quotata nelle borse di New York, Milano, Buenos Aires e Città del Messico. • E’ un progetto “Enterprise” multi-lingua e multi-sede: Italia, Argentina, Brasile, Messico, Canada, Romania. Viene utilizzato quotidianamente da 2.500 utenti in tutto il mondo. • E’ un progetto “custom” iniziato nel giugno 2002 e tutt’ora in espansione. Agile contracts: come fare?

  12. TSE: due contratti • Il progetto è iniziato con un contratto Progressive/FixedPrice • Siamo in una situazione di reciproca fiducia • Attualmente sono in uso due contratti diversi: • Progressive/FixedPrice (per i nuovi sviluppi) • FixedPrice/Time&Materials (per il contratto di assistenza, garanzia e manutenzione evolutiva) Entrambi i contratti sono un MIX degli schemi visti Agile contracts: come fare?

  13. TSE: due contratti • Tutte le story richieste che introducono nuove funzionalità o aprono nuovi scenari devono essere coperte da un contratto “nuovi sviluppi” • Tutte le modifiche a funzionalità già presenti sono coperte dal contratto di manutenzione purchè di breve entità (max. 20 pomodori – 2gg) • Esempio: • Creare un nuovo report degli infortuni raggruppati per stabilimento, con filtro xy, ad albero (nuovi sviluppi) • Aggiungere la colonna “prognosi” al report “infortuni storico” (manutenzione) Agile contracts: come fare?

  14. TSE: Garanzia, assistenza e manutenzione evolutiva • Un solo contratto per 3 diversi servizi • Durata annuale • Prezzo fisso • Garanzia e assistenza sono sempre disponibili (secondo le condizioni generali) • Manutenzione evolutiva viene erogata secondo un Time & Materials con un tetto massimo di ore prestabilite (monte ore) • Permette di reagire velocemente alle richieste di cambiamento • Si adatta molto bene alla logica del budget • Per il cliente è una sorta di “polizza assicurativa” • Per il fornitore è un guadagno a basso rendimento ma sicuro Agile contracts: come fare?

  15. TSE: ogni story è classificata • Quando si scrive una story oltre alla sua descrizione ed alla stima attribuiamo anche una categoria che determina il tipo di contratto: • New Feature > Nuovi sviluppi • Enhancement > Nuovi sviluppi (> 2gg) Manutenzione (< 2gg) • Defect > Garanzia • Error > Garanzia Agile contracts: come fare?

  16. Conclusioni • Non esiste un modello di contratto che possa funzionare in tutte le situazioni • Ogni progetto richiede il giusto MIX che solo il cliente e il fornitore coinvolti possono trovare • Per far partire un nuovo progetto agile il Progressive è forse lo schema di riferimento migliore • Nulla deve essere scolpito nella roccia • Se l’esperienza di una forma contrattuale non funziona bisogna provare nuove soluzioni (agile docet) • Bisogna tendere ad una partnerships basata sulla reciproca fiducia Agile contracts: come fare?

  17. e-references • Mary Poppendieckhttp://www.poppendieck.com/pdfs/AgileContracts.pdf • Michael Hirschhttp://www.poppendieck.com/pdfs/Michael%20Hirsch.pdf • Ian Shimmingshttp://blogs.conchango.com/ianshimmings/archive/2004/11/23/317.aspx Agile contracts: come fare?

  18. Riferimenti Softcare s.r.l. Via G. Bosis, 11 24020 Scanzorosciate, BG, Italia www.softcare.it Alex Ruggeri - alexr@softcare.it Agile contracts: come fare?

More Related