De werkwijze(n) van Covadis
Agile softwareontwikkeling
Agile softwareontwikkeling. Iedereen praat erover, maar wat is het nu eigenlijk? En hoe passen we het toe binnen Covadis? In deze blog gaan we daar verder op in.
Agile softwareontwikkeling. Iedereen praat erover, maar wat is het nu eigenlijk? En hoe passen we het toe binnen Covadis? In deze blog gaan we daar verder op in.
Agile staat voor een wendbare en flexibele manier van werken, waarin er snel kan worden geacteerd op veranderingen en juist niet halsstarrig wordt vastgehouden aan een vooraf bedacht plan. Verder staat de samenwerking met de klant centraal en het iteratief en stapsgewijs opleveren van werkende software.
Binnen de wereld van de maatwerk software ontwikkeling worden hier verschillende methoden voor gebruikt zoals; Kanban, Scrum en Agile Modeling. Deze methoden stellen developmentteams in staat om iteratief en incrementeel te ontwikkelen. Deze twee ingrediënten maken de teams Agile, waardoor zij gemakkelijk kunnen inspelen op veranderingen in het ontwikkeltraject. Kortom, Agile softwareontwikkeling dus!
Wat bedoelen we nu precies met iteratief en incrementeel? Iteratief betekent herhaling. En bij een iteratief proces binnen softwareonwikkeling herhalen onderdelen van dit proces zich systematisch. Denk hierbij aan sprints van developmentteams. Een sprint is een korte afgebakende periode van tijd (Bijvoorbeeld 2 weken), waarin een developmentteam stelselmatig werkt. Iedere sprint wordt er systematisch software ontwikkelt, getest en opgeleverd. Hoewel het eindproduct iedere sprint kan verschillen, blijft dit onderdeel van het proces iedere keer hetzelfde.
Incrementeel werken staat voor het stapsgewijs bijdragen aan een product. Iedere oplevering van een sprint, zoals hiernaast staat uitgelegd, draagt bij aan de uitbreiding van het eindproduct.
De combinatie van incrementeel en iteratief maakt het dat ontwikkelteams Agile te werk kunnen gaan. Door het iteratieve karakter van het proces en de incrementele wijze van bijdragen aan het product, kan er makkelijk worden bijgestuurd als het einddoel gaandeweg het traject veranderd. Dit komt omdat er na iedere sprint makkelijk van koers gewijzigd kan worden als er veranderingen optreden. Uit ervaring blijkt namelijk dat een vooraf bedacht plan nooit helemaal zo verloopt. Je komt tijdens een ontwikkelproces altijd tot nieuwe inzichten. Agile werken maakt het mogelijk om op deze nieuwe inzichten te anticiperen.
Hoe passen we Agile toe binnen de werkwijze van Covadis? Om eerlijk te zijn is er binnen Covadis niet één gestandaardiseerde werkwijze. Per project bepalen we samen met de opdrachtgever wat de beste aanpak voor het betreffende project is. Dit zorgt per project voor een unieke manier van werken. De juiste methode om mee te werken is afhankelijk van een aantal zaken:
Hoe duidelijk zijn de requirements* bij aanvang?
Hoe waarschijnlijk is het dat de requirements tijdens het project worden bijgesteld?
Is het een lang of kortlopend project?
Zijn er afhankelijkheden van derden?
Over het algemeen hanteren we wel een agile aanpak. Daarmee kunnen we vaak onze opdrachtgevers het best bedienen. Agile softwareontwikkeling komt erop neer dat we werken aan oplossingen die op dit moment de grootste meerwaarde kunnen leveren aan de opdrachtgever en de eindgebruikers. We kunnen snel van richting veranderen als de vraag naar functionaliteiten verandert en volgen niet halsstarrig een achterhaald projectplan. Door te werken met vaste overleg- en contactmomenten wordt gezamenlijk de backlog* aan werkzaamheden beheerd en bewaakt. Hieronder zetten we de onderdelen van onze agile aanpak verder uiteen.
*Requirements zijn alleen die eisen die gesteld worden aan het gedrag of de kwaliteit van het systeem om te voorzien in behoeften van de klant.
*De backlog is een geordende lijst van alle wensen die (mogelijk) nodig zijn voor het realiseren van het doel (van het project). Oftewel, de lijst van de requirements.
Een greep uit onze opdrachtgevers
Binnen de Agile aanpak werken wij doorgaans met ‘sprints’ van 2 weken. Hiermee kunnen we snel resultaten zichtbaar maken en snel feedback ontvangen van alle stakeholders. De feedback wordt vaak opgehaald tijdens de sprintreview die standaard aan het eind van een sprint gepland staat.
Een sprint starten we met een sprintplanning. Hierin bepalen we, aan de hand van de prioriteiten zoals die gezamenlijk met de opdrachtgever zijn bepaald, aan welke onderdelen de komende sprint gewerkt wordt. Denk hierbij aan nieuwe functionaliteiten aangevuld met verbeteringen en aanvullingen op de functionaliteiten die in de vorige sprint zijn opgeleverd.
Tijdens de sprint worden de requirements voor de volgende sprint(s) uitgewerkt in de refinementsessies. Hierbij is een bijdrage vanuit de opdrachtgever wenselijk om als domeindeskundige voor de requirements op te treden. We stellen dus geen allesomvattend functioneel ontwerp op bij de start van het project, maar werken de requirements gedurende het project verder uit. Dit heeft als voordeel dat we kunnen voortborduren op kennis en ervaring die we inmiddels hebben opgedaan tijdens de projectuitvoer en het gebruik van reeds gereleasete functionaliteiten. Bijkomend voordeel is dat tijdens de ontwikkeling de functionele kennis nog vers in het geheugen zit bij alle betrokkenen.
Meer over deze vorm van werken vind je in ons blog over het MVP.
Het einde van de sprint sluiten we af altijd met een sprintreview. Deze bestaat uit een demonstratie waarin we bekijken wat de afgelopen sprint gerealiseerd is en wat niet. Dit is tevens het moment om feedback te verzamelen en op basis hiervan eventueel het plan voor de volgende sprint bij te stellen.
Bij voorkeur leveren we elke sprint een nieuwe versie van werkende software op. In de regel betekent dit dat de software gereleased wordt naar een acceptatie-omgeving. De opdrachtgever kan daarna besluiten of de software doorgezet kan worden naar productie.
Binnen Covadis vinden we het belangrijk dat onze opdrachtgevers gedurende een (Agile) project volledig inzicht hebben in het project en de projectuitvoering. Om dit te realiseren geven we toegang tot ons projectmanagement tool (Azure DevOps).
Evaluaties zetten we in om de tevredenheid van de klant te waarborgen. Zowel de projectleider, business developer en in sommige gevallen de directie doen dit. In deze gesprekken gaan we in op samenwerking, wordt er besproken of we samen nog de goede koers varen en of er nog wensen en verbeterpunten zijn om het samenwerkingsproces nog verder aan te scherpen.
Niets is zo onvoorspelbaar als de wereld van vandaag. Dat maakt het ook onmogelijk voor een klant om alles op voorhand te bepalen waar het eindproduct aan moet voldoen. Want tijdens een ontwikkeltraject krijgt de klant vaak nieuwe inzichten door veranderlijkheden van buiten af of door feedback die verschijnt over het deels opgeleverde software product. Die feedback en nieuwe inzichten wil je als klant natuurlijk verwerken in je eindproduct. Dat kan echter niet als je op voorhand alles vast legt.
Door deze vaak gegarandeerde veranderlijkheid is het dus niet handig om aan halsstarrige ontwikkelplannen vast te zitten. De behoefte van onze klant is dus flexibiliteit, een ontwikkelteam dat kan meebewegen in veranderlijke functionaliteiten. Daarom kiezen wij, in samenspraak met de klant, vaak voor een een Agile manier van werken. Omdat wij uit ervaring weten dat wij dan samen met onze klanten het beste eindresultaat behalen.
Snel starten?
Geen probleem. Wij hebben een groot team en zijn flexibel ingericht.
Doelgericht
Nieuwbouw, moderniseren of doorontwikkeling. Altijd met een helder doel.
Schaalbaar en flexibel
Klein beginnen. Groot groeien. Op- of afschalen? Doen we.
In jouw eigendom
De software is volledig jouw eigendom. Geen gedoe.
Meer dan 70 specialisten
Met meer dan 70 experts hebben we altijd de juiste specialisten voor jouw project.
Hoog kennisniveau
En dat houden we zo.
“Heb je een vraag over jouw softwareproject, wil je meer informatie ontvangen óf kunnen we je ergens anders mee van dienst zijn?”
We helpen je graag, neem hier contact met ons op!