Harry Barendse
IPMA CCPM interessegroep 6 juni 2013 CCPM en Agile…
+
?
= Harry Barendse
Aannames
N-E E-N Bekendheid met CCPM en Scrum Nederlands en Engels door elkaar gebruiken niet bezwaarlijk
Aannames
Niet zwart wit denken maar open staan voor slim combineren van gereedschappen
Inhoud
1. 2. 3. 4. 5. 6.
Wat is Agile? Agile ontwikkelmethoden Fit 4 Scrum? ToC en Scrum CCPM en Scrum Reliable Scrum
Inhoud
1. 2. 3. 4. 5. 6.
Wat is Agile? Agile ontwikkelmethoden Fit 4 Scrum? ToC en Scrum CCPM en Scrum Reliable Scrum
1. Wat is Agile? Charles Darwin about the struggle for life: “I have called this principle, by which each slight variation, if useful, is preserved, by the term Natural Selection, in order to mark its relation to man's power of selection.” Herbert Spencer: “Survival of the fittest..”
1. Wat is Agile? Agile Behendig, lenig, veranderlijk
Business Agility The ability of a business to adapt rapidly and cost efficiently in response to changes in the business environment..
Agile manufacturing A manufacturing organization that has created the processes, tools, and training to enable it to respond quickly to customer needs and market changes while still controlling costs and quality. Agile manufacturing is often seen as the next step after lean manufacturing.
Agile software ontwikkeling Ontwikkelmethode voor situaties met veranderlijke eisen en/of hoge onzekerheid t.a.v. technologie.
1. Wat is Agile?
Overgenomen uit Scrum Reference Card (Michael James) 8 Extensively modified version of a graph in Strategic Management and Organizational Dynamics, Stacey, 1993, referenced in Agile Software Development with Scrum, Schwaber/Beedle, 2001. • 9 Quote is from Process Dynamics, Modeling, and Control, Ogunnaike, Oxford University Press, 1992.Press, 1992.
1. Wat is Agile? In projecten omgaan met veranderlijke eisen en/of hoge onzekerheid t.a.v. technologie : ► ► ►
► ►
Risico Management Proof of Concept, prototype Toenemende detaillering in de planning op basis van voortschrijdend inzicht Werken in iteraties, timebuckets, stages (Prince) Agile software ontwikkelmethode
Als we het hebben over Agile bedoelen we tegenwoordig meestal softwareontwikkeling volgens Scrum
Inhoud
1. 2. 3. 4. 5. 6.
Wat is Agile? Agile ontwikkelmethoden Fit 4 Scrum? ToC en Scrum CCPM en Scrum Reliable Scrum
2. Agile ontwikkelmethoden Agile achtige benaderingen bestaan al sinds er software ontwikkeld wordt Enkele Agile-ontwikkelmethoden: ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦
Extreme Programming (XP) Scrum Agile Modeling Adaptive Software Development (ASD) Crystal Clear and Other Crystal Methodologies Dynamic Systems Development Method (DSDM) Feature Driven Development (FDD) Lean software development Agile Unified Process (AUP) Continuous integration
Feb 2001: Agile Manifesto: ♦ ♦
Uitgangspunten Principes
What’s the fittest ??…
2. Agile ontwikkelmethoden Onderzoek Principles behind the Agile Manifesto: 1. Satisfy the customer 2. Welcome changing requirements 3. Deliver working software frequently 4. Motivate individuals 5. Interact frequently with stakeholders 6. Communicate face to face 7. Measure by working software 8. Maintain constant pace 9. Sustain technical excellence and good design 10. Keep it simple 11. Empower self-organizing teams 12. Reflect and adjust continuously Agile software ontwikkelmethoden: ► Lean SW Development ► X-treme programming ► Scrum ► Feature Driven Development
2. Agile ontwikkelmethoden
2. Agile ontwikkelmethoden Lessen (Scrum) Interact frequently with stakeholders Customers, product managers, sponsors, and others involved in the project. Advies: Implementeer aanvullende maatregelen om de interactie met alle stakeholders te vergroten Progress measurement by working software Deployed in a production environment. Advies: Streef naar daadwerkelijke produktiegang na iedere sprint; pas dan is de voortgang (throughput) daar Streef vervolgens naar geleidelijke verkorting sprintduur
2. Agile ontwikkelmethoden Kritieke Succesfactoren 1. De cultuur van de organisatie moet open staan voor discussie en onderhandeling 2. Mensen moeten vertrouwd worden 3. Minder maar competentere mensen 4. Organisaties moeten de beslissingen accepteren die het ontwikkelteam ism de businessvertegenwoordiger neemt 5. Organisaties moeten een omgeving hebben waarin snelle communicatie tussen teamleden mogelijk is Cohen, Lindvall & Costa: “An introduction to Agile Mathods”. In: Advances in Computers (pp. 1-66). New York: Elsevier Science
Inhoud
1. 2. 3. 4. 5. 6.
Wat is Agile? Agile ontwikkelmethoden Fit 4 Scrum? ToC en Scrum CCPM en Scrum Reliable Scrum
Wat breng je in een sprint onder?
18
3. Fit 4 Scrum? Wat je in een sprint onderbrengt is situatie afhankelijk ► Teamwork: Betrokkenheid ► Teamwork: Focus ► Herhaalbaarheid ► Afhankelijkheden
Voorbeelden..
3. Fit 4 Scrum? Teamwork: Betrokkenheid Niet / nauwelijks betrokken Voorbeeld: Externe leverancier / bepaalde ketenpartijen Aanpak: ● Via afhankelijkheden in kaart brengen en “traditioneel” plannen ● workpackage definiëren / doen uitvoeren / kwaliteit verifiëren Intensief betrokken Voorbeeld: Uiteenlopende kenniswerkers / specialisten die in onderlinge samenwerking een deliverable kunnen creëren. Aanpak: In sprintteam laten samenwerken
3. Fit 4 Scrum? Teamwork: Focus Hoge mate van complexiteit / behoefte te kunnen focussen Voorbeeld: Ingewikkelde rekenroutine / validatie aanpassen Aanpak: ● Aanpassing uitschrijven ● Omstandigheden creëren waarbij de developer langdurig kan focussen Eenvoudige taken / veel interactie nodig Voorbeeld: gebruikersinterface van een webapp Aanpak: In sprintteam uitvoeren
3. Fit 4 Scrum? Herhaalbaarheid Taak komt eenmalig voor in het project Voorbeeld: Voorbereidende / afsluitende fase, productiegang, gebruikerstraining, ketenintegratietest Aanpak: “Traditioneel” plannen Taak komt herhaald voor in het project Voorbeeld: Creëer nieuwe werkende software Aanpak: Sprintteam en aard van de taak ongewijzigd herhalen. Door opdoen ervaring zal productiviteit van het sprintteam toenemen
3. Fit 4 Scrum? Afhankelijkheden Fysieke afhankelijkheid Bijvoorbeeld: Voordat ik muren kan metselen moeten eerst de fundering en de vloer gestort zijn. Aanpak: Via Product Based Planning afhankelijkheden in kaart brengen en “traditioneel” plannen Kunstmatige afhankelijkheid Bijvoorbeeld: Voordat ik kan programmeren heb ik een ontwerp nodig en dat is op zijn beurt gebaseerd op de requirements. Aanpak: In sprint met alle betrokkenen (kenniswerkers) realiseren van werkende software.
Inhoud
1. 2. 3. 4. 5. 6.
Wat is Agile? Agile ontwikkelmethoden Fit 4 Scrum? ToC en Scrum CCPM en Scrum Reliable Scrum
4. ToC & Scrum: Throughput €
X Mln
ROI = (T-OE) / I
2
1
Years 0
1
2
3
4. ToC & Scrum: Harmony Uit analyse van oorzaak gevolg relaties blijkt volgens Goldratt dat er meestal maar één kernprobleem ten grondslag ligt aan vele andere…
Het kernprobleem is meestal een (gedrags-) conflict.
Volgens Goldratt zijn er generieke oorzaken voor conflicten…
4. ToC & Scrum: Harmony
Bron: Alan Barnard, Goldratt Research
Inhoud
1. 2. 3. 4. 5. 6.
Wat is Agile? Agile ontwikkelmethoden Fit 4 Scrum? ToC en Scrum CCPM en Scrum Reliable Scrum
5. CCPM & Scrum: Safety Avoid wasting safety • Student syndrome • Parkinson’s Law • Over-engineering, gold plating ToC: Aggressive task estimates & fallback through buffer Provides early warning on overall due date
Scrum: Visibility of all activity on sprint backlog & fallback through shifting items to next sprints
5. CCPM & Scrum: Multiproject Avoid multitasking Optimise througput across entire project organisation ToC: Share scarce resources between projects to maintain maximum throughput Stagger projects to avoid multitasking at scarce (but shared!) resources
Scrum: All resources are dedicated sprintteam members No facilities to share between projects / no multiproject steering However: The multidisciplinary way of work in a sprintteam might help to actively spread a scarce skill across the entire sprintteam thus lifting te constraining nature of this skill
5. CCPM & Scrum: Scheduling
Voorwaarden: ► Productbacklog voor zover mogelijk compleet ► Storypoints voor gehele productbacklog geschat
5. CCPM & Scrum: Scheduling Feature Estimate 50% - 90%: 4 - 6 sprints
Sprint 1
Sprint 2
Sprint 3
Sprint 4
Sprint 5?
Sprint 6?
Scheduled as 4 sprints + 1d ”Final” sprint + Buffer Sprint 1
Sprint 2
Target should be: As opposed to:
Sprint 3
Sprint 4
Buffer
”Achieve the business goal asap” ”Achieve the business goal after 6 sprints”
5. CCPM & Scrum: Scheduling Start
Sprint 1
Sprint 2
Sprint 3
Sprint 4
Buffer
Regular update of remaining duration for the final sprint
Automatic reduction of remaining duration as status date progresses
After w1
Sprint 1
Sprint 2
Sprint 3
Sprint 4
Buffer
After w2
Sprint 1
Sprint 2
Sprint 3
Sprint 4
Buffer
After w3
Sprint 1
Sprint 2
Sprint 3
Sprint 4
Buffer
After w4
Sprint 1
Sprint 2
Sprint 3
Sprint 4
Buffer
After w5
Sprint 1
Sprint 2
Sprint 3
Sprint 4
Buffer
5. CCPM & Scrum: Scheduling Dependencies between Scrum teams
Team A
Sprint 1
Sprint 2
Sprint 3
Sprint 4
Func X
Buffer
You must know the Pert first.
Func Y
Team B
Sprint 1
Sprint 2
Sprint 3
Sprint 4
Buffer
Inhoud
1. 2. 3. 4. 5. 6.
Wat is Agile? Agile ontwikkelmethoden Fit 4 Scrum? ToC en Scrum CCPM en Scrum Reliable Scrum
?
6. Reliable Scrum Verschillende organisaties combineren ToC-CCPM en Scrum. Zij noemen dit Reliable Scrum. Reliable Scrum dekt behoeften af die Scrum op zichzelf onvervuld laat: ► Borging van en heldere (project-) communicatie over realiseren business goals ► Input voor resourcemanagement en portfoliomanagement in multi-project omgeving Randvoorwaarde: Behoud van Agility.
6. Reliable Scrum: Context Het juiste gereedschap voor het juiste doel; de context bepaalt de keuze van het gereedschap 1. 2. 3. 4. 5.
Software onderhoud Multiple sprint softwareontwikkeling Multiple sprintteam softwareontwikkeling Complex project met gedeelte softwareontwikkeling Visie
6. Reliable Scrum: Context 1.
Software onderhoud Toelichting: Na elke sprint kan een nieuwe release in gebruik genomen worden. Scrum: Software onderhoud leent zich uitstekend voor toepassing van Scrum as is. Reliable Scrum: N.v.t.
6. Reliable Scrum: Context 2.
Multiple sprint softwareontwikkeling Toelichting: Er zijn meerdere sprints van één sprintteam nodig voordat de aangepaste/nieuwe software in gebruik genomen kan worden. Scrum: Velocity trendline & work added/removed trendline. Reliable Scrum: Voegt buffering principes toe om de project due date te bewaken aan de hand van voortgang en bufferverbruik. Dit kan heel goed handmatig.
6. Reliable Scrum: Context 3.
Multiple sprintteam softwareontwikkeling Toelichting: Er zijn meerdere sprints van meerdere sprintteams nodig voordat de aangepaste/nieuwe software in gebruik genomen kan worden. Scrum: Als 2 + Coördinatie via Scrum of Scrums. Een goed praktijkgebruik is om de uiteenlopende scrumteams zo mogelijk parallel te schakelen en tegelijkertijd aan onderling gerelateerde stories te laten werken. Op deze wijze kunnen veel afhankelijkheden tussen teams al binnen de sprintduur opgelost worden. Reliable Scrum: Als 2. + Een Pert-planning kan helpen een grote complexiteit aan afhankelijkheden te managen. Beschikbaarheid van planningsoftware zeer wenselijk.
6. Reliable Scrum: Context 4.
Complex project met gedeelte softwareontwikkeling Toelichting: Naast softwareontwikkeling (al dan niet in meerdere sprintteams) vind er in het project een veelheid aan activiteiten plaats die zich er niet voor lenen om in sprints uitgevoerd te worden. Scrum: Geen specifieke voorzieningen. Reliable Scrum: Als 2. + Sprints worden als activiteit naast alle overige projectactiviteiten ondergebracht in een gebufferde Gantt-planning. Beschikbaarheid CCPM-software noodzakelijk.
6. Reliable Scrum: Context 5.
Visie: Richting lean software manufacturing Sprintteam => production cell: Op de productbacklog van het sprintteam verschijnen zowel taken (user stories) uit (evt meerdere) projecten als taken voortvloeiend uit de SLA Sprintduur => Takt time: Voortschrijdende versnelling van het ritme en reductie van de WIP (Extreme Programming, DevOps?). Investeren in wegnemen obstakels zoals bijvoorbeeld kwaliteitsborging (automatisch testen, built in quality), belemmeringen in OTAP-omgeving en/of complexe productiegang. Plannen en bewaken: CCPM sturing voor projecten Single-task prioritering Koppelen van taken aan sprints tijdens sprint preparation Beslismomenten resourceallocatie: projectrelease Prioriteren (overall) productbacklog
Resumé Scrum? Doen!
Reliable Scrum (CCPM-Scrum combinatie) ondersteunt ► ► ►
Sturing op business goals Resourcemanagement Portfoliomanagement
Toenemende toegevoegde waarde naar gelang ► ► ►
Complexiteit van het project Multiproject omgeving Combinatie met alternatieve werkstroom
Meer weten?
www.reliableprojects.nl/blog
Questions
End of presentation.. Thank you for your attention