Ik ben nog niet zo lang geleden met een nieuwe opdracht begonnen. Wat ik merkte is dat de kwaliteit van de adviezen van mijn collega’s van het detacheringsbureau waarvoor ik werk naar beneden ging, als het over de opdracht ging. Nu ben ik nieuw genoeg in het bedrijf om te mogen zeggen: ik heb mijn collega’s gewoon overschat. Het is helemaal niet erg als ze niet zo senior zijn als ik had verwacht toen ik bij het bedrijf kwam.
Zo werkt het echter voor mij niet. Als ik naar ze luisterde,
kon ik merken dat hun adviezen goed onderbouwd waren. De onderliggende kennis
klopte, hun argumenten klopten. En hun conclusie was weer goed onderbouwd op
basis van deze argumenten. Hun redenatie was die van een senior, maar het
resultaat was die van een junior. Ondanks het feit dat ik een junior resultaat
zag, bleef ik daarom geloven met seniors te maken te hebben. Seniors wier
kennis en adviezen ik wilde kunnen blijven gebruiken.
Wat was het probleem? Mijn nieuwe opdracht is een groot
project. Dit feit was niet bekend bij mijn adviesgevers. Voor het merendeel
werken testers in vast teams, met developers, Product Owner, Scrum Master en
misschien andere testers. Als ze al in een groot project werken, is dat als subteam
van het project. Mijn werk is nu echter gericht op het controleren van het werk
dat uit de subteams samen komt. Dat maakt het testen anders en de communicatie anders.
Zo werk je in een vast team regelmatig samen met je teamleden, terwijl je in
een overkoepelend projectteam veel teamleden vaak alleen op afspraak spreekt. En
het testen is in een vast team gericht op de functionaliteit van een story, terwijl
in een overkoepelend projectteam de testen gericht zijn op integratie. Dit maakt dat je
als tester informatie uit verschillende subteams moet combineren om tot een
volledig testbeeld te komen.
Maar de adviezen gingen uit van een rol in een vast team,
gericht op het werk van dat team. Eigenlijk was de oplossing dan ook simpel:
vertel ze dat ik op een groot project zit. En omdat ik helemaal gelijk had met
mijn senior redenatie, had dat ook vrij snel het gewenste effect: de kwaliteit
van de adviezen nam razendsnel in kwaliteit toe. Een senior heeft namelijk de
kennis en ervaring om zijn advies aan te passen zodra hij de juiste context
krijgt. Een junior mist die onderliggende kennis nog. Bijsturen helpt dan
minder, aanleren is wat nodig is.
AI-assistenten worden op LinkedIn vaak vergeleken met
juniors. Hierin zit een zelfde soort redenatie als ik hierboven beschreef: als
het advies de kwaliteit van een junior heeft, dan moet je het tool ook behandelen,
zoals je een junior zou behandelen. Ik deel die mening niet. Een senior is een senior
doordat hij in staat is om zijn grote hoeveelheid kennis en ervaring goed in te
zetten onder verschillende omstandigheden. Waarbij het eerste advies vaak gebaseerd
is op best practices. Of anders omschreven: het advies zal in het grootste deel
van de mogelijke situaties een goed advies zijn.
Een AI-assistent werkt meestal niet anders. Zijn advies is gebaseerd op de
meest voorkomende adviezen in zijn database, zeg dus maar best practices. Net
zoals het aan mij was om mijn collega’s te vertellen “Ik zit op een project”,
is het ook aan mij om te ontdekken welke informatie de AI-assistent nodig heeft om goed advies te
geven.
Een chatbot of AI agent kijkt niet alleen naar “Wat komt het
meeste voor in alle informatie die ik heb opgeslagen”. Op basis van de gegeven
informatie wordt ook bepaald welke subset van alle opgeslagen informatie
gebruikt zal worden . Een veelgebruikte techniek om tot een betere subset te
komen, is een zin als: “Neem de rol aan van …..”. Maar soms moet
je gewoon door uitproberen ontdekken waar de door het AI-assistent gekozen
subset de mist in gaat.
Ik heb deze week een AI skill laten maken door Copilot voor het reviewen van testautomatiseringscode. Een skill is een herbruikbare instructieset waarmee je een AI-assistent eenmalig instelt voor een vaste taak. In dit geval was de skill voor het reviewen van testautomatiseringscode. Wat ik al wist uit eerdere ervaringen, is dat een chatbot of AI agent vaak uitgaat van een developers context, bij het geven van coderingsadvies. En de code die een developer schrijft voor ontwikkelen en unit testen moet anders van opzet zijn als code, die een tester schrijft. Zo zijn voor unit testen mocks en stubs erg gewenst, terwijl je ze voor TA code vaak bewust niet wil. En worden unit testen altijd bewust klein gehouden qua omvang, terwijl je functionele en integratie testen bewust groter maakt.
Daarom heb ik eerst de tijd genomen om te kijken of Copilot
wel de juiste subset van informatie gebruikte. Ik heb Copilot gebruikt om een eerste versie van de skill te laten
schrijven en deze vervolgens gebruikt om een stuk code te reviewen. Vervolgens
heb ik de review gereviewd. Aan Copilot heb ik laten weten welke opmerkingen
incorrect waren, maar vooral ook waarom. Deze
uitleg was niet, zoals ik tegen een junior zou praten.
Deze uitleg was, zoals ik tegen een senior zou praten, die nieuw is in het bedrijf:
“Normaal heb je misschien gelijk, maar hier werkt het anders”. Vervolgens heb
ik Copilot de skill laten aanpassen en heb een nieuwe review uitgevoerd. Net zo
lang totdat ik tevreden was over de kwaliteit van de review.
Als een chatbot of AI agent werkelijk een junior zou zijn, zou
deze techniek nooit gewerkt hebben. Gewoon omdat de kennis om tot een goed
advies te komen, niet aanwezig zou zijn. Omdat de chatbot of AI agent echter
meer te vergelijken is met een senior in een nieuw bedrijf, werkt deze aanpak
wel. Het is geen kwestie van aanleren, zoals bij een junior. Het is een kwestie
van bijsturen.



.png)


