agile software development

‘Agile’, oftewel behendig of lenig. In IT-kringen staat de term voor het ontwikkelen van software en applicaties in korte en overzichtelijke periodes (sprints, iteraties) van enkele weken tot een maand. Korte sprints zijn ideaal om zaken snel aan te kunnen passen zodat het product goed aansluit op de behoeften van gebruikers. Hoe maak je deze werkwijze tot een succes? Wat zijn de belangrijkste do’s en don’ts als je kiest voor agile software development? En wat is de visie van Typeqast op agile-ontwikkeling? In dit blogartikel gaan we hier op in.

Agile versus de watervalmethode

Het was lange tijd gebruikelijk om bij het ontwikkelen van software en complexe IT-toepassingen gebruik te maken van de ‘watervalmethode’. Dit model gaat uit van een aantal vastomlijnde fases. Er wordt begonnen met het hoogste niveau, om vervolgens trapsgewijs naar beneden te werken en stap voor stap de lagere fases te doorlopen. De watervalmethode verloopt volgens een vaste en vooraf uitgetekende planning. De teams beginnen pas aan een volgende fase van ontwikkelen of testen als de vorige stap met succes is voltooid. Er is weinig of geen contact met de klant, want vooraf heeft de klant al volledig uitgetekend wat er gebouwd moet worden (een functioneel design).

De agile-methode is veel meer een collaboratief softwareontwikkelingsproces waarbij klanten, ontwikkelaars, managers en testers meer werken als één team. De verschillende activiteiten die in fases zijn opgedeeld in de watervalmethode keren bij agile steeds terug. Daarom is een agile team cross-functional. De agile-methode gaat ook niet uit van vooraf vastgestelde en duidelijk afgebakende fases, maar scheidt de levenscyclus van het ontwikkelingsproces in sprints. Tijdens die sprints worden steeds bepaalde onderdelen van het eindproduct ontwikkeld, zodat je tussentijds snel kunt inspelen op veranderingen en gewijzigde klantbehoeften. In het watervalmodel komt de testfase bijvoorbeeld pas na het bouwen aan bod. De agile-methode laat toe dat het testen tegelijkertijd met of in dezelfde iteratie als het programmeren wordt uitgevoerd.

De voordelen van agile

De watervalmethode wordt steeds meer een relict uit het verleden en legt het in het huidige, veeleisende IT-tijdperk op veel plaatsen af tegen agile software development. Dat heeft vooral te maken met een aantal belangrijke voordelen die de agile-methode met zich meebrengt.

  • Agile software development biedt meer mogelijkheden voor goede teaminput. Hierdoor worden problemen tijdens het ontwikkelen eerder herkend en opgelost.
  • Agile is eenvoudiger en sneller dan de watervalmethode en maakt het aanbrengen van wijzigingen in requirements gemakkelijker, zelfs nadat de initiële planning is voltooid. Zo worden de gewenste functionaliteiten voor de eindgebruiker eerder gerealiseerd. Met de agile-methode kunnen bugs eerder worden gedetecteerd en onschadelijk gemaakt. Bij de watervalmethode begint het testen pas als de ontwikkeling voltooid is. Het probleem: een grotere kans op bugs die pas laat in het ontwikkelingsproces worden gevonden. Het achteraf repareren van die bugs is vaak een dure en tijdrovende aangelegenheid.
  • Je kunt een applicatie veel gemakkelijker aanpassen als marktontwikkelingen, technologische doorbraken of veranderde gebruikersbehoeften hierom vragen.
  • Agile software development betrekt de klant heel nauw bij het ontwikkelingsproces. De agile-aanpak richt zich dus nadrukkelijk op gebruikerstevredenheid en gaat sterk uit van de actieve deelname van gebruikers aan de diverse ontwikkelingsfases. Geboekte resultaten zijn bovendien direct zichtbaar. Dit heeft een positieve uitwerking op de betrokkenheid en het enthousiasme van de (eind)gebruiker.
  • De agile-methode is gebaseerd op voortschrijdend inzicht. Dit schept extra ruimte voor kwaliteitscontrole en vermindert de risico’s tijdens het ontwikkelingsproces.

Agile volgens Typeqast

Om de bovengenoemde voordelen van agile software development optimaal te benutten, is het natuurlijk van groot belang dat je kiest voor een werkwijze die de sterke punten van de agile-methode duidelijk naar voren haalt. Tijd dus om te kijken naar de belangrijkste best practices bij het implementeren van agile software development volgens de visie van Typeqast.

Communiceer goed en duidelijk

Aangezien agile software development een joint effort van de klant en ontwikkelteam is en valt of staat met de kracht van het gesloten partnerschap, is goede communicatie onontbeerlijk. Geregelde interactie is ook belangrijk voor het achterhalen en goed in kaart brengen van de wensen van de klant. Zorg dus voor geregelde contactmomenten tussen de klant en het ontwikkelteam waarbij de laatste stand van zaken wordt doorgesproken.

Agile is alleen een succesrecept als de klant en het ontwikkelteam ‘samen op reis gaan’ en voortdurend gericht zijn op het helpen en ondersteunen van de ander. Dit betekent dat ook aan de kant van de opdrachtgever een toegewijde product owner moet zitten die zijn tijd en prioriteiten in dienst stelt van het ontwikkelingsproject. De product owner is een dagelijks aanspreekpunt met beslissingsbevoegdheid. Hij/zij kan knopen doorhakken zonder dat er vertragingen optreden.

Zorg voor de juiste specialistische expertise

Moderne IT-oplossingen nemen steeds meer de vorm aan van maatwerk. Dat geldt zeker voor agile software development. Zorg er dus voor dat er binnen projectteams voldoende specialistische en multidisciplinaire expertise voorhanden is om tot de beste oplossing voor een bepaalde klant te komen. Het is vanuit het oogpunt van flexibiliteit ook belangrijk dat je beschikt over vakmensen die ter plekke snel een besluit kunnen nemen.

Zorg ook voor een duidelijke rolverdeling binnen je projectteams. Naast een product owner heb je bijvoorbeeld een scrum master nodig. Die vertaalt de doelstellingen en stories binnen een sprint naar concreet uitvoerbare taken voor de ontwikkelaars. Daarnaast zorgt de scrum master ervoor dat de beschikbare resources zo efficiënt mogelijk worden benut.

Agile werken betekent dat projectteams met veel zorg samengesteld dienen te worden, want zelfs kleine verschillen in terminologie kunnen al voor communicatieproblemen zorgen tussen de diverse partijen die bij het ontwikkelingsproces zijn betrokken. Snel en lichtvoetig ontwikkelen, de kern van agile software development, wordt in zo’n geval al gauw een lastige klus.

Creëer een uitgebalanceerd team

De samenstelling van een projectteam bepaalt in grote mate het succes van de agile-werkwijze. In de meeste gevallen heeft een crossfunctioneel team de voorkeur. Zo beschik je namelijk gelijk over alle kennis en vaardigheden (Java, AngelScript, front- en backendontwikkeling, testers) die nodig zijn om een applicatie te bouwen en op gebruiksgemak en functionaliteit te testen.

Volgens Tonći Jajić, projectmanager bij Typeqast, is het perfecte agile-team ook een mengelmoes van generalisten en specialisten. “Idealiter heeft het team een T-vormige skillset. Het bovenste deel van de T bestaat daarbij uit generalisten, terwijl het onderste deel wordt gevormd door technische specialisten. Als je die opbouw hanteert en een goede rolverdeling maakt, zijn alle aspecten van het ontwikkelingsproces – van de technische details tot de bovenliggende bedrijfsprocessen – afgedekt.”

Daarnaast gelooft Jajić in een goede mix van senior en junior developers. “Alleen met ervaren mensen werken is fout, want op die manier stel je junior developers niet in staat om te groeien en zich op professioneel vlak verder te ontwikkelen. Het gaat er bij een werkwijze als agile vooral om dat een team als eenheid goed functioneert en harmonieert. Soms is het verwijderen van een topman zelfs de beste oplossing om een team als geheel beter te laten functioneren.”

Stel de klant centraal in het ontwikkelingsproces

Een belangrijke voorwaarde voor het welslagen van de agile-aanpak is dat de ontwikkeling van een product sterk customer-centered is. De wensen en eisen van de klant staan dus te allen tijde centraal. Dit betekent dat het projectteam geregeld overzichten samenstelt van features en functionaliteiten die voor de klant de hoogste prioriteit hebben. Dit leidt tot een minimal valuable product dat al in een vroeg stadium extra waarde voor de klant heeft en gedurende latere fases van het ontwikkelingsproces verder wordt uitgebouwd.

Investeer in krachtige partnerships

Om het maximale uit agile software development te halen, is het tevens zaak om te investeren in continuïteit. Goede ontwikkelaars, cloud engineers of testers wil je koesteren en voor langere tijd aan je binden. Bij Typeqast doen we dat door kundige professionals goede arbeidsvoorwaarden, een aantrekkelijk salaris en extra opleidingsmogelijkheden aan te bieden. Het nettoresultaat van die investeringen? IT-professionals die meer betrokken zijn bij je bedrijf dan freelancers die vooral op zoek zijn naar een spannend project.

Het zien van bekende gezichten met een bewezen trackrecord is ook goed voor het klantvertrouwen. Besteed dus tijd en aandacht aan het smeden van een vertrouwensband tussen de klant en het ontwikkelteam. Dat kan door het team in de beginfase naar de klant te brengen en op gezette tijden voor contactmomenten (meetings, videoconferenties) te zorgen.

Zorg voor optimale flexibiliteit

Natuurlijk heb je ook in het geval van agile software development wel een goede strategie nodig in de vorm van een duidelijke productvisie en roadmap. Die planningen geven op basis van tijd, budget en scope in grote lijnen aan welke stappen worden genomen om het product te ontwikkelen.

Toch is het wel zaak om het ontwikkeltraject niet te zeer in steen te beitelen. Optimale flexibiliteit is namelijk het belangrijkste speerpunt van agile software development. Richt de samenwerking en het ontwikkelingstraject dus zo in dat er alle vrijheid is om capaciteit, al naar gelang de behoefte, op of juist af te schalen en sprints te schrappen of toe te voegen.

Evalueer sprints en het totale ontwikkelingsproces

Agile software development houdt in dat je niet alleen vooruitkijkt, maar ook geregeld terugblikt. Het komt nog wel eens voor dat ontwikkelaars en klanten vooral gefocust zijn op het heden en de toekomst, waardoor retrospectie een ondergeschoven kindje wordt. Maar juist bij agile software development is het belangrijk dat je constant leert van toegepaste processen en werkwijzen.

Leren van het recente verleden is in het geval van de agile-methode de sleutel tot het verbeteren van processen, ontwikkelmethoden en strategieën. Het is daarom verstandig om na het afronden van een sprint altijd wat tijd (een half uurtje is vaak al genoeg) te besteden aan het evalueren van de gebruikte werkwijze. De essentie van agile is continue verbetering, iets dat je alleen bereikt door je werk en team geregeld te onderwerpen aan een gedegen kwaliteitscontrole.

Cultiveer openheid, transparantie en teamgevoel

Agile software development werkt alleen in een arbeidsklimaat waarbinnen waarden als openheid, transparantie en verbondenheid worden gekoesterd. Dit betekent dat elk teamlid de vrijheid moet hebben om mee te denken over oplossingen en werkwijzen en de ruimte moet hebben om feedback te leveren. Ook de klant moet zich vrij genoeg voelen om zijn ideeën over de te ontwikkelen producten op tafel te leggen.

Een dergelijk werkklimaat schep je door alle stakeholders te doordringen van het feit dat ze allemaal deel uitmaken van hetzelfde team. “Je moet een band zien te creëren”, weet Tonći Jajić uit eigen ervaring. “Dat doe je door van begin af aan zo open en eerlijk mogelijk te zijn. Je ziet namelijk nogal eens dat slechte ervaringen uit het verleden klanten een beetje wantrouwig hebben gemaakt.”

Wat je daarom altijd moet vermijden is de combinatie van overpromising and underdelivering. Die leidt namelijk geheid tot teleurstelling. Door ideeën van klanten en teamleden serieus te nemen, goed te evalueren wat goed en minder goed ging en feedback met elkaar te delen via demo’s en refinements, ontstaat vanzelf een cultuur die bepaald wordt door openheid, transparantie en verbondenheid. Teambuilding is vervolgens een prima manier om die band te koesteren en verder te versterken.

Maak van agile een ‘state of mind’

Een veelgemaakte fout is dat bedrijven agile software development zien als een verzameling processen en technieken die als een magische silver bullet alle IT-problemen binnen de organisatie oplost. Ze gaan wel met agile aan de slag, maar hebben geen oog voor de cultuuromslag die nodig is om agile software development tot een succes te maken. Wat je in zo’n geval krijgt is oude wijn in nieuwe zakken. Slechte gewoonten en onderliggende problemen worden niet aangepakt, met als gevolg dat de agile-aanpak een slechte ervaring oplevert die bedrijven weer op het pad van de watervalmethode terugbrengt.

Zorg er dus voor dat een bedrijf de cultuurverandering omarmt die gekoppeld is aan de agile-methode. Met de agile-mindset ga je ervan uit dat je plannen zullen wijzigen in plaats van dat je twee jaar lang hetzelfde plan volgt. Het einddoel is helder, maar je koers kan onderweg veranderen. Agile werken is een continu proces van aanpassen, verbeteren en verfijnen. Je bent nooit klaar.

“Je kunt de belangrijkste agile-principes wel uit een boekje halen en toepassen, maar zonder een cultuuromslag binnen je organisatie gaat het nooit werken. Je plukt pas de vruchten van de methodiek als je een echte agile-cultuur binnen je bedrijf creëert. Dat kan alleen als ook het management bereid is om helemaal mee te gaan in de nieuwe werkwijze”, aldus Jajić.

Agile is geen blanco cheque

Ook kostenbeheersing is een belangrijk onderdeel van een succesvolle agile-ontwikkelingsstrategie. Het is echter niet zo dat agile werken altijd en per definitie de goedkoopste methode is. Een goede agile-aanpak is echter wel beter voorspelbaar en geeft meer mogelijkheden tot het maken van keuzes. Hierdoor wordt het leveren van maatwerk gemakkelijker en, met de juiste strategie, ook betaalbaarder. De klant heeft namelijk zelf veel invloed op de functionaliteiten en omvang (zowel financieel als operationeel) van het eindproduct.

Conclusie

Het is duidelijk dat agile software development op het gebied van flexibiliteit, schaalbaarheid en kostenbeheersing grote voordelen heeft ten opzichte van de traditionele watervalmethode. Tegelijkertijd is het succes van de agile-aanpak ook sterk afhankelijk van een aantal belangrijke best practises. Agile software development staat of valt bijvoorbeeld met kernwaarden als openheid, transparantie, korte communicatielijnen, klantgerichtheid en verbondenheid. Daarnaast is een uitgebalanceerde teamsamenstelling – idealiter een mix van ervaring en jong bloed en van specialisten en generalisten – een belangrijke voorwaarde voor het welslagen van een agile-project.

Maar de misschien wel belangrijkste variabele voor het welslagen van agile is de bereidheid van de klant om agile te zien als een mindset in plaats van als een snel wondermiddel. Agile software development werkt namelijk alleen als bedrijfsprocessen worden ingebed in een organisatiebreed gedragen agile-cultuur.

Wil je weten wat agile-ontwikkeling voor jouw bedrijf kan betekenen? En wil je weten hoe je jouw organisatie hierop voorbereidt? Schroom dan niet om contact met ons op te nemen. Bij Typeqast wordt ieder project geleid door een vaste projectmanager die samen met de klant en een toegewijd ontwikkelingsteam werkt aan de best mogelijke oplossing.

What we do

Digital transformation services make our partners move faster than the competition. Unlocking business growth for fast-paced and ambitious companies that don't want to waste time and money.

Our clients

Our clients come from many different industries. From travel and hospitality to the finance sector, insurance companies, energy, heavy industry and many more. Our team of business analysists and product owners can help transform any business and keep it on the edge of technology.