1
2
Systeemontwikkeling voor de Cloud: Agile en Scrum
Presentator: Daan KalmeijerExpert ConsultantEnterprise Architectinspearit
3
We willen in de cloud! ...
4
5
6
Het raketprobleem: Een grotere raket vergt meer brandstof + brandstof om die brandstof de lucht in te brengen
7
Het ‘Raketprobleem’ in de IT?
Als een project maar groot genoeg is, dan ben je alleen nog maar met bureaucratie bezig ...
bureaucratieoverhe
ad
documentatie
overlegplanning
procesafsprak
en
management
regelsrollen
afstemmingkaders
8
Nog een Metafoor: “Geweren voor de Generaal”
9
Wat Wil de Gebruiker?
De gebruiker weet pas wat hij wil wanneer hij het voor zich zietDe gebruiker weet pas écht wat hij wil wanneer hij het zelf gebruikt heeftWat zijn vooraf vastgestelde, dikke pakken requirements waard?
Bureaucratie ‘helpt ons’ om voortschrijdend inzicht in requirements in toom te krijgen
10
Wat betekent dit voor de Cloud?
U wilt ‘in de cloud’ want:U wilt sneller kunnen handelen, zonder lange termijn investeringen in infrastructuurU wilt meer flexibiliteitU wilt gericht zijn op functionaliteit, niet op infrastructuur...
U ontwikkelt zelf systemen? U laat systemen ontwikkelen?... dan ontneemt bureaucratie u de beoogde voordelen!
11
Stelling
“Om (optimaal) te kunnen profiteren van de mogelijkheden van de cloud moeten we op zoek naar een meer effectieve, flexibele en adaptieve manier van systeemontwikkeling”
12
Manifesto for Agile Software Development
We are uncovering better ways of developingsoftware by doing it and helping others do it.Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items onthe right, we value the items on the left more.
2001, www.agilemanifesto.org
13
Agile
‘Agile’ is geen methode, eerder een idee of bewegingWendbaar, lichtvoetig, snel, evolutionair, ...maar ook: samen, mensgericht, bescheiden, ... en ook: gericht op kwaliteit, op wat belangrijk is, gedisciplineerd, ...
14
Mythes over Agile Software Development
Agile ontwikkelen ≠ hackenAgile ontwikkelen ≠ onbeheersbare codeAgile ontwikkelen ≠ ongedocumenteerdAgile ontwikkelen ≠ alleen voor kleine projecten
15
Een Agile Mindset?
16
Agile System Development
Ontstaan vanuit bestaande ontwikkelmethoden die ‘anders’ warenDSDM, XP, Scrum, RUP, ...
Allemaal een beetje meer/minder agileAllemaal incrementeel, ‘lerend’, ...
17
XP
“A humanistic discipline of software development, based on principles of simplicity, communication, feedback, and courage”Alles wat goed is tot in het extreem doorvoeren
Testen Samenwerken / (code) reviewenInteractie met gebruikersOntwerpenKorte incrementenContinu integreren...
18
Scrum
Effectief zijnIn het te leveren productZo veel mogelijk uit het team halen
Vooruitgang staat centraalZo zichtbaar mogelijk
Hindernissen en blokkades wegwerkenRisico’s vroeg onderkennen en wegnemenVerbeteren, leren...
19
Scrum Rollen
Scrum MasterProduct OwnerTeam Member
20
Scrum ‘Sprints’
Sprint = TimeboxÉén tot enkele weken
Elke sprint begint met een planningssessieAf te sluiten met een demonstratie van werkende software
21
Scrum ‘Product Backlog’
De ‘ToDo’-lijst met requirementsBevat ‘Stories’ (beschrijvingen van wat een gebruiker zou kunnen doen met het systeem)Geprioriteerd door de Product Owner
22
Scrum ‘Sprint Backlog’
De ‘ToDo’-lijst binnen één sprint‘Stories’ vertaald naar concrete takenIngeschat door het team, haalbaar binnen de sprintHet liefst: post-its op een bord
23
Burndown Chart
De snelheid waarmee taken / backlog items tijdens een sprint weggewerkt wordenHét meetinstrument voor de voortgang
24
Integreren, Testen en Deployen
Continu integrerenIn ieder geval dagelijks, liefst vaker
Testen zo veel en zo vaak mogelijk uitvoeren
Geautomatiseerd (én handmatig)Dit vergt ook geautomatiseerd deployen
Zo veel en vaak mogelijk kwaliteitscijfers verzamelen
Test ‘coverage’Compliance t.a.v. standaardenMetrieken
25
Waar Agile en Traditioneel mixen ...
26
Agile Development Introduceren
Van achteren naar voren ‘agiliseren’!Eerste de deployment, dan het testen, dan de ontwikkeling, dan het ontwerp en de requirements
Elke fase moet eerst bewijzen dat het werktDe cloud gaat vooral over ‘agile deployen’ (en dus ook over ‘agile testen’)
Big-bang introductie is niet haalbaar
27
Wat zijn de voordelen van Agile ontwikkelen voor de Cloud?
U krijgt het systeem dat u ook echt nodig heeftBelangrijke functionaliteit krijgt u zo vroeg mogelijkKwaliteit (robuustheid, schaalbaarheid, stabiliteit, ...)Inspelen op veranderende eisen, veranderende omgevingGrotere betrokkenheid (gebruikers, ontwikkelaars, ...)
En de nadelen?Tegen ‘de aard van het beestje’ voor veel betrokkenenOnzekerheid wordt explicietHoe ziet een ‘agile contract’ er uit?Agile (openbaar) aanbesteden?
29
Partners
30
Bedankt voor uw aandacht
U kunt deze en alle andere presentaties terug zien op:
www.cloudxperience.nl