Het belang van kwaliteitsengineering is opnieuw onder de aandacht gekomen nu hele bedrijfstakken overstappen op werken op afstand en tegelijkertijd de kwaliteit van hun processen en producten proberen te handhaven.
COVID was een gamechanger voor de hele wereld. Toen overheden maatregelen voor sociale afstand en quarantaine invoerden, moesten bedrijven zichzelf opnieuw uitvinden wat betreft hun werkmethoden.
Als tester, SDET, QA-ingenieur of iemand in een andere functie die verantwoordelijk is voor het stimuleren van kwaliteit binnen je bedrijf, is je dagelijkse werk waarschijnlijk verstoord.
Effectieve kwaliteitsengineering in een werkomgeving op afstand
Voor de pandemie werkte ik al volledig op afstand bij Auth0 (een wereldwijd verspreid bedrijf dat op afstand werkt), en ook bij andere bedrijven had ik al eerder op afstand gewerkt.
In dit artikel deel ik mijn tips, trucs en processen voor het beheren van werken op afstand en kwaliteitsborgingspraktijken. Nu trends op het gebied van kwaliteitsengineering zich snel ontwikkelen, vooral in werkomgevingen op afstand, is het essentieel om op de hoogte te blijven van de tools en strategieën die deze verschuiving kunnen ondersteunen.
Het belangrijkste algemene advies dat ik je kan geven, is om voorbereid te zijn op asynchrone communicatie—je zult vaak moeten wachten voordat je contact kunt hebben, en je moet leren daarmee om te gaan.
Wanneer je werkwijzen op afstand implementeert, is het belangrijk om het verschil tussen kwaliteitsengineering en kwaliteitsborging te erkennen. Kwaliteitsborging richt zich doorgaans op het achteraf opsporen van defecten, terwijl kwaliteitsengineering een meer holistische, preventieve aanpak is die ervoor zorgt dat kwaliteit in elke ontwikkelingsfase is ingebouwd.
Strategieën en tips voor QA-ingenieurs op afstand
1. Voorbehoud: dit is niet precies zoals gewoonlijk
Tijdens de pandemie hadden thuiswerkers vaak te maken met extra stress en druk (kinderen thuis, ongeschikte kantooromstandigheden thuis, sterfgevallen of ziekte in de familie enzovoort). Of je nu manager, lead, senior of junior bent, het is cruciaal dat je begrijpt dat wat er momenteel gebeurt niet is hoe normaal eruitziet. COVID was een uitzonderlijke situatie (hopelijk!), en daarom was extra aanpassing van iedereen nodig.
Laat als manager aan je directe medewerkers zien dat je er bent om te helpen. Geef je team als technisch leider of principal richting, maar laat ook zien dat je menselijk bent en dat zij zich veilig moeten voelen om zich eveneens kwetsbaar op te stellen. En voor de rest: voel geen druk om te presteren zoals je dat normaal doet – het is begrijpelijk dat dingen langzamer zullen gaan.
Bedrijven moeten erkennen dat de snelheid van hun teams zal afnemen en dat werken op afstand hier niet de oorzaak van is. Dit zijn unieke omstandigheden. Dankzij werken op afstand kan je bedrijf blijven functioneren, ook als dat niet op volle snelheid is.
2. Codebeoordelingen zijn een van je beste kwaliteitscontrolepunten
Zelfs als je traditioneel een meer handmatige kwaliteitsfunctie binnen je bedrijf hebt gehad, zouden codebeoordelingen al op je radar moeten staan. Ze vormen vaak een belangrijk onderdeel van de levenscyclus van softwareontwikkeling en fungeren als een moment waarop mensen gedwongen worden met elkaar te communiceren om de codekwaliteit te verbeteren en fouten te voorkomen.
In een situatie waarin op afstand wordt gewerkt, zijn ze vooral belangrijk omdat ze een natuurlijk ritueel zijn dat meestal al bestaat, waardoor ze gemakkelijk kunnen worden afgedwongen. Als ze goed worden gebruikt, helpen ze je bij de problemen met asynchrone communicatie die ik eerder noemde. Het inzetten van de juiste software voor kwaliteitsengineering kan codebeoordelingsprocessen aanzienlijk verbeteren, communicatie stroomlijnen en fouten verminderen voordat ze optreden.
Mijn beste tips voor codebeoordelingen:
- Moedig mensen aan eerst een zelfcontrole uit te voeren: een zelfcontrole is een werkwijze waarbij de persoon die de codewijziging voorstelt ook zijn eigen code beoordeelt en nuttige opmerkingen achterlaat voordat hij om een openbare beoordeling vraagt. Dit vermindert de tijd die toekomstige beoordelaars verspillen en kan de persoon die de zelfcontrole uitvoert zelfs helpen om vooraf kleine, domme fouten te ontdekken;
- Voer codebeoordelingen uit in duo’s of tijdens mobsessies: dit is vooral nuttig wanneer de PR gevoelige code raakt of een vrij grote wijziging betreft (zoals een refactoring). De indiener van een wijziging kan deelnemen aan een videogesprek, zijn scherm delen en zijn PR aan het team of een collega uitleggen. Dit helpt echt om iedereen snel op één lijn te krijgen en kan de codekwaliteit aanzienlijk verbeteren.
- Betrek ontwikkelaars bij het beoordelen van automatiseringscode: het is belangrijk dat ontwikkelaars deelnemen aan de beoordeling van automatiserings- en testcode. Zo blijft hun inzicht in de manier waarop de applicatie wordt getest actueel en wordt dezelfde vorm van codekwaliteit voor alle code afgedwongen;
- Zorg ervoor dat SDETs/testers applicatiecode beoordelen: dit is zeer belangrijk. Kwaliteitsengineers zouden aan codebeoordelingen moeten deelnemen. Je kunt dit zelfs doen als je niet erg technisch bent (het is een uitstekend begin om te ontdekken wat je nog moet leren!). Je kunt niet alleen waardevolle feedback geven, maar doet ook kennis op over wat er precies in de applicatie verandert (wat je mogelijk mist door de nieuwe asynchrone werkwijze). Deze kennis helpt je om betere testbeslissingen voor het team te nemen.
Als je nog geen strikt proces voor codebeoordeling hebt, is dit een goed moment om te pleiten voor verbetering ervan. Het is een fundamenteel hulpmiddel in een tijd waarin synchrone communicatie moeilijker kan zijn.
Wees niet bang om hulpmiddelen voor codebeoordeling te gebruiken om je te helpen bij het organiseren en samenwerken.
3. Benut de kracht van programmeren in duo’s
Ik ga niet in op de details van programmeren in duo’s of mobprogrammeren, omdat dat een heel ander artikel zou opleveren en er online voldoende informatie over te vinden is.
Ik wilde er echter op wijzen dat dit in een tijd als deze een zeer waardevol hulpmiddel is. Of je nu met een andere SDET aan testcode werkt of samen met een ontwikkelaar aan applicatiecode werkt, ik vind het een geweldige werkwijze die helpt bij teambinding, het delen van kennis en het verbeteren van de kwaliteit van de code en de applicatie.
Hier volgen enkele veelgestelde vragen over programmeren in duo’s, met de antwoorden:
Wat is programmeren in duo’s?
Zoals de naam aangeeft, is programmeren in duo’s een activiteit waarbij twee mensen samen bijdragen aan dezelfde code. Het kan ook met meer mensen worden uitgevoerd en wordt dan doorgaans mobprogrammeren genoemd.
Hoe werkt programmeren in duo’s?
Bij programmeren in duo’s heb je meestal een bestuurder (die de code schrijft) en een navigator (of observator). Dit werkt goed met hulpmiddelen voor vergaderen op afstand, waarbij één persoon zijn scherm kan delen en de code kan schrijven en de andere suggesties, opmerkingen of herinneringen kan geven of kan helpen bugs te signaleren en voorkomen.
Welke hulpmiddelen gebruik je voor programmeren in duo’s?
Als je graag samenwerkt, beschikt VS Code (bijvoorbeeld) over uitstekende samenwerkingsmogelijkheden met (Visual Studio Live Share), waarmee meerdere mensen aan een gedeeld project kunnen werken. Het werkt veel beter dan je zou denken: het is zeer krachtig en werkt uitstekend met mensen die elkaar al kennen of vergelijkbare werkwijzen hebben.
Kun je programmeren in duo’s met niet-technische mensen?
Ja, en het is een geweldige kans om zowel mentorvaardigheden als technische kennis binnen je team te ontwikkelen.
Zijn er ontwikkelaars die bijzonder geïnteresseerd zijn in lesgeven of misschien ervaring hebben met het geven van workshops of tutorials? Zij kunnen met je samenwerken om je door de codebasis te begeleiden, zodat je meer ervaring opdoet als je nog niet veel technische kennis hebt.
Hoe zit het met testen?
Probeer bij het testen iets wat ik "omgekeerd programmeren in duo’s" zal noemen. Hierbij wordt het omgekeerde van programmeren in duo’s aangemoedigd: in plaats daarvan gaat het om testen in duo’s of in een mob. Werk samen met ontwikkelaars om te laten zien hoe je de applicatie test, laat hen je helpen bij het testen ervan, of doe het andersom! Dit is een zeer nuttige manier om complexe problemen aan te pakken. Lees enkele ideeën hierover in nog een uitstekend artikel van Maaret Pyhäjärvi.
4. Organiseer testsessies op afstand om als team samen te werken: bugsessies, gamedagen enzovoort.
Testsessies (soms bugjachten, speldagen enz. genoemd) zijn een gezamenlijke activiteit die doorgaans door een team wordt uitgevoerd.
Het kan gaan om het testen van een specifieke nieuwe functie, of het kan volgens een vast ritme worden uitgevoerd om de applicatie te testen. De juiste QE-hulpmiddelen kunnen tijdens deze gezamenlijke sessies het verschil maken, doordat ze realtime-inzichten bieden en complexe testomgevingen eenvoudiger maken.
Het idee is om mensen uit het team en daarbuiten, uit verschillende disciplines (ontwikkeling, testen, product, ontwerp, zakelijke belanghebbenden enz.), bij elkaar te brengen om de applicatie te testen. Als ontwikkelaars of testers hebben we soms een technisch gekleurd beeld van hoe de applicatie eruit zou moeten zien. Daarom kan het zeer waardevolle feedback opleveren als andere belanghebbenden ernaar kijken.

Ik vond het belangrijk om dit te benadrukken, omdat ik vind dat dit in deze tijden een geweldige activiteit is. Het brengt teams bij elkaar en stimuleert communicatie en samenwerking tussen verschillende afdelingen, waarbij mogelijk bugs of onjuiste specificaties aan het licht komen die anders misschien over het hoofd zouden worden gezien.
Op afstand uitvoeren kan natuurlijk een uitdaging zijn, dus hier volgen enkele tips daarvoor (en voor het uitvoeren van deze sessies in het algemeen).
Tips voor het uitvoeren van externe testsessies:
- Je moet deze sessies kunnen uitvoeren via een hulpmiddel voor videoconferenties. Zorg ervoor dat je ook een chat beschikbaar hebt (als je Slack gebruikt, kun je er misschien een apart Slack-kanaal voor maken);
- Voor situaties waarin apparaten nodig zijn (bijvoorbeeld mobiele telefoons of apparaten voor in de woonkamer), moet je vooraf weten wat mensen tot hun beschikking hebben. Als je een iOS-app test en iemand zonder iPhone uitnodigt, is dat verspilde tijd voor iedereen;
- Zorg altijd dat één of meer mensen verantwoordelijk zijn voor elk van deze sessies. Dat betekent dat zij moeten helpen bij de organisatie vooraf, de benodigde documentatie of installatie voor de deelnemers moeten voorbereiden en de sessie moeten begeleiden;
- Je moet duidelijke installatie-instructies opstellen voor deelnemers en deze vóór de sessie beschikbaar maken. Je wilt de tijd van de sessie besteden aan testen, niet aan installeren;
- Je moet ook duidelijke instructies hebben voor het melden van problemen, al is het maar “plaats het in het kanaal” (in plaats van dat iedereen tegelijk problemen probeert te melden tijdens een telefonische vergadering);
- Maak een plan voor de sessie. In dit soort situaties is het nuttig als mensen een soort script volgen, of op zijn minst een plan hebben van wat ze moeten bekijken;
- Dat gezegd hebbende, moet je verkennend testen aanmoedigen, maar houd er rekening mee dat sommige mensen misschien een klein zetje nodig hebben om te beginnen met verkennen.
- Je kunt deze sessies ook uitvoeren op systemen die meer op de backend zijn gericht. Een interessante oefening kan daar zijn om er een experiment op het gebied van chaosengineering van te maken, met een meer technisch georiënteerde groep. AWS heeft hiervan een versie die Speldagen wordt genoemd, waaruit je ideeën kunt opdoen.
- Stimuleer plezier! Deze sessies kunnen erg vermakelijk zijn als je ze goed uitvoert – toen ik ze vele jaren geleden bij Miniclip organiseerde, gaf ik testsessies een spelelement met personages uit Game of Thrones.
Je kunt ook meer gedetailleerde informatie hierover vinden in deze blogpost, waarin verschillende van de hierboven genoemde punten worden behandeld.
5. Beheer je vrije tijd verstandig — versterk je vaardigheden op het gebied van kwaliteitsengineering
Zoals ik al heb genoemd, zul je moeten wennen aan asynchrone communicatie. In de wereld van het testen (afhankelijk van de dynamiek binnen je team) kunnen de taken van een tester vaak afhankelijk zijn van het afronden van ontwikkelwerk. Nu teams in een lager tempo werken en de communicatie anders verloopt, kan het zijn dat je wat vrije tijd overhoudt.
Ik herinner me dat ik bij een vorig bedrijf een collega had die tijdens de stand-up vaak zei: “Ik word geblokkeerd door x”, waarna hij de dag doorbracht met wachten tot hij verder kon. Op een gegeven moment hielp ik hem zijn vaardigheden op verschillende gebieden te verbeteren, en een van de zaken waaraan gewerkt moest worden was precies die mentaliteit. Dit geldt nu des te meer: naast mogelijke langere periodes zonder werk, bevind je je ook in het comfort van je eigen huis, met veel afleidingen binnen handbereik.
Het is belangrijk dat je je tijd beheert en een backlog bijhoudt van dingen waarin je geïnteresseerd bent om te leren.
Hier zijn enkele voorbeelden van dingen die je in je vrije tijd kunt doen:
- Ben je meer een handmatige QA-specialist? Misschien wil je tijd investeren in het leren over automatisering.
- Heb je veel frontendkennis? Misschien zou je wat tijd moeten besteden aan het opdoen van backendkennis.
- Er zijn veel geweldige gratis bronnen, zoals freeCodeCamp of YouTube, en goedkope opties zoals Udemy (ze hebben vaak aanbiedingen). Daarnaast zijn er veel conferenties die vanwege het coronavirus op afstand zijn georganiseerd, en sommige zijn gratis bij te wonen (bijv. OnlineTestConf)!
- Of misschien wil je meer leren over de applicatie door de applicatiecode te doorgronden.
- Of misschien weet je dat er een nieuw project aankomt en dat je daarvoor een nieuwe vaardigheid zult moeten leren.
- Daarnaast kun je deze tijd ook gebruiken om nieuwe ideeën te prototypen, technische schuld op te ruimen, documentatie te maken, enzovoort.
Het maakt eigenlijk niet uit. Kies wat je wilt, maar investeer in je persoonlijke ontwikkeling.
Dat betekent niet dat je jezelf geen pauze mag gunnen (het is tenslotte een wereldwijde pandemie). Mensen zullen het begrijpen. Maar het uitbreiden van je QA-vaardigheden of jezelf verbeteren is waardevol, vooral in tijden als deze, waarin de arbeidsmarkt een enorme klap heeft gekregen.
6. Gebruik teamactiviteiten om relaties op te bouwen
Als laatste opmerking: hoewel dit niet zozeer een testgerelateerde suggestie is, wilde ik zeggen dat ik het belangrijk vind om activiteiten binnen je team aan te moedigen. Die relaties zijn belangrijk en vormen een welkome afleiding van het werk. Op kantoor ontstaan zulke contacten meestal vanzelf, bijvoorbeeld tijdens de lunch, een koffiepauze of zelfs door een willekeurige opmerking in dezelfde ruimte.
Enkele tips om relaties op te bouwen in een werkomgeving op afstand:
- In mijn huidige team hebben we de Donut Slack-app ingesteld in ons teamkanaal. Hierdoor worden we elke week willekeurig aan een teamlid gekoppeld voor een gesprek—we kunnen daar over alles praten wat we willen.
- We hebben ook een boekenclub op vrijdag, waarin we om de beurt kennis met elkaar delen (we richten ons op onderwerpen die relevant zijn voor het werk, maar het kan over van alles gaan!);
- Plan teamlunches of koffiepauzes in het kanaal, waarbij je samen tijd doorbrengt zoals je dat op kantoor zou doen. Dit werkt natuurlijk het beste als jullie je allemaal in vergelijkbare tijdzones bevinden;
- Organiseer af en toe quizzen of speel samen online spellen. The Jackbox Party Pack is een geweldig voorbeeld van iets dat goed werkt in situaties waarin je op afstand werkt.
Word lid voor meer inzichten
Voor meer tips, advies en strategieën op het gebied van kwaliteitsborging kun je je abonneren op de nieuwsbrief van The CTO Club voor de nieuwste inzichten. We helpen je slimmer op te schalen en sterker leiding te geven met handleidingen, bronnen en strategieën van toonaangevende experts!
