Wat is Agile Software development?

De afgelopen jaren hoor je steeds meer over Agile working en Agile Software Development. Maar wat is dit nu eigenlijk, en hoe kun je hier je voordeel mee doen? En wat is Agile nu eigenlijk? De antwoorden op deze en meer vragen lees je in dit artikel.

De Agile is een manier van werken die is geboren uit de gezamenlijke frustratie van de meeste softwareontwikkelaars en de aanverwante teams. 20 Jaar geleden werd in  softwareontwikkeling meestal gewerkt met extreem uitgebreide plannen, een verstrikkende rangorde en lange procesbeschrijvingen.

Opdrachtgevers wachtten vaak jarenlang op het uitkomen van de gewenste software. Erger nog, de meesten waren bij oplevering vaak ontevreden over de uiteindelijke uitvoering. Het was hoog tijd voor een nieuwe manieren van denken, werken en organiseren, die draaien om wendbaarheid en snelheid. 

Wil je graag meer weten over project management? We hebben laatst een artikel geschreven over project management.

Powered By:

Wat betekent Agile eigenlijk?

Agile is een Engels woord dat je, afhankelijk van de context, met “beweeglijk, lenig, snel” en “flexibel” kunt vertalen. Binnen Agile software development slaat dit vooral op de snellere en flexibelere manier van werken dan andere methoden

Powered by SaasCity

Haal het meeste uit je software, Via SaasCity worden zakelijke gebruikers en SaaS-aanbieders geïnformeerd, geadviseerd en verbonden met elkaar.

Ga naar SaasCity

Is Agile een snellere manier van werken?

Agile als softwareontwikkelmethode is een specifieke manier van werken waarbij  de software in korte periodes (snel) wordt opgeleverd aan de opdrachtgever. Hierbij wordt constant contact gehouden met de klant of opdrachtgever. 

Is Agile een meer flexibele manier van werken? 

Omdat er in de Agile manier van werken constant contact word gehouden met de opdrachtgever, zorgt dit ervoor dat de klant steeds op de hoogte word gehouden en er op elk moment in het ontwikkelingsproces op zijn of haar wensen kan worden ingespeeld. 

Het idee achter Agile

De geschiedenis van Agile Software development begint, 20 jaar gelden op een sneeuwerige zondag in februari 2001 in het Snowbird-skigebied  in de Wasatch-geberte van Utah. Zeventien mensen kwamen bijeen om te praten, te skiën, te ontspannen en om uiteindelijk het Agile ‘Software Development’ Manifest samen te stellen. 

Vertegenwoordigers van Extreme Programming, SCRUM, DSDM, Adaptive Software Development, Crystal, Feature-Driven Development, Pragmatic Programming en anderen die behoefte hadden aan een alternatief voor langdurige, moeilijke softwareontwikkelingsprocessen zijn allen aanwezig. Het uiteindelijke manifest (of openbare bekendmaking) voor Agile Software Development werd ondertekend door alle deelnemers. 

Agile begon niet als de uitgebreide methodologie en manier van werken die nu heel populair is, ook buiten software development. Het was eerder een reeks principes en waarden, waarvan de ondertekenaars van het Agile Manifesto het als volgt samenvatten:

  • Individuen en interacties zijn belangrijker dan processen en tools
  • Werkende software gaat boven uitgebreide documentatie
  • Klantensamenwerking boven contractonderhandelingen
  • Aanpassingen gaan boven het algemene plan

De oude manier van werken – Waterfall

Laten we een kijken naar de voorganger van Agile, het Waterfall-model. Dit was het standaardontwikkelingsproces voor software in de jaren ’70 en ’80, en is gebaseerd op een reeks opeenvolgende en afzonderlijke ontwikkelingsfasen, die elk als een waterval naar de volgende overvloeien.

Als je bijvoorbeeld een stukje software wilt bouwen volgens de watervalmethode, ziet de tijdlijn van het project er ongeveer zo uit:

Fase 1 – Onderzoek: identificeer en bepaal de behoeften die de software zal aanpakken

Fase 2 – Planning: bepaal de projectstrategie en tijdlijn

Fase 3 – Ontwerp: stel een blauwdruk op voor de softwarearchitectuur

Fase 4 – Ontwikkeling: schrijven van de code

Fase 5 – Testen: zorg ervoor dat het product werkt

Fase 6 – Onderhoud: Laat de software na de release nakijken

Hoewel dit er op papier misschien heel georganiseerd uitziet, leverde deze manier van werken in de praktijk vaak problemen op. Zie het op deze manier: hoe vaak werkt de software helemaal perfect bij de release van versie 1.0? Bijna nooit!

 Meestal wordt software vrijgegeven en moet deze worden bijgewerkt op basis van gebruikersfeedback en prestaties.

Met het watervalmodel ontstaan er veel fouten in de onderzoeks-, plannings- en ontwerpfasen die waarschijnlijk pas zullen worden onthuld als het product wordt vrijgegeven aan gebruikers. Op dat moment begint het proces helemaal opnieuw om de problemen aan te pakken die naar voren zijn gekomen. Dit kan een moeizame updatecyclus creëren die lang duurt en uiteindelijk nog ondermaatse software oplevert.

Powered by SaasCity

Haal het meeste uit je software, Via SaasCity worden zakelijke gebruikers en SaaS-aanbieders geïnformeerd, geadviseerd en verbonden met elkaar.

Ga naar SaasCity

Essentiële ideeën die je in elke agile-methodologie aantreft

1. Iteratieve verbetering en gebruikersgerichte ontwikkeling

In het watervalmodel wordt een stukje software gecodeerd in één lange, grondig geplande ontwikkelingsfase. In een agile methodologie bestaat een stukje software uit vele kleinere iteraties, elk vervat in korte, verschillende ontwikkelingscycli. Deze kleine, maar betere iteraties zijn allemaal gericht op het bieden van een nieuw stukje waarde aan gebruikers.

Deze iteraties hebben een aantal algemene vereisten:

  • Timeboxen. Agile ontwikkelingscycli vallen doorgaans binnen een bepaalde tijdsspanne of “Timebox”, wat eigenlijk  inhoud dat er een harde tijdslimiet wordt gesteld om ze kort te houden.
  • Adaptieve planning. Plannen en routekaarten worden tussen de verschillende ontwikkelingscycli gewijzigd op basis van nieuwe informatie.
  • Gebruikersgericht ontwerp. Het vervullen van user stories, of specifieke gebruikerservaringen, is het doel van elke cyclus.
  • Korte feedbackloops. Teamgenoten voortdurend werk en ontvangen ze onmiddellijk feedback met van detimeboxi-methode. 
  • Doorlopende verzending. Code wordt vroeg in elk stadium en vaak verzonden.

Alle bovenstaande ideeën worden weer anders vormgegeven door verschillende agile methodologieën – Scrum noemt zijn timeboxes bijvoorbeeld “sprints” en zijn korte feedbackloops “dagelijkse scrums” – maar de kernconcepten zijn altijd aanwezig.

3. Ingebouwde kwaliteitscontroles

In het watervalmodel zijn testen en kwaliteitscontrole elk hun eigen afzonderlijke fase van de hele softwareproductiecyclus. Zodra alle code is geschreven, gaan testers aan de slag om bugs op te sporen en deze terug te sturen zodat de ingenieurs aanpassingen kunnen maken. Dit is een lange, inflexibele en vaak uiteindelijk inefficiënte ontwikkelingscyclus.

In agile methodologieën worden testen en kwaliteitscontrole ingebakken in de softwareontwikkeling. Ingenieurs testen de code terwijl ze deze schrijven, en meestal ondergaat deze  code nog een reeks geautomatiseerde tests voordat deze uiteindelijk wordt geïmplementeerd.

De meest voorkomende soorten ingebouwde kwaliteitscontroles zijn:

Pair Programming. Bij pair-programmeren, uitgevonden door Ken Becks, één van de ondertekenaars van het Agile Manifesto en bedenker van Extreme Programming, schrijven twee technici code op één programma, waarbij ze elkaars werk in realtime controleren.

Unit Testing. Ttestgestuurde ontwikkeling (zoals deze ook door Ken Becks gepopulariseerd  werd), omvat het testen van eenheden het schrijven van tests voor elk afzonderlijk onderdeel van de software om ervoor te zorgen dat deze presteert zoals verwacht, zonder foutief gedrag.

Automatische codebeoordeling. Er veel moderne tools beschikbaar voor continue integratie waarmee engineeringteams elk stukje nieuw verzonden code kunnen testen om er zeker van te zijn dat er niets fout gaat.

Kortom: in elke agile-methodologie heb je multifunctionele teams die worden bemand door leden uit verschillende delen van het bedrijf, die iteratief software bouwen in korte ontwikkelingscycli en hun ontwikkelingen bij elke stap testen.

Werken volgens de Agile ontwikkelmethode zorgt voor meer tevredenheid bij klanten en minder frustratie bij softwareontwikkelaars

Er zijn talloze verschillende versies van Agile software development die je kunt tegenkomen bij een bedrijf:

  • Scrum
  • Kanban
  • Extreme programmering (XP)
  • Lean Programmeren

Indien goed geïmplementeerd, zal del softwareontwikkeling sneller, flexibeler en uiteindelijk leuker maken voor de ingenieurs erachter. Tegelijkertijd zullen deze methodologieën ook software creëren die sneller aansluit op en tegemoet komt aan de behoeften van de gebruiker, wat weer  leidt tot meer tevreden klanten.

Soms is de terminologie kan een beetje overweldigend, vooral omdat start-ups vaak de neiging hebben om termen uit verschillende frameworks door elkaar te gooien (en soms zelfs hun eigen termen uit te vinden), maar als je de kernideeën hierboven begrijpt, zul je geen probleem mee hebben om de bovenstaande ontwikkelmethoden in software development in jouw bedrijf toe te passen.

2. Multifunctionele teams

Een van de kernwaarden van agile is om te focussen op de levering en verbetering van software aan gebruikers, en dat vereist dat agile teams uit meer dan alleen ingenieurs bestaan. Een paar rollen die je zult zien, zijn:

Customer advocate. Deze rol heeft binnen verschillende bedrijven weer een andere naam n, zoals producteigenaar of klantvertegenwoordiger. In wezen is dit de persoon die de belangen van de klant vertegenwoordigt in ontwikkelingscycli en ervoor zorgt dat nieuwe functies aansluiten bij hun behoeften.

Ontwikkelingsmanager. Nogmaals, een rol met veel namen (bijvoorbeeld ‘scrummaster’), de primaire functie van deze persoon is het ontlasten van teamgenoten. Dit kan door ze beter tools te geven, een betere werkomgeving te creëren of ervoor te zorgen dat ze niet te veel dingen tegelijkertijd hoeven te doen. 

Individual contributors. (Of gewoon Individuele bijdragers natuurlijk). Dit zijn de mensen die meerwaarde aan het project leveren. Ingenieurs, ontwerpers, tekstschrijvers en meer. Het is hun taak om binnen elke timebox bepaalde resultaten bij te dragen en deel te nemen aan nabeschouwingen en planning.

Afhankelijk van het project en het bedrijf kunnen de mensen die deze rollen vervullen, verschillende achtergronden hebben. Bij sommige projecten kan de belangenbehartiger van de klant een ervaren productmanager zijn, bij andere iemand van het marketing- of verkoopteam. Evenzo kan de ontwikkelingsmanager een senior engineer zijn, of iemand met een meer operationele rol.

Door verschillende belanghebbenden en domeinexperts bij het hele ontwikkelingsproces te betrekken, kunnen teams communicatiestoringen voorkomen en verzendsoftware vermijden die een niet-bestaande behoefte oplost.

Hoe is Agile een betere manier van werken?

Bij de agile methode ligt de nadruk op het zo snel mogelijk in handen krijgen van werkende software. Dit gebeurt met frameworks waarin korte, terugkerende ontwikkelcycli zijn opgenomen.

In het populaire agile framework Scrum worden ontwikkelcycli bijvoorbeeld “sprints” genoemd. Een sprint is een korte periode (van meestal twee weken) waarin het team zich concentreert op het opbouwen van een strakke reeks oplevermomenten. Ze kiezen op doorlopende basis wat die resultaten zijn. Een typische sprint ziet er ongeveer zo uit:

Fase 1 – De Sprintplanning. Het team dat zowel ingenieurs als andere belangrijke belanghebbenden zoals marketeers of productmanagers omvat, bepaalt welke nieuwe functies de hoogste prioriteit hebben voor de volgende sprint.

Fase 2 – Sprint. Elk teamlid werkt aan zijn of haar deel van de levering en checkt regelmatig  – vaak dagelijks – met de andere teams om op de hoogte te blijven van de veranderende voortgang en indien nodig om hulp te vragen.

Fase 3 – Retrospectief. Aan het einde van de sprint presenteren teamleden hun voortgang en overdenken ze op hun ervaring in de sprint.

bedrijfssoftware

Er komen nieuwe behoeften naar boven en er worden wijzigingen aangebracht in aanpak en strategie. In plaats van maanden te besteden aan het bouwen van een compleet stukje software, releaset elk team voortdurend nieuwe functies aan gebruikers. In dit proces krijgen ingenieurs meer controle over de product-roadmap en is software beter aanpasbaar. Hierdoor worden gebruikers snel in hun behoeften kunnen voorzien.

De Agile methodologie komt eigenlijk op het volgende neer: het is een framework binnen softwareontwikkeling  dat zich richt op het snel en consistent leveren van bruikbare software aan gebruikers. Maar om de agile-methodologie echt te begrijpen, moet je eigenlijk dieper ingaan op de kernprocessen en de afzonderlijke onderdelen zoals Scrum (LINK) 

Er zijn veel verschillende versies van de agile softwaredevelopmentmethode, maar de kern van elke agile-methodologie is eenvoud – uitzoeken wat er moet gebeuren om een specifiek, resultaat te halen en niets meer, niets minder. Onnodige inspanningen vertragen de voortgang, en processen regelmatig kunnen herhalen staat centraal in Agile.

Powered by SaasCity

Haal het meeste uit je software, Via SaasCity worden zakelijke gebruikers en SaaS-aanbieders geïnformeerd, geadviseerd en verbonden met elkaar.

Ga naar SaasCity

Onze top partners

Monday is gemaakt om projectmanagement makkelijker te maken. Bespaar tijd met verschillende automatiseringen, integreer verschillende zakelijke tools en prioriteer gemakkelijk de belangrijkste taken.

Pros:
  • Optimaliseer je workflows
  • Blijf up-to-date met verschillende projecten
  • Alle processen op één plek
  • Regel gemakkelijk je urenregistratie en planning
Cijfer:
5.0
Bekijk Nu

AFAS Software is een Nederlands familiebedrijf. We ontwikkelen innovatieve softwareproducten voor de zakelijke markt en nemen daarbij graag onze maatschappelijke verantwoordelijkheid.


Cijfer:
4.0
Pros:
  • Al je bedrijfsprocessen in één systeem
  • Hou overzicht over verschillende projecten
  • Optimaliseer workflows
  • Automatiseer je boekhouding
  • Verbeter klantrelaties
Bekijk Nu Bekijk Review

Gripp is hét alles-in-één pakket wat het overzicht weer terugbrengt in jouw organisatie. Of het nu gaat om die perfecte offertes met een druk op de knop, het overzicht van wie wat aan het doen is, of het strakke debiteurenbeheer: het kan allemaal met Gripp.

Cijfer:
4.0
Pros:
  • Meer dan 1500 tevreden klanten
  • Jarenlange ervaring
  • Korting vanaf 4 gebruikers
  • Datagedreven ondernemen
Bekijk Nu

Wij helpen je graag op weg

Conclusie: het aanbod in bedrijfssoftware is groot. Dit lijkt heel praktisch, maar in de praktijk blijkt dit voordeel ook meteen een nadeel. Veel bedrijven ervaren het grote aanbod juist als struikelblok voor het maken van een overwogen keuze voor bedrijfssoftware. Wij helpen je daarom om deze keuze wat eenvoudiger te maken. Zo kun je oriënteren, pakketten vergelijken en reviews lezen, waarmee je de beste keuze kunt maken.

Wij zijn als website aan geen enkele aanbieder verbonden. We streven er dan ook naar om je van de meest objectieve informatie te voorzien zonder je te willen beïnvloeden bij je keuze, maar wel om je te helpen bij het maken van deze beslissing. Ben je op zoek naar specifieke informatie, heb je aanvullingen op deze informatie of heb je andere suggesties? 

Het laatste nieuws over software op apparata

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *