Agile en scrum
Transcript of Agile en scrum
2
Systeemontwikkeling voor de Cloud: Agile en Scrum
Presentator: Daan KalmeijerExpert ConsultantEnterprise Architectinspearit
6
Het raketprobleem: Een grotere raket vergt meer brandstof + brandstof om die brandstof de lucht in te brengen
7
Het ‘Raketprobleem’ in de ITEen twee keer zo groot ontwikkelproject vergt méér dan twee keer zo veel ...
Afspraken tussen opdrachtgever en leverancierVastgelegde requirementsPlanningNadruk op procedures, afgesproken rollen en werkverdelingJuridisch voorwerk...
Ook wel: ‘bureaucratie’
Als een project maar groot genoeg is, dan ben je alleen nog maar met bureaucratie bezig ...
8
Bureaucratie
We hebben tot in detail afgesproken wie/wanneer/wat doetAlles wat we doen en besluiten wordt keurig vastgelegdDe opdracht is tot in detail vastgelegd, de klant weet precies wat hij gaat krijgenWe houden hoe dan ook vast aan het plan
9
En nog zo’n probleem: IT en Business als niet-lineair
systeemDe business levert requirements voor de ITDoor IT te introduceren veranderen we de business... wat weer nieuwe inzichten en requirements oplevert ...
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 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 toolsWorking software over comprehensive documentationCustomer 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
Agile System Development
Ontstaan vanuit bestaande ontwikkelmethoden die ‘anders’ warenDSDM, XP, Scrum, RUP, ...Allemaal een beetje meer/minder agileAllemaal incrementeel, ‘lerend’, ...
16
Mythes over Agile Software Development
Agile ontwikkelen ≠ hackenAgile ontwikkelen ≠ onbeheersbare codeAgile ontwikkelen ≠ ongedocumenteerdAgile ontwikkelen ≠ alleen voor kleine projecten
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...
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 sprintIngeschat 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
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
26
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?