Wanneer je aan een hoogwaardige organisatie denkt, heb je je dan ooit afgevraagd welke best practices zij volgen om dat niveau te bereiken? Gaan zij meer richting agile- of DevOps-benaderingen?
Om hun doelen te bereiken, vertrouwen deze organisaties vaak op een combinatie van agiletools voor het beheren van iteratieve ontwikkeling en adaptieve planning, naast DevOps-tools die automatisering, continue integratie en implementatie stroomlijnen.
Het doel van een ontwikkelings- en operationeel proces is om het bedrijf te helpen aan zijn vereisten te voldoen, teamleden te helpen samenwerken en silo's te doorbreken om problemen op te lossen, en uiteindelijk de projecten en functies waaraan zij werken af te ronden, zodat zij hun dagelijks of maandelijks actieve gebruikers kunnen verhogen – of, in het geval van bedrijfsapplicaties, de functionaliteiten van hun applicaties kunnen uitbreiden.
Wanneer teams in silo's werken, ontstaan er communicatielacunes, die op hun beurt tot chaos leiden. Wanneer teams daarentegen nauw samenwerken, zijn ze effectiever.
In dit artikel bespreek ik agile- en DevOps-benaderingen, voorbeelden van situaties waarin je specifieke methodologieën moet toepassen en hoe testen in elk van deze scenario's wordt beïnvloed.
Agile softwareontwikkelingspraktijken
In vergelijking met het watervalontwikkelingsproces richt agile zich op een van de kernprincipes, namelijk klanten al vroeg in het proces en door middel van continue oplevering tevredenstellen. Continue oplevering is alleen mogelijk wanneer we het kwaliteitsteam vroeg bij het proces betrekken en regelmatig met hen samenwerken.

Momenteel bevinden sommige kleine tot middelgrote bedrijven zich in een situatie waarin ze noch de agile-benadering, noch de watervalmethode volledig volgen, maar een combinatie van beide. Deze zogenaamde agile-teamleden richten zoveel van hun energie op gedetailleerde processen, zoals bijeenkomsten van 30 minuten en evaluaties van 60 minuten, dat ze vergeten welk rendement op investering ze opleveren. Dit leidt uiteindelijk tot een situatie waarin er veel bugs in productie worden gevonden.
Is de sector echt veranderd van een watervalbenadering?
Heb je ooit deel uitgemaakt van een organisatie (waarvan je dacht dat die agile softwareontwikkelingsprocessen volgde), om vervolgens te ontdekken dat het kwaliteitsteam pas bij het testen wordt betrokken nadat de ontwikkeling is afgerond?
In dit voorbeeld noemden ze het nog steeds agile, omdat de leden van het ontwikkelingsteam tegelijkertijd iteratief aan meerdere vertakkingen (of functies) werkten. Maar wanneer hun functies getest moesten worden, wachtten ze totdat alle ontwikkeling was afgerond—en dat is de kern van de watervalmethode. Omdat bedrijven echter sneller willen werken om hun klantenbestand uit te breiden, bouwen teams meestal technische schuld op.
De beste manier om dit probleem op te lossen, is de organisatie volledig agile te maken en iteratief nauw samen te werken met het kwaliteitsteam. Dit houdt in dat je met alle belanghebbenden samenwerkt om ervoor te zorgen dat zij de gevolgen van het niet maken van deze overstap begrijpen en weten hoe dit de gebruikerservaring kan beïnvloeden.
Agile-frameworks en hun varianten
In het kader van dit artikel bespreek ik twee van de populairste agile-frameworks:
- Scrum
- Kanban
Scrum is een agilemethodologie die wordt gebruikt bij softwareontwikkeling en is gebaseerd op iteratieve en incrementele processen. De methode bestaat uit het naleven van tijdgebonden ontwikkelperioden, sprints genoemd. De duur van sprints verschilt per organisatie en varieert van wekelijks tot maandelijks en per kwartaal.
Er is een sprintplanningssessie, gevolgd door de sprint waarin implementatie en testen plaatsvinden, inclusief dagelijkse bijeenkomsten, en die uiteindelijk eindigt met een evaluatiesessie.

Scrum wordt meestal geïmplementeerd in productontwikkelingsteams waarin teamleden hun werk aan een bepaalde tijd moeten binden om deadlines voor klanten te halen. Het is vooral van toepassing op B2C-applicaties, want als je te lang wacht, is je functie niet langer nieuw, omdat iemand anders deze mogelijk al heeft geïmplementeerd!
In B2B-applicaties, die meestal door ondernemingen worden gebruikt, wordt vaak een aangepaste versie van de agilemethodologie gebruikt, genaamd SaFe - geschaald agile-framework.
De meeste projecten bij ondernemingen vallen in een van de volgende categorieën:
- Teamniveau
- Programmaniveau
- Portfolioniveau
Projecten op teamniveau zijn functiegebaseerde ontwikkelingen waarbij elk teamlid eigenaar is van zijn project en processen. Deze teams gebruiken doorgaans Scrum of Kanban, afhankelijk van de aard van hun werk.
Als de teams vallen onder onderzoeks- en ontwikkelingsorganisaties of testautomatisering, is het noodzakelijk dat ze zich houden aan Kanban, dat minder rigide is. Het doel is dan meer gericht op het voltooien van hun huidige taak dan op het springen naar het volgende aantrekkelijke idee dat zich aandient! Als de teams deel uitmaken van de productontwikkelingsorganisatie, gebruiken ze doorgaans Scrum-processen.
Projecten op programmaniveau omvatten meerdere teams die naar een specifiek doel toewerken, zoals een AWS-migratie. Hoewel dit project kan vallen onder een project op portfolioniveau, zou ik beargumenteren dat het niet noodzakelijkerwijs gevolgen heeft voor HR- of boekhoudteams.
In dit geval kan het project AWS-migratie maanden duren vanwege onvoorziene problemen. De focus ligt daarom op het succesvol voltooien van de AWS-migratie, terwijl deze wordt opgedeeld in te rechtvaardigen sprints.
Projecten op portfolioniveau omvatten verschillende organisaties binnen het bedrijf; een voorbeeld hiervan is de implementatie van JIRA. Voor elke organisatie moeten JIRA-workflows op een andere manier worden geïmplementeerd, gebaseerd op hun behoeften. Humanresourcesteams hebben geen tests nodig; de focus ligt voornamelijk op het afhandelen van specifieke verzoeken van medewerkers. Zodra ze hen hebben geholpen, wordt de taak gemarkeerd als “voltooid”.
Agile-methodologieën zouden moeten worden toegepast door organisaties waarvan bekend is dat ze voortdurend veranderingen ondergaan. Deze veranderingen moeten echter nog steeds een testronde en het oplossen van fouten doorlopen. Testen zijn niet noodzakelijkerwijs geautomatiseerd, wat leidt tot langere procestijden.
Ten slotte worden de functies, zodra ze klaar zijn om te worden geïmplementeerd, overgedragen aan het ontwikkel-/operations-team. Er wordt dus iteratief getest in vergelijking met de watervalaanpak, maar het testen verschuift niet sterk naar links, omdat de focus niet ligt op continu testen en opleveren. Vandaar de behoefte aan de DevOps-aanpak!
-
Testiny
Visit WebsiteThis rating combines scores from multiple user review sites to reflect overall customer sentiment about the product.4.9 -
Testpad
Visit WebsiteThis rating combines scores from multiple user review sites to reflect overall customer sentiment about the product.4.1 -
Kualitee
Visit WebsiteThis rating combines scores from multiple user review sites to reflect overall customer sentiment about the product.4.6
DevOps-aanpak
De DevOps-aanpak richt zich op aspecten die verder gaan dan ontwikkeling en testen en promoot een volledig geautomatiseerde CI/CD-pijplijn, samen met mogelijkheden voor monitoring. Terwijl Agile veranderingen omarmt, richt de DevOps-aanpak zich op continu testen en opleveren om ervoor te zorgen dat frequente releases naar eindgebruikers succesvol zijn.
Het doel van het IT Operations-team is om het softwareontwikkelingsproces op te schalen en het schrijven en bijwerken van de code te versnellen die verantwoordelijk is voor het maken van nieuwe applicaties en diensten en het bijwerken van functies binnen het IT-team.
Ook wat de teamsamenstelling betreft, maken de kwaliteits- en IT Operations-teams tegenwoordig deel uit van dezelfde organisatie, zodat ze nauw kunnen samenwerken. Er is zelfs een nieuwe rol geïntroduceerd met de naam TestOps, die zich specifiek richt op het opzetten van CI/CD-pijplijnen waarin geautomatiseerde tests worden uitgevoerd op pullaanvragen, waardoor ontwikkelteams onmiddellijk feedback krijgen.
Geautomatiseerd testen is essentieel om testinspanningen op te schalen. De waarde ervan gaat verloren als het geen onderdeel is van een continue test- en continue implementatie- en releasecyclus. TestOps-medewerkers hebben daarom altijd hun handen vol aan het onderhoud van de infrastructuur voor geautomatiseerde tests.
Dit zorgt ervoor dat de leden van het Operations-team zich kunnen richten op het leveren van een infrastructuur van wereldklasse voor softwareontwikkeling, zonder te worden afgeleid door de testinfrastructuur.

Er zijn tegenwoordig veel tools en DevOps-praktijken beschikbaar die het algehele proces stroomlijnen.
- Een Terraform-statusbestand verwijst naar een reeks infrastructuren die als één geheel zijn gedefinieerd en beheerd — zo worden verschillende test- en ontwikkelomgevingen gedefinieerd en beheerd. Terraform helpt bij het configureren van servers, maar we hebben infrastructuur nodig om deze servers uit te voeren.
- AWS levert de infrastructuur via EC2-instanties, die momenteel de meest kosteneffectieve manier zijn om deze servers te configureren en uit te voeren. Als je nog een stap verder gaat en je technologiestack veel microservices bevat, kun je met Docker Compose meerdere Docker-containeromgevingen definiëren en uitvoeren.
- Ansible automatiseert het proces van het configureren van machines om processen of servers uit te voeren.
- Kubernetes helpt bij het beheren van een cluster van deze EC2-instanties als een pod en plant containers om op dit cluster te draaien op basis van de beschikbare rekenresources.
-
ManageEngine Applications Manager
Visit WebsiteThis rating combines scores from multiple user review sites to reflect overall customer sentiment about the product.4.3 -
Spacelift
Visit Website -
Site24x7
Visit WebsiteThis rating combines scores from multiple user review sites to reflect overall customer sentiment about the product.4.7
Moet je Agile of DevOps gebruiken?
Hoewel de discussie over Agile-softwareontwikkeling versus de DevOps-benadering binnen organisaties voortdurend wordt gevoerd, kun je dit het beste benaderen door jezelf de volgende vragen te stellen:
- Hoe goed kan onze organisatie zich aanpassen aan nieuwe technologieën?
- Kunnen we onze concurrenten weerstaan op het gebied van de kwaliteit van onze producten?
- Zullen klanten onze producten waarschijnlijk gebruiken omdat ze aan hun verwachtingen voldoen?
Als de antwoorden op bovenstaande vragen een vorm van ontkenning bevatten, is het tijd om meer te focussen op een combinatie van beide benaderingen en deze aan te passen aan onze behoeften.
De ideale methodologie voor softwareontwikkeling
Het belangrijkste verschil tussen op Agile en op DevOps gebaseerde softwareontwikkelingsprocessen is dat eerstgenoemde zich meer richt op het opvangen van voortdurende veranderingen, terwijl laatstgenoemde zich richt op voortdurend testen, leveren en implementeren. Samenwerking tussen de ontwikkelings- en operationele teams is cruciaal, zodat het ontwikkelingsteam niet wordt geblokkeerd.
Dus naar mijn mening zou een ideaal softwareontwikkelingsproces het volgende moeten omvatten:
- Omgaan met klant-/gebruikerspersona's en klantfeedback verwerken
- Focussen op beste praktijken om te voorkomen dat technische schuld zich opstapelt
- Voortdurende verbetering, voortdurend testen, voortdurende integratie, voortdurende levering, voortdurende implementatie en monitoring
Zo zou het proces eruitzien:

Omgaan met verschillende klantpersona's is niet beperkt tot productmanagementteams. Waarom ontwikkelen we deze producten uiteindelijk? Wat is het doel van deze producten als ze niet door klanten worden gebruikt?
Neem het klassieke voorbeeld van Nokia—toen het bedrijf technische schuld bleef opbouwen doordat het niet meeging met de markttrends, met name de innovatie van concurrent Apple. Ze richtten zich uitsluitend op het volgen van rigoureuze sprintcycli en werden uiteindelijk vergeten!
Alle bedrijven moeten begrijpen waarom hun functies worden ontwikkeld en op welke klanten ze zich richten. Zo zorgen we ervoor dat we gebruikersgerichte functies ontwikkelen.
Wanneer een nieuw product wordt uitgebracht, of het nu om een mobiele applicatie of een webapplicatie gaat, moet je altijd zorgen dat klanten hun feedback kunnen achterlaten. Niet alle bedrijven volgen een strikt proces waarbij ze nauw samenwerken met de klantenservice.
CI/CD
Stimuleer tot slot continue integratie en continue levering op basis van AI/ML. Wanneer een project mislukt, betekent dit niet noodzakelijkerwijs dat de teamleden over onvoldoende vaardigheden beschikken; het wijst eerder op onvoldoende testen en het niet tijdig ontdekken van problemen tijdens de ontwikkeling.
Maar soms gaat er, zelfs als er voldoende testen en automatisering aanwezig zijn, toch iets mis—dus als er een aanbevelingssysteem aanwezig was om te bepalen wanneer wel en wanneer niet uitgebracht moet worden, hadden dergelijke catastrofale fouten misschien voorkomen kunnen worden.
Frequente iteraties helpen het ontwikkelingsteam te begrijpen wat wel en niet werkt en dragen bij aan het nadenken over schaalbaarheid. Het nadeel is dat dit tijdrovend is! Als een ander aanbevelings-/voorspellingssysteem gegevens over klanten zou kunnen verzamelen en kon voorspellen of een specifieke functie zou helpen om tractie te krijgen of zou mislukken, zelfs voordat de ontwikkeling begint, zou dit helpen om het proces voor het bouwen van een hoogwaardig product vanaf dag 1 te stroomlijnen!
Het algemene doel is ervoor te zorgen dat de bedrijfsimpact zich sneller vermenigvuldigt wanneer deze beste praktijken als onderdeel van het ontwikkelingsproces worden toegepast.
Slotgedachten
Uiteindelijk spelen zowel Agile als DevOps een cruciale rol in moderne softwareontwikkeling, maar de juiste keuze hangt af van de doelstellingen van je organisatie, de teamstructuur, prijsopties en de behoeften van het project.
Agile richt zich op iteratieve ontwikkeling en flexibiliteit, terwijl DevOps de nadruk legt op continue oplevering, automatisering en samenwerking tussen ontwikkeling en beheer. Veel organisaties behalen succes door beide benaderingen te combineren om efficiëntie en kwaliteit te maximaliseren. Welke aanpak je ook kiest, het is essentieel om je tools en processen op elkaar af te stemmen om innovatie te stimuleren en sneller waarde te leveren.
Voor meer inzichten over het optimaliseren van je ontwikkelingsworkflows en het voorblijven op trends in de sector kun je je abonneren op de nieuwsbrief van The CTO Club.
