CCPM en Agile tbv IPMA bijeenkomst 6 juni 2013...1. Watis Agile? Charles Darwin about the struggle...
Transcript of CCPM en Agile tbv IPMA bijeenkomst 6 juni 2013...1. Watis Agile? Charles Darwin about the struggle...
Harry Barendse
Harry Barendse
IPMA CCPM interessegroep
6 juni 2013
CCPM en Agile…
+ = ?
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. Wat is Agile?
2. Agile ontwikkelmethoden
3. Fit 4 Scrum?
4. ToC en Scrum
5. CCPM en Scrum
6. Reliable Scrum
Inhoud
1. Wat is Agile?
2. Agile ontwikkelmethoden
3. Fit 4 Scrum?
4. ToC en Scrum
5. CCPM en Scrum
6. 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. Wat is Agile?
2. Agile ontwikkelmethoden
3. Fit 4 Scrum?
4. ToC en Scrum
5. CCPM en Scrum
6. 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
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
Onderzoek
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 allestakeholders 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
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 isCohen, Lindvall & Costa: “An introduction to Agile Mathods”. In: Advances in Computers (pp. 1-66).
New York: Elsevier Science
Inhoud
1. Wat is Agile?
2. Agile ontwikkelmethoden
3. Fit 4 Scrum?
4. ToC en Scrum
5. CCPM en Scrum
6. Reliable Scrum
18
Wat breng je in
een sprint onder?
Wat je in een sprint onderbrengt is situatieafhankelijk
► Teamwork: Betrokkenheid
► Teamwork: Focus
►Herhaalbaarheid
►Afhankelijkheden
Voorbeelden..
3. Fit 4 Scrum?
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
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.
3. Fit 4 Scrum?
Inhoud
1. Wat is Agile?
2. Agile ontwikkelmethoden
3. Fit 4 Scrum?
4. ToC en Scrum
5. CCPM en Scrum
6. Reliable Scrum
4. ToC & Scrum: Throughput
X Mln €
0
Years
321
1
2
ROI = (T-OE) / I
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. Wat is Agile?
2. Agile ontwikkelmethoden
3. Fit 4 Scrum?
4. ToC en Scrum
5. CCPM en Scrum
6. 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
Sprint 3
Sprint 4 Buffer
Target should be: ”Achieve the business goal asap”
As opposed to: ”Achieve the business goal after 6 sprints”
5. CCPM & Scrum: Scheduling
Sprint 1
Sprint 2
Sprint 3
Sprint 4 Buffer
Sprint 1
Sprint 2
Sprint 3
Sprint 4 Buffer
Sprint 1
Sprint 2
Sprint 3
Sprint 4 Buffer
Sprint 1
Sprint 2
Sprint 3
Sprint 4 Buffer
Sprint 1
Sprint 2
Sprint 3
Sprint 4 Buffer
Sprint 1
Sprint 2
Sprint 3
Sprint 4 Buffer
Start
After w1
After w2
After w3
After w4
After w5
Automatic reduction of remaining
duration as status date progresses
Regular update of remaining duration for
the final sprint
5. CCPM & Scrum: Scheduling
Team A
Team B
Func X
Func Y
You must know the Pert
first.
Sprint 1
Sprint 2
Sprint 3
Sprint 4 Buffer
Sprint 1
Sprint 2
Sprint 3
Sprint 4 Buffer
Dependencies between Scrum teams
Inhoud
1. Wat is Agile?
2. Agile ontwikkelmethoden
3. Fit 4 Scrum?
4. ToC en Scrum
5. CCPM en Scrum
6. 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. Software onderhoud
2. Multiple sprint softwareontwikkeling
3. Multiple sprintteam softwareontwikkeling
4. Complex project met gedeelte softwareontwikkeling
5. 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