1. De watervalmethode... 2. 2. Agile softwareontwikkeling... 2. 3. Iteratief werken... 3. 4. Agile technieken voor teams... 3



Vergelijkbare documenten
Scrumscrumscrumscrumscrumscrum scrumscrumscrumscrumscrumscrum scrumscrumscrumscrumscrumscrum agileagileagileagileagileagileagileagil

Definitief 1.0 Handreiking voor toepassen van Agile Scrum binnen Overheidsdiensten april 2012

Scrum. Een introductie

Leiderschap in een organisatie met technische professionals

Agile (Scrum) Werken Jeroen Hak

AERIUS II. Mark Wilmot Product Owner AERIUS. Ministerie van EL&I Programma Directie Natura 2000 Programma Stikstof (PAS)

WHITEPAPER IN 5 MINUTEN. 11. Scrum

Riskpoker - Confirmation - Planningpoker. Opfrissing TMap NEXT in scrum en toelichting op de opdracht Leo van der Aalst - Jos Punter - Hans Lantink

IIBA NL Jaarcongres "Business Analyse in Scaled Agile"

Agile ervaring Ir.ing. Erik van Daalen

LSSN seminar Amsterdam Edwin Kippers Master Black Belt. Project Management

Agile systeemontwikkeling. Een introductie. Algemene informatie voor medewerkers van SYSQA B.V.

SCRUM FRESHAPPLE.NL #DIGITALATHLETES

Agile Foundation examen - OEFENVragenformulier

Ontwikkelmethoden en technieken. Ontwikkelmethoden & Technieken HC 2

Agile werken: zó doen we dat

Agile buiten de IT. Bent u al onbewust bekwaam met agile? Bert Leibbrand bert.leibbrand@itri.nl

Inhoud. 1. Agile werken. 2. Het belang van Agile werken. 3. Basisprincipes van Agile werken. 4. De meest gebruikte Agile methode: Scrum

EXIN Agile Scrum Foundation

Agile Testen in de praktijk

De Agile Analist. Henk Jan Huizer

Scrum. Een introductie. Algemene informatie voor medewerkers van SYSQA B.V.

Welkom. bij scrum. Zin in Onderwijs

WHITE PAPER. Agile/Scrum

[ SCRUM. ] Een introductie

Kwaliteit in Agile: een gegeven?

Cecile Davis & Leo van der Aalst cecile.davis@sogeti.nl & leo.vander.aalst@sogeti.nl

Agile Scrum Foundation Training - Scrum Begrippenlijst. Agile. Burndown Chart. Burnup Chart. Continuous Delivery. Continuous Deployment

XP Extreme Programming. Een introductie. Algemene informatie voor medewerkers van SYSQA B.V.

Gewone jongens die mooie dingen maken. Wat we doen en hoe we het doen

Aliens?

Agile bij grote administratieve systemen. Omgaan met requirements

Februari juni Toelichting aanpak. Claudia Tjia GROEP F M42

Samen toegankelijke websites bouwen met Scrum. Irene Melisse

Ontwikkelmethoden en technieken DSDM POMT HC3

EEN INTRODUCTIE TOT SCRUM

Agile in Projecten minimalisme of strak pak? Richard Weber PMP

Auditen van Agile projecten

Verzamelde vragen en antwoorden Agile Applicatie ontwikkeling. Agile Methodiek en Technologie. Zest Application Professionals

Een praktische kijk op Agile

Scrum bij Hosting. Philippus Baalman

Unified Process. Een introductie. Algemene informatie voor medewerkers van SYSQA B.V.

Agile Scrum voor Non-IT

Project methodiek. Auxilium BV Oude Delft CD Delft. T: F: E:

Scrum. Veranderingen. Product development of product manufacturing?

Effectief testen in complexe omgeving

Doel Vaststellen wat het doel is van aankomende sprint en een plan maken om dat doel te bereiken.

Eerste ontwerp Conferentie Software Development Programma 5 minuten Introductie. Netvlies Sedert 1997

Business Sprint LOOT-scholen en Zo.Leer.Ik in kader van project Leerling Door Madelief Keyser en Michael van Wetering

Een praktische kijk op Agile

Van Gantt chart naar Burn up chart: het doen van een eerste Agile project

Scrum: Een Agile aanpak voor ontwikkeling van producten. Scrumteam rollen. Verder dan de vraag 2

Scrum. Doe tweemaal zoveel met je studenten in de helft van de tijd

Ontwikkelmethoden en technieken. Ontwikkelmethoden & Technieken HC 4

De Agile Analist. Ebook over requirements en agile. Deel I

Agile/Scrum Foundation

Snel waarde creëren met Scrum

Wie ben ik? Agile Software Development. Het waterval model. Inhoud

SCRUM METHODE.

SCRUM: REPETEREN, MAAR OOK LEREN?

Introductie workshop Agile & Scrum

Vijf jaar agile. Hosanna of Drama?

Overdracht van project naar beheer. Beheer is ook Agile!

Agenda. Introductie Aan het werk Conclusie / restrospective

Toepassen van Scrum als process template

SCRUM VEROVERT INTERACTIEVE MEDIA

your reference in testing services WorkShop Agile in de praktijk - Erik Boelen - 18 december 2008

Agile, Scrum en Kanban in de praktijk

PRODUCT OWNER.

Testen binnen agile methoden Anko Tijman

Scrum: where Business drives IT

Een website ontwerpen met agile design en scrum, wat heb je nodig?

Evo Evolutionary Project Management. Een introductie. Algemene informatie voor medewerkers van SYSQA B.V.

Scoren met je project Projectmatig werken mag géén last zijn!

BDD/Gherkin. Een introductie

Scrum in het kort

Plan van Aanpak. project Tetris Packing

Whitepaper Agile Q-Consult Progress Partners

AGILE WERKEN Leer je eigen capaciteiten optimaal te benutten dankzij een effectieve samenwerking.

EXIN Agile Scrum Foundation

PLANET AGILE 17E BPUG SEMINAR

Organisch veranderen Adgile Scrum. Corry Oosterhoorn

B.Sc. Informatica Module 4: Data & Informatie

Agile. Scrum. Tom Luuring

Betere dienstverlening financiële organisaties met continuous delivery Flexibeler, efficiënter en in kort tijdsbestek software ontwikkelen

Wanneer ga je Agile? Wat is Agile Project Management?

White paper Pink Agile Framework

Agile with a smile. Dion Kotteman

TFS als perfecte tool voor Scrum

Driving business agility with open source Innovation fueled from outside

SmartScrum: Agile én duurzaam

Tmap Dag Ik test, jij test, wij testen. Testen binnen een Wendbare Belastingdienst. 29 september Laurens Kremer

Oplossingen voor het testen van objectgeoriënteerde software

Inhoud. Deel I: De rollen Voorwoord...7. Over de auteur Dankwoord...19

Plan van aanpak. Website voor Bouwkundig Adviesbureau Punte. Hugo Nijhuis John Oelen Frank Hazekamp Cindy Roelofs Ben Wilbers Tim Regelink

Plan van aanpak. Snelste-pad-algoritmen. Studenten. MDL-referentie. Clermond de Hullu Wiebren Wolthuis Simon Wels Maik Gosenshuis D01

Agile Testing isn t Risking IT! Bram Bronneberg Test Manager Logica - CGI

PROJECTIE WAT IS AGILE? Verandering omarmen en zelf het pad creëren REAGEREN OP VERANDERING AGILE MANIFESTO

Transcriptie:

Naar Voren: Tijdschrift voor webwerkers» Artikel #155 Agile (web)ontwikkeling Omarm de verandering Als ICT-professional heb je het liefst dat de klant exact weet wat hij wil, dat jij exact weet hoe je dat moet maken en dat niets verandert totdat het klaar is. In de praktijk blijkt meestal dat een klant ontdekt wat hij wil, dat je ontdekt hoe je dat moet maken en dat wanneer het klaar is bijna alles veranderd is. Bij softwareontwikkeling van een groot project of product kan een flexibele aanpak aanzienlijk in kosten en doorlooptijd schelen, met een eindresultaat van hogere kwaliteit. Dit geldt zeker voor een web-based omgeving waar nieuwe ontwikkelingen en technieken elkaar snel opvolgen. Agile softwareontwikkeling kan deze flexibiliteit bieden. In dit artikel probeer ik de verschillen tussen Agile en traditionele softwareontwikkelmethoden aan te geven en introduceer ik de ontwikkelmethode Scrum. Inhoudsopgave 1. De watervalmethode... 2 2. Agile softwareontwikkeling... 2 3. Iteratief werken... 3 4. Agile technieken voor teams... 3 4.1 Pair programming... 4 4.2 Collective code ownership... 4 4.3 Snelle communicatie... 4 5. Scrum... 4 5.1 Het proces in vogelvlucht... 4 5.2 Rollen in Scrum... 5 5.3 Sprint Planning Meeting... 5 5.4 Dagelijkse Scrum meeting... 6 5.5 Sprint Demo en Retrospective... 7 6. Wanneer Agile?... 7 7. Conclusie... 7 8. Meer lezen over Scrum en Agile?... 8 1

1. De watervalmethode Veel websites en webapplicaties worden met de traditionele watervalmethode uitgevoerd. Deze methode vindt zijn oorsprong in de constructiebouw en deelt de ontwikkeling in fasen op. De meest voorkomende fasen zijn: 1. Analysefase (met definitiestudies en analyserapporten als eindproduct) 2. Ontwerpfase (met functionele en technische ontwerpen als eindproduct) 3. Bouwfase (met broncode als eindproduct) 4. Testfase (met werkende broncode als eindproduct) 5. Integratiefase (eindgebruikers gaan ermee aan de slag) 6. Beheer en onderhoud fase (het systeem wordt draaiend gehouden) Eén van de uitgangspunten van de watervalmethode is dat fouten vroeg worden ontdekt en relatief voordelig te herstellen zijn. Er wordt veel gedocumenteerd zodat het eindresultaat voor de klant en leverancier duidelijk is. De volgende fase(n) zijn relatief eenvoudig in te schatten (mits het project niet te groot is) waardoor opdrachten gemakkelijk fixed price kunnen worden aangenomen. De watervalmethode vereist echter wel dat alle betrokken partijen goed begrijpen wat er in de verschillende fasen gedocumenteerd wordt. Vooral bij webapplicaties is veel documentatie dermate uitvoerig, technisch of complex dat deze door de klant vaak niet helemaal begrepen wordt. Het gebruik van prototypes en schetsen verhelpt dit maar gedeeltelijk; omdat de eerste echte opleveringen pas laat in het traject zijn, ontvang je pas laat echte feedback. Het gevolg is dat feedbackloop (de tijd tussen start en het krijgen van feedback) behoorlijk lang is. Projecten die via de watervalmethode worden aangepakt hebben ook vaak te kampen met veranderende interne en externe omstandigheden, vooral bij projecten met een lange doorlooptijd. Hierdoor kunnen requirements of zelfs doelstellingen gedurende het project veranderen. Als gevolg is er na oplevering vaak een versie 1.1 nodig, waarin feedback van de klant en de aanpassingen naar aanleiding van nieuwe ontwikkelingen worden verwerkt. 2. Agile softwareontwikkeling Agile vertaalt zich naar lenig of behendig. Agile methodes zijn een reactie op processen die er in theorie goed uitzien maar in de praktijk vaak hun beloftes niet waarmaken. De uitgangspunten van Agile ontwikkeling zijn in 2001 in het Agile Manifest vastgelegd. De filosofie achter Agile is samengevat in de volgende tabel: Belangrijk processen en tools gedetailleerde documentatie contractonderhandeling strikt het plan volgen Belangrijker individuen en interactie werkende software samenwerken met de klant reageren op verandering (bron: Agile Manifesto for Agile Software Development) 2

Bekende Agile ontwikkelmethoden zijn Scrum (dat ik verder in dit artikel introduceer), extreme Programming (XP) en Dynamic Systems Development Method (DSDM). 3. Iteratief werken Eén van de meest kenmerkende verschillen tussen de watervalmethode en de Agile methode is de wijze waarop de onderdelen van de website of webapplicatie worden opgeleverd. Bij traditionele ontwikkeling werk je aan alle onderdelen tegelijkertijd. Bij Agile ontwikkeling wordt er steeds aan één onderdeel gewerkt. Dit wordt gedaan gedurende korte iteraties of timeboxes, vaak van slechts enkele weken. Aan het einde van de iteratie wordt er iets bruikbaars vrijgegeven en ontvangt de leverancier feedback van de klant en/of eindgebruikers. Feedback wordt dus veel eerder ontvangen dan bij de watervalmethode. Op basis van de feedback en veranderende omstandigheden wordt er bepaald aan welke onderdelen er in de volgende iteratie wordt gewerkt. Wijzigingen in doelstellingen zijn in deze aanpak geen probleem, zelfs laat in het proces. De te bouwen functionaliteit wordt meestal kort beschreven in een requirement of user story. Dit kan ook uitvoeriger, bijvoorbeeld in een use case of scenario. De functionaliteit wordt voorzien van een (ruwe) inschatting en een prioriteit. Het prioriteren wordt gedaan door een uniek business value getal toe te kennen, waarbij een hoger getal een hogere prioriteit aangeeft. Omdat omstandigheden en doelstellingen voortdurend veranderen wordt de onderlinge prioriteit continu bijgesteld. Bij de start van elke iteratie wordt er uit de functionaliteit die op dat moment de hoogste prioriteit heeft gekozen. Tijdens de iteratie werk je alleen aan die onderdelen. 4. Agile technieken voor teams 3

Bij veel Agile softwareontwikkelmethodes wordt er gewerkt met een team van gelijken. In essentie zijn alle teamleden softwareontwikkelaars met bepaalde specialismen, zoals design, programmeren, databases of testen. De teamleden in het multidisciplinaire team worden zelf ook multidisciplinair. Daarnaast worden de volgende technieken vaak toegepast: 4.1 Pair programming Bij pair programming werk je met twee teamleden aan hetzelfde onderdeel. Eén teamlid zit achter het toetsenbord en muis en het andere teamlid zoekt informatie op en denkt mee. Zoals in de rallysport heb je dus een driver en navigator. Je wisselt elkaar regelmatig af. Deze wijze van werken blijkt vaak productiever dan wanneer beide teamleden achter hun eigen scherm zitten en levert betere kwaliteit op. Pair programming is een techniek die zijn oorsprong vindt in extreme Programming (XP) en wordt ook in veel andere ontwikkelmethodes toegepast. Het is overigens niet alleen zinvol bij het programmeren en kan net zo effectief bij ontwerpen, schrijven van test cases, et cetera worden ingezet. 4.2 Collective code ownership In Agile methodes wordt er vaak met collective code ownership gewerkt; iedereen mag in alle code werken, ongeacht de aard (CSS, JavaScript, server-side code) of onderwerp. Op deze manier krijg je meer uniformiteit en onderlinge kwaliteitscontrole. Ook kun je als team makkelijker schommelingen in de teamsamenstelling opvangen. 4.3 Snelle communicatie Agile teams zijn klein en zitten zoveel mogelijk bij elkaar zodat alle teamleden elkaar kunnen zien en spreken. Op die manier kun je snel en efficiënt communiceren. Wanneer het team op verschillende plaatsen werkt, kunnen technieken als VOIP, Video Conference en desktop sharing worden gebruikt om zoveel mogelijk het zelfde effect te krijgen. 5. Scrum Op dit moment is Scrum één van de populairste Agile ontwikkelmethoden. Het is een raamwerk voor iteratieve, incrementele productontwikkeling en maakt gebruik van een multidisciplinair, zelfsturend team. Scrum is gebaseerd op best practices, lean principles en empirisch procesmanagement. Het woord Scrum is geen afkorting, maar afkomstig uit rugby jargon; in een scrum staan alle teamleden schouder aan schouder en vormen ze één blok. 5.1 Het proces in vogelvlucht Binnen Scrum wordt er gewerkt vanuit backlogs. Het Product Backlog is als het ware een to-do lijst voor het gehele project en bestaat uit user stories en bugs. 4

Er wordt gewerkt in sprints: timeboxen van 2-4 weken. Aan het begin van elke sprint wordt er een Sprint Backlog samengesteld vanuit de Product Backlog Items met de hoogste prioriteit. Dit Sprint Backlog bevat taken die nodig zijn om de functionaliteit die is beschreven in de Product Backlog Items te voltooien. Aan het einde van de sprint wordt er meer marktwaarde aan de software toegevoegd door middel van verbeteringen, nieuwe functies en/of bugfixes. 5.2 Rollen in Scrum Scrum kent slechts 3 actieve rollen: Product Owner Deze persoon representeert de stem van de gebruikers/klant. Hij/zij beheert en prioriteert het Product Backlog. De Product Owner kan een klant zijn, maar ook iemand vanuit de interne organisatie. Team Het team bestaat uit 3-8 personen, is multidisciplinair, autonoom en zelfsturend. Er zijn geen vaste rollen, maar er is wel sprake van expertise bij teamleden. Scrum Master Deze persoon is een combinatie van coach, probleemoplosser en facilitator. Hij/zij bewaakt het proces en beschermt het team tegen binnenlopende salesmanagers, support calls en andere vormen van ruis. De Scrum Master is nadrukkelijk geen projectleider. Overige rollen zoals stakeholders, klanten en managers bestaan uiteraard ook, maar hebben geen actieve rol binnen Scrum. 5.3 Sprint Planning Meeting Elke sprint start met de Sprint Planning Meeting. Deze meeting duurt doorgaans 2-4 uur. De Product Backlog Items die bovenaan het Product Backlog staan op worden door het team opgedeeld in taken (of Sprint Backlog Items) en voorzien van een inschatting in Story Points. 1 Story Point staat voor 8 uur werk, maar zegt niets over doorlooptijd. Er wordt bepaald hoeveel Story Points het team tijdens de sprint kan verwerken. Op basis hiervan bepaalt het team welke Product Backlog Items in de sprint worden opgenomen en committeert het team zich hier echt aan. Waar bij veel andere ontwikkelmethoden dit soort beslissingen door iemand als een projectleider genomen, ligt de verantwoordelijkheid bij Scrum hiervoor bij het Team. Ondanks dat hij niet beslist, kan de Product Owner wel invloed uitoefenen; door de onderlinge prioriteit of scope van de Product Backlog Items te veranderen kan hij ervoor zorgen dat het team zich tijdens de komende sprint tóch aan de door hem gewenste onderdelen committeert. 5

Kwaliteit is geen variabele om tot een lagere inschatting te komen, tenzij het om het verminderen van externe kwaliteit gaat, zoals een eenvoudigere gebruikersinterface. Op de interne kwaliteit (die onder andere de onderhoudbaarheid van het systeem bepaalt) wordt niet bezuinigd, omdat dit op korte en lange termijn hogere kosten met zich meebrengt. 5.4 Dagelijkse Scrum meeting Tijdens de sprint zijn er korte dagelijkse meetings van het team waarin het Team en de Scrum Master aanwezig zijn en elk lid van het team de volgende 3 vragen beantwoordt: 1. Wat heb je gedaan sinds de laatste meeting? 2. Wat ga je doen tussen nu en de volgende meeting? 3. Is er iets dat je weerhoudt om te doen wat je van plan bent? Via de eerste twee vragen blijven de aanwezigen op de hoogte van de voortgang. Via de derde vraag worden problemen die de voortgang bedreigen (in Scrum: impediments) gesignaleerd en opgelost. Tijdens de dagelijkse Scrum meeting kunnen alle geïnteresseerden aanwezig zijn, echter alleen de Scrum Master en het Team mogen spreken. De meeting duurt maximaal 15 minuten en wordt meestal staand gehouden. Dat is minder comfortabel dan zittend. Dit alles houdt het geheel bondig en to the point. De voortgang wordt op een taskboard bijgehouden. Hierop zijn 3 kolommen aangegeven: niet gereed, in uitvoer en gereed. Elk Sprint Backlog Item staat in één van de kolommen, met de naam van de uitvoerende persoon en aantal uur resterend werk erbij. De totale voortgang van de sprint wordt bijgehouden in een Sprint Burn-down grafiek. De burn-down grafiek geeft per dag aan hoeveel ingepland werk er over blijft. Hierin is al na enkele dagen te zien of je als team on track bent, tijd over houdt of tijd tekort zult komen. 6

5.5 Sprint Demo en Retrospective Aan het einde van de Sprint toont het Team aan de Product Owner, Stakeholders en andere geïnteresseerden het resultaat tijdens de Sprint Demo. Hierbij geldt de regel dat alleen Product Backlog Items mogen worden getoond die 100% af zijn. Aansluitend op de demo vindt er een evaluatie plaats tijdens de Sprint Retrospective Meeting. Tijdens deze meeting (waarbij het Team en Scrum Master aanwezig zijn) geeft elk teamlid aan wat goed ging, wat beter kon en wat ze anders willen doen in de volgende sprint. 6. Wanneer Agile? De keuze voor een ontwikkelmethode voor een website of webapplicatie hangt af van veel factoren. Over het algemeen kun je stellen dat bij projecten met complexe technologie, of waar (veel) wijzigingen in requirements te verwachten zijn, Agile een goede keuze kan zijn. Bij eenvoudige projecten met stabiele requirements kan de watervalmethode prima werken. Eén van de vereisten voor het hanteren van een ontwikkelmethode is acceptatie door alle betrokken partijen, niet in de laatste plaats door de klant. Een Agile softwareontwikkelmethode vraagt vaak om meer betrokkenheid en proactiviteit van een klant dan de watervalmethode. Omdat toekomstige veranderingen onbekend zijn, weet je bij een Agile aanpak niet van tevoren welke functionaliteit wel en niet ontwikkeld zal (of moet) worden. Om deze reden is Agile vaak geen logische keuze wanneer een klant beslist op basis van een Fixed Price traject wil werken. 7. Conclusie Agile softwareontwikkeling kan een serieus alternatief zijn voor traditionele manieren van software ontwikkelen. Je kunt binnen minder tijd meer klanttevredenheid bereiken, door een website of webapplicatie op te leveren die beter aansluit bij wat de klant uiteindelijk wil. Scrum is een breed inzetbare en effectieve vorm van Agile softwareontwikkeling, maar vereist wel vertrouwen vanuit de klant richting de leverancier. 7

8. Meer lezen over Scrum en Agile? Wil je meer informatie over deze onderwerpen? Kijk dan eens op: http://www.agilealliance.org/ http://www.controlchaos.com/ http://www.infoq.com/minibooks/scrum-xp-from-the-trenches bron: http://www.naarvoren.nl/ 8