In het artikel Ontdek hoe AI je werk als analist makkelijker maakt staan 7 manieren waarin je generatieve AI kunt inzetten voor je werk. Daarvan bleken jullie het meest benieuwd te zijn naar het laten genereren van user stories door ChatGPT.
Daarom laten we in dit artikel zien hoe je concept user stories door ChatGPT kunt laten schrijven. Dat doen we aan de hand van twee uitgewerkte voorbeelden.
Hoe je ChatGPT user stories laat schrijven
Om te zorgen dat ChatGPT bruikbare user stories met acceptatiecriteria voor je schrijft, moet je hem de juiste instructies en input geven. Dat wordt in AI de prompt genoemd. Hoe een goede prompt eruit ziet is een onderwerp op zich. Daar zouden we een heel artikel over kunnen schrijven.
We denken echter dat je meer hebt aan een voorbeeld. Dan kun je er zelf meteen mee aan de slag en gaandeweg je prompts verbeteren. Inspect and adapt zoals we in agile zeggen.
Eerste voorbeeld
Stel je gaat een nieuwe epic oppakken waar je je nog niet eerder in verdiept hebt. Je doel is om samen met de key-users een aantal user stories voor te bereiden voor de refinement. Dan zou je ChatGPT een voorzet kunnen laten geven. Dat zorgt ervoor dat:
- Je heel snel een beeld van een mogelijke werking van de epic krijgt
- Je een set user stories krijgt die je als startpunt voor de sessie met de key-users kunt gebruiken. Dat is doorgaans makkelijker dan met een blanco vel te beginnen.
- Je vertrouwd raakt met ChatGPT en je voorbereidt op een toekomst waarin generatieve AI niet meer weg te denken is
Prompt
In dit geval is een eenvoudige prompt voldoende. Als voorbeeld hebben we een fictieve case genomen en onderstaande instructies in het chatveld van ChatGPT ingevoerd.
De Inspectie van het vrachtverkeer laat een nieuw Vrachtvliegtuig inspectie systeem (VIS) bouwen. Een belangrijk onderdeel dat binnenkort prioriteit gaat krijgen is het bepalen welke vliegtuigen de inspecteur tijdens zijn dienst gaat inspecteren. Daarvoor biedt VIS elke inspecteur een persoonlijke werkvoorraad.
Opdracht: Schrijf 5 user stories inclusief acceptatiecriteria voor de persoonlijke werkvoorraad van de inspecteur.
Door ChatGPT gegenereerde user stories
Belangrijk om te weten: De output van ChatGPT is elke keer anders, zelfs als je exact dezelfde prompt nogmaals invoert. Dus ben je niet tevreden met de user stories, genereer ze dan gewoon opnieuw.
User Story 1: Als inspecteur wil ik vliegtuigen kunnen selecteren voor inspectie op basis van risicofactoren, zodat ik mijn tijd effectief kan besteden aan het controleren van vliegtuigen met een hoger risico op overtredingen.
Acceptatiecriteria:
- Ik moet vliegtuigen kunnen selecteren op basis van hun herkomst en bestemming.
- Ik moet kunnen filteren op vliegtuigen die eerder overtredingen hebben gehad.
- Ik moet kunnen zien welke vliegtuigen recentelijk zijn geïnspecteerd door andere inspecteurs.
User Story 2: Als inspecteur wil ik de mogelijkheid hebben om vliegtuigen toe te voegen aan mijn persoonlijke werkvoorraad, zodat ik een overzicht heb van de vliegtuigen die ik tijdens mijn dienst moet inspecteren.
Acceptatiecriteria:
- Ik moet vliegtuigen handmatig kunnen toevoegen aan mijn werkvoorraad.
- Ik moet vliegtuigen kunnen verwijderen uit mijn werkvoorraad.
- Ik moet een melding ontvangen wanneer een vliegtuig aan mijn werkvoorraad wordt toegevoegd door een andere inspecteur.
User Story 3: Als inspecteur wil ik automatisch suggesties ontvangen voor vliegtuigen die ik aan mijn werkvoorraad kan toevoegen, zodat ik mijn werkvoorraad efficiënt kan aanvullen.
Acceptatiecriteria:
- Ik moet suggesties ontvangen voor vliegtuigen die een hoog risico op overtredingen hebben op basis van historische gegevens.
- Ik moet suggesties ontvangen voor vliegtuigen die nog niet zijn geïnspecteerd.
- Ik moet de mogelijkheid hebben om suggesties te accepteren of te weigeren.
User Story 4: Als inspecteur wil ik in staat zijn om mijn werkvoorraad te organiseren op basis van verschillende criteria, zodat ik mijn inspecties efficiënt kan plannen.
Acceptatiecriteria:
- Ik moet kunnen sorteren op vertrektijd, zodat ik mijn inspecties beter kan plannen.
- Ik moet kunnen filteren op vliegtuigtype, zodat ik inspecties van vergelijkbare vliegtuigen achter elkaar kan uitvoeren.
- Ik moet in staat zijn om vliegtuigen te markeren als “geïnspecteerd”.
User Story 5: Als inspecteur wil ik real-time updates ontvangen over wijzigingen in mijn werkvoorraad, zodat ik altijd op de hoogte ben van de te inspecteren vliegtuigen.
Acceptatiecriteria:
- Ik moet meldingen ontvangen wanneer een vliegtuig aan mijn werkvoorraad wordt toegevoegd of verwijderd.
- Ik moet op elk moment de meest recente versie van mijn werkvoorraad kunnen bekijken.
Tweede voorbeeld
Stel je hebt met key-users gesproken over een specifiek onderdeel van het nieuwe systeem. Daarvan heb je aantekeningen gemaakt (of je hebt een AI-tool een transcriptie of verslag van het gesprek laten maken). Om die informatie om te zetten in user stories laat je ChatGPT een conceptversie maken.
We zeggen nadrukkelijk conceptversie want je zult de gegenereerde user stories zelf moeten controleren en aanpassen. Je kunt immers niet blindelings op ChatGPT vertrouwen.
Toch heeft het voordelen om de hulp van ChatGPT in te roepen. Een conceptversie aanpassen is immers makkelijker en sneller dan van scratch af aan beginnen. Bovendien is de kans groot dat de gegenereerde user stories je aan het denken zetten of op ideeën brengt waar je zelf niet opgekomen zou zijn.
Prompt
In deze situatie raad ik aan om alle relevante informatie die je hebt in de prompt op te nemen. Schets de context, geef aan welke output je precies wilt hebben en deel de complete beschrijving van de gewenste functionaliteit.
Je bent een senior business analist die user stories aan het voorbereiden is voor de refinement van volgende week. Je werkt voor een scrum team bij de inspectie van het vrachtverkeer dat een nieuw Vrachtschip Inspectie Systeem (VIS) bouwt. Een belangrijk onderdeel dat binnenkort prioriteit gaat krijgen is de werkvoorraad van de inspecteur.
Opdracht: Schrijf op basis van onderstaande beschrijving user stories met bijbehorende acceptatiecriteria.
Output: User story in template: “Als <gebruiker> wil ik <functionaliteit>, zodat <business waarde>.” Acceptatiecriteria in template: “Testen dat …” of Testen of ..”
Constraint: Noem alleen acceptatiecriteria die informatie toevoegen. Laat voor de hand liggende acceptatiecriteria achterwege.
Wensen t.a.v. werkvoorraad inspecteur
Het is aan de inspecteur om, doorgaans aan het begin van zijn dienst, te bepalen welke inspectie-activiteiten hij in die dienst zal gaan uitvoeren. Van de hoeveelheid aan werk dat potentieel uitgevoerd zou kunnen worden (de ‘werkvoorraad’) mag aangenomen worden dat het altijd meer is dan waarvoor de mankracht beschikbaar is. Dit impliceert dat er een selectie gemaakt moet worden.
Het maken van een selectie uit de beschikbare inspectie-activiteiten gebeurt op basis van één of meerdere van onderstaande factoren:
- Type vliegtuig (niet elke inspecteur is bevoegd alle typen vliegtuigen te inspecteren);
- Lading;
- Locatie van het vliegtuig op de luchthaven;
- Risico (bepaalde handelingen op of rond het vliegtuig bv laden, lossen, tanken, wassen, repareren verdienen meer aandacht);
- Managementsturing (aanwijzingen van een Senior Inspecteur voor het uitvoeren van bepaalde inspectie-activiteiten);
- Persoonlijke voorkeur.
Ten behoeve van het maken van een afgewogen selectie beoordeelt de inspecteur de actuele werkvoorraad, door de inspectie-activiteiten daarin te filteren en te sorteren op voor hem relevante aspecten.
Op het moment dat de Inspecteur beslist een bepaalde inspectie-activiteit uit de voorraad op zich te nemen, kan hij die in zijn persoonlijke werkvoorraad plaatsen. Direct gevolg is dan de desbetreffende activiteit uit de algemene werkvoorraad verdwijnt, ook voor andere gebruikers. Zijn keuze is zichtbaar voor de Senior Inspecteur.
In de vliegtuigweergave wordt er een lijst getoond van vliegtuigen die in de komende dienst geïnspecteerd zouden kunnen worden. Dat wil zeggen: van alle activiteiten die in de komende 8 uur uitgevoerd zouden kunnen wordt het vliegtuig in kwestie getoond.
Van deze vliegtuigen moet een minimale hoeveelheid informatie worden getoond: niet meer dan nodig is om in één oogopslag een idee te geven wat de drukte van de dag is. Dit wordt bereikt door deze aspecten per vliegtuig te tonen: vliegtuig id, risicoindicator, locatie, geplande landingstijd.
Door ChatGPT gegenereerde user stories
User Story 1: Als inspecteur wil ik de werkvoorraad van inspectie-activiteiten kunnen bekijken, zodat ik een afgewogen selectie kan maken voor mijn dienst.
Acceptatiecriteria:
- Testen dat de activiteiten in de werkvoorraad in de komende 8 uur kunnen plaatsvinden.
- Testen of de werkvoorraad kan worden gefilterd op type vliegtuig, lading, locatie van het vliegtuig, risico-indicator, managementsturing, persoonlijke voorkeur van de inspecteur
- Testen dat inspectie-activiteiten worden weergegeven met relevante informatie zoals vliegtuig id, type, lading, locatie, risico-indicator, en managementsturing.
User Story 2: Als inspecteur wil ik een inspectie-activiteit selecteren, zodat ik een persoonlijke werkvoorraad krijg.
Acceptatiecriteria:
- Testen dat de geselecteerde inspectie-activiteit uit de algemene werkvoorraad verdwenen is.
- Testen dat de geselecteerde inspectie-activiteit in de persoonlijke werkvoorraad van de inspecteur staat.
- Testen dat de keuze van de inspecteur zichtbaar is voor de Senior Inspecteur.
User Story 3: Als inspecteur wil ik de vliegtuigweergave kunnen zien, zodat ik in één oogopslag een beeld krijg van de drukte van de dag.
Acceptatiecriteria:
- Testen dat de vliegtuigweergave een lijst toont van vliegtuigen die in de komende dienst geïnspecteerd zouden kunnen worden.
- Testen dat de getoonde informatie per vliegtuig beperkt is tot vliegtuig-id, risico-indicator, locatie en geplande landingstijd.
User Story 4: Als Senior Inspecteur wil ik de keuzes van inspecteurs kunnen bekijken, zodat ik op de hoogte ben van hun inspectieplanning en eventueel kan bijsturen.
Acceptatiecriteria:
- Testen dat in de algemene werkvoorraad alleen voor de senior inspecteur de keuzes van de inspecteurs zichtbaar zijn.
Er is best het een ander aan te merken op bovenstaande user stories, maar voor een eerste conceptversie zijn ze niet slecht. Prima te gebruiken als startpunt voor verder afstemming met stakeholders en/of het team.
Laat de twee voorbeelden hierboven een aanzet zijn om ook eens de hulp van ChatGPT in te roepen. We zijn erg benieuwd naar je ervaringen.
Heb je ChatGPT al een keer ingezet voor je werk? Hoe beviel dat? Welke bedenkingen heb je erbij? Laat hieronder bij de reacties iets van je horen, dan praten we daar verder.
Nicole de Swart & Priya Soekhai
Dankjewel voor het delen van deze tips! Ik gebruik ChatGPT al volop en heb gisteren mijn opleiding tot prompt engineer afgerond. Maar dat is nog maar het topje van de ijsberg en jullie post laat weer zien hoeveel toepassingsmogelijkheden er wel niet te bedenken zijn. Ik gebruik het, zoals je ook zegt, als sparringspartner voor een eerste aanzet die ik vervolgens weer finetune. En ik kan me geen betere en veelzijdiger sparringspartner wensen 😉
Hallo Kathy, Fijn om te horen dat ChatGPT zo’n goede sparringpartner voor je is. Ik hoop dat je reactie meer analisten stimuleert om met ChatGPT aan de slag te gaan. Dank voor het delen van je ervaringen.
Let op:
ChatGPT als hulpje/inspirator gebruiken is natuurlijk alleen toegestaan als de werkgever/opdrachtgever daar toestemming voor heeft gegeven. Er zijn genoeg bedrijfstakken waar het gebruik van AI strikt verboden is om te voorkomen dat een AI kennis krijgt van interne bedrijfsprocessen, denk aan security in de bancaire wereld bijvoorbeeld
Dank voor de waarschuwing Hugo. Bedrijfsgevoelige informatie mag je vanzelfsprekend met niemand delen en zeker niet in ChatGPT invoeren. Toch denk ik dat er (ook bij banken bijvoorbeeld) genoeg mogelijkheden overblijven om ChatGPT in te zetten. Dat laat het 1e voorbeeld in dit artikel zien, aangezien daar de prompt alleen openbare informatie bevat. In het 2e voorbeeld kun je wegens bedrijfsgevoeligheid de opsomming met selectiefactoren achterwege te laten. Verder staat er, denk ik, geen informatie in die niet openbaar is of mag worden.
Gemiste kans voor organisaties die het gebruik van AI rücksichtslos verbieden, zou ik zeggen. Analoog aan internet en intranet ga je overigens ook ‘prive ChatGPT’s’ krijgen, die je alleen met je eigen data traint. We gaan het zien of daarmee ook het probleem met de gevoelige informatie opgelost wordt.
Waak ervoor dat ChatGPT in plaats komt van de dialoog met de gebruikersvertegenwoordigers aan te gaan. ChatGPT analyseert niet.
Men dient zich in eerste plaats te realiseren dat ChatGPT GEEN KENNIS heeft, maar een taalmodel is. Het genereert opeenvolgende woorden op basis van waarschijnlijkheid en dat zijn niet noodzakelijkerwijs bestaande relaties / verbanden tussen begrippen. En in plaats van te spreken met de key inspecteur(s) vragen we nu deze ChatGPT om een statistisch waarschijnlijk antwoord van wat (hopelijk) inderdaad de wereld van een vracht-inspecteur zou kunnen zijn. Als je deze ChatGPT statistiek niet naderhand valideert met Echte Inspecteurs (om bij de casus te blijven) neem je gewoon de volgende stap in de huidige trend: De trend van het vergroten van de kloof tussen het model dat de realiteit van de gebruiker beschrijft in de logica en de data van de software, en de realiteit van de gebruiker zelf.
Inderdaad kan het geen kwaad om het hier nogmaals te herhalen: Neem de output van ChatGPT niet klakkeloos voor waar aan, maar beschouw het als conceptversie of informatiebron. AI is een hulpmiddel en vervangt niet het direct contact met gebruikers en andere stakeholders!