| |

User stories opbreken

Het opsplitsen van gebruikersverhalen in kleinere, beter beheersbare stukken is een gangbare praktijk bij Agile-softwareontwikkeling om ervoor te zorgen dat taken goed gedefinieerd zijn en binnen een enkele iteratie (bijvoorbeeld sprint) kunnen worden voltooid. Hier zijn enkele technieken die u kunt gebruiken om gebruikersverhalen op te splitsen. Belangrijk is ook om te weten dat mixen goed is. Voor elke Story kan een andere manier van splitsen worden gebruikt naargelang de aard van het beestje.

1. Splitsen op basis van rollen

Deze techniek is misschien wel één van de gemakkelijkste manieren om uw verhalen op te splitsen in kleinere. Wanneer je de user stories per rol verdeelt, zul je zien dat de meeste moeite in één user story zit en dat de andere maar kleine aanpassingen hebben wat prima is.

  • Een voorbeeld: Als een student wil ik berichten kunnen beheren
    • Sub-story 1: Als student wil ik een bericht kunnen beantwoorden
    • Sub-story 2: Als student wil ik berichten kunnen markeren die de docent moet beantwoorden

2. Functionele decompositie

Door het gebruikersverhaal op te splitsen met behulp van functionele decompositie, kunnen specifieke functies en taken worden geïdentificeerd die onafhankelijk kunnen worden ontwikkeld. Deze aanpak stelt het team in staat om zich te concentreren op individuele functionaliteiten en deze iteratief op te leveren, zodat het project soepel verloopt en elk gebruikersverhaal duidelijke waarde levert aan de eindgebruikers.

  • Een voorbeeld: Als project manager wil ik taken kunnen toewijzen aan leden van mijn team zodat ik hun voortgang kan opvolgen
    • Sub-story 1: Taakformulier maken: als projectmanager wil ik een formulier hebben waarin ik taakdetails kan invoeren, zoals titel, beschrijving, vervaldatum en toegewezen persoon
    • Sub-story 2: Taakgegevens valideren: als systeem wil ik de ingevoerde gegevens in het taakformulier valideren om ervoor te zorgen dat alle verplichte velden zijn ingevuld en dat de vervaldatum in de toekomst ligt
    • Sub-story 3: Taak opslaan: als projectmanager wil ik de taakgegevens opslaan in de database wanneer ik het taakformulier indien
    • Sub-story 4: Toegewezen taken bekijken: als teamlid wil ik de aan mij toegewezen taken bekijken, inclusief hun details en vervaldatums

3. Splitsen op basis van Workflow stappen

Als de user story een complexe workflow of proces vertegenwoordigt, verdeel deze dan in afzonderlijke stappen of stadia en behandel elke stap als een aparte user story.

  • Een voorbeeld: Als een gebruiker wil ik taken kunnen toevoegen aan mijn takenlijst, zodat ik mijn taken efficiënt kan beheren.
    • Aanmaken van de taak:
      • De gebruiker opent de taakbeheer-applicatie.
      • De gebruiker navigeert naar de “Takenlijst” sectie.
    • Toevoegen van een nieuwe taak:
      • De gebruiker klikt op de knop “Nieuwe taak toevoegen” of een vergelijkbare actie.
      • Het systeem toont een formulier voor het toevoegen van een nieuwe taak.
    • Invullen van taakdetails:
      • De gebruiker vult de naam van de taak in het daarvoor bestemde tekstveld in.
      • De gebruiker voegt een beschrijving toe aan de taak (optioneel).
    • Instellen van vervaldatum:
      • De gebruiker selecteert een datum en mogelijk een tijdstip uit een kalenderwidget voor de vervaldatum van de taak.
    • Toevoegen van labels en prioriteit:
      • De gebruiker kiest labels uit een vooraf gedefinieerde lijst om de taak te categoriseren (bijv. werk, thuis, persoonlijk).
      • De gebruiker selecteert de prioriteit van de taak uit een dropdown (bijv. laag, normaal, hoog).
    • Toewijzen van de taak:
      • De gebruiker kan ervoor kiezen om de taak aan zichzelf of aan een andere gebruiker toe te wijzen.

4. Splitsen op basis van Bedrijfs regels

Als de user story de implementatie van complexe bedrijfsregels inhoudt, kunt u elke regel opsplitsen in een afzonderlijke user story.

  • Een voorbeeld: Als magazijnbeheerder wil ik de voorraad van producten kunnen bijwerken zodat ik altijd een nauwkeurig beeld heb van beschikbare producten.
    • Sub-story 1: Als magazijnmedewerker wil ik voorraadwijzigingen kunnen invoeren zodat een manager ze kan autoriseren voordat ze worden doorgevoerd.
    • Sub-story 2: Als systeembeheerder wil ik drempelwaarden voor minimale voorraad kunnen instellen zodat automatische meldingen naar het inkoopteam worden verzonden wanneer de voorraad onder deze drempelwaarden daalt.
    • Sub-story 3: Als magazijnmedewerker wil ik een reden kunnen opgeven bij elke voorraadwijziging zodat er een audittrail van wijzigingen wordt bijgehouden.

5. Splitsen op basis van Data Entiteiten

Voor gebruikersverhalen met betrekking tot gegevensbeheer splitst u ze op op basis van de verschillende betrokken gegevensentiteiten (bijv. maken, bijwerken, verwijderen voor verschillende entiteiten).

  • Een voorbeeld: Als winkelbeheerder wil ik klantbestellingen kunnen beheren zodat ik de status van bestellingen kan bijhouden en klanten op de hoogte kan houden van de voortgang.
  • Data Entiteiten: Klant Bestelling Product
    • Sub-story 1: Als winkelbeheerder wil ik klantgegevens kunnen vastleggen en bijwerken zodat ik de bestellingen aan specifieke klanten kan koppelen en contact met hen kan opnemen indien nodig.
    • Sub-story 2: Als klant wil ik producten aan mijn winkelwagentje kunnen toevoegen en een bestelling kunnen plaatsen zodat ik mijn gewenste producten kan kopen.
    • Sub-story 3: Als winkelbeheerder wil ik de status van bestellingen kunnen bijhouden zodat ik klanten kan informeren over de voortgang van hun bestellingen.
    • Sub-story 4: Als winkelbeheerder wil ik de voorraad van producten kunnen bijwerken na elke bestelling zodat ik ervoor kan zorgen dat producten op voorraad blijven en voorkomen dat er meer producten worden verkocht dan beschikbaar zijn.

6. Splitsen op basis van Acceptatie Criteria

Bekijk de acceptatiecriteria van de user story. Als bepaalde criteria ingewikkeld lijken of aanzienlijke inspanning vergen, overweeg dan om ze op te splitsen in kleinere verhalen die elk aan een deel van de criteria voldoen.

  • Een voorbeeld: Als geregistreerde gebruiker wil ik mijn gebruikersprofiel kunnen bijwerken zodat ik mijn persoonlijke informatie actueel kan houden.
  • Acceptatiecriteria:
    • De gebruiker moet kunnen inloggen op zijn/haar account.
    • De gebruiker moet toegang hebben tot een “Profiel” sectie.
    • De gebruiker moet in staat zijn om zijn/haar naam en contactgegevens bij te werken.
    • De gebruiker moet zijn/haar profielfoto kunnen uploaden of wijzigen.
    • Na het bijwerken van het profiel moet de gebruiker een bevestigingsmelding ontvangen.
    • Sub-story 1: Als geregistreerde gebruiker Wil ik kunnen inloggen op mijn account Zodat ik toegang heb tot mijn persoonlijke gegevens.
    • Sub-story 2: Als geregistreerde gebruiker Wil ik toegang hebben tot een “Profiel” sectie Zodat ik mijn persoonlijke informatie kan beheren.
    • Sub-story 3: Als geregistreerde gebruiker Wil ik mijn naam en contactgegevens kunnen bijwerken Zodat mijn profiel up-to-date is.
    • Sub-story 4: Als geregistreerde gebruiker Wil ik mijn profielfoto kunnen uploaden of wijzigen Zodat mijn profiel visueel herkenbaar is.
    • Sub-story 5: Als geregistreerde gebruiker Wil ik een bevestigingsmelding ontvangen na het bijwerken van mijn profiel Zodat ik weet dat de wijzigingen succesvol zijn doorgevoerd.

7. Splitsen op basis van User Interface (UI) Elementen

Voor gebruikersverhalen met betrekking tot UI-ontwikkeling splitst u ze op op basis van verschillende UI-componenten of schermen.

  • Voorbeeld: Als online shopper Wil ik producten kunnen zoeken op de website Zodat ik gemakkelijk de items kan vinden die ik wil kopen.
  • UI-elementen: Zoekbalk Zoekknop Zoekresultatenpagina
    • Sub-story 1: Als online shopper Wil ik een zoekbalk kunnen zien op de website Zodat ik zoekopdrachten kan invoeren.
    • Sub-story 2: Als online shopper Wil ik op een zoekknop kunnen klikken na het invoeren van een zoekopdracht Zodat ik de zoekopdracht kan starten.
    • Sub-story 3: Als webontwikkelaar Wil ik een zoekresultatenpagina ontwerpen Zodat gebruikers een overzicht van relevante producten kunnen zien.
    • Sub-story 4: Als online shopper Wil ik zoekresultaten kunnen filteren op categorieën, prijs, beoordelingen, enz. Zodat ik gerichter kan zoeken naar specifieke producten.
    • Sub-story 5: Als webontwikkelaar Wil ik paginering toevoegen aan de zoekresultatenpagina Zodat gebruikers door meerdere pagina’s met resultaten kunnen bladeren.

8. Splitsen op basis Integratie met extern systeem

Als het gebruikersverhaal betrekking heeft op integratie met externe systemen of API’s, verdeel de integratietaken dan in afzonderlijke verhalen.

  • Voorbeeld: Als nieuwe gebruiker Wil ik me kunnen registreren op de website met behulp van mijn Google-account Zodat ik snel toegang heb tot de site zonder extra inloggegevens te hoeven onthouden.
    • Sub-story 1: Als ontwikkelaar Wil ik Google OAuth 2.0-authenticatie integreren in het registratieproces Zodat gebruikers zich kunnen aanmelden met hun Google-account.
    • Sub-story 2: Als ontwikkelaar Wil ik het gebruikersprofiel koppelen aan het Google-account na registratie Zodat de gebruiker in de toekomst kan inloggen met hun Google-account.
    • Sub-story 3: Als ontwikkelaar Wil ik het gebruikersprofiel kunnen bijwerken wanneer er wijzigingen zijn in het gekoppelde Google-account Zodat de profielgegevens gesynchroniseerd blijven.

9. Splitsen op basis van Non functionele requirements

Scheid niet-functionele vereisten (bijv. Prestaties, beveiliging, bruikbaarheid) in individuele gebruikersverhalen.

  • Voorbeeld: Als websitebezoeker Wil ik dat de website snel laadt Zodat ik direct toegang heb tot de inhoud zonder lange wachttijden.
  • Non-functional Requirements:
    • Paginalaadtijd mag niet langer zijn dan 2 seconden.
    • De website moet responsief zijn en goed werken op zowel desktop als mobiele apparaten.
    • De website moet voldoen aan de Web Content Accessibility Guidelines (WCAG) niveau AA voor toegankelijkheid.
  • Sub-story 1: Als ontwikkelaar Wil ik de paginalaadtijd van de website verbeteren Zodat gebruikers snel toegang hebben tot de inhoud.
  • Sub-story 2: Als ontwikkelaar Wil ik een responsief ontwerp implementeren voor de website Zodat de site goed wordt weergegeven op verschillende apparaten en schermformaten.
  • Sub-story 3: Als ontwikkelaar Wil ik ervoor zorgen dat de website voldoet aan de Web Content Accessibility Guidelines (WCAG) niveau AA Zodat de website toegankelijk is voor alle gebruikers, inclusief mensen met beperkingen.

10. Splitsen op basis van data entry

Deze opsplitsing van de user story in sub-stories richt zich op specifieke aspecten van data entry. Elke sub-story adresseert een specifiek aspect van het invoeren van gegevens en stelt het ontwikkelingsteam in staat om stapsgewijs aan de data entry-vereisten te voldoen.

  • Een voorbeeld: Als financieel medewerker Wil ik inkomende facturen kunnen registreren Zodat we een overzicht hebben van onze financiële verplichtingen en betalingen.
    • Sub-story 1: Als financieel medewerker Wil ik het factuurnummer kunnen invoeren bij het registreren van een nieuwe factuur Zodat we facturen kunnen identificeren en onderscheiden.
    • Sub-story 2: Als financieel medewerker Wil ik de factuurdatum kunnen vastleggen bij het registreren van een nieuwe factuur Zodat we kunnen bijhouden wanneer de financiële verplichting is ontstaan.
    • Sub-story 3: Als financieel medewerker Wil ik het bedrag van de factuur kunnen invoeren Zodat we het verschuldigde bedrag kunnen bijhouden en betalingen kunnen beheren.
    • Sub-story 4: Als financieel medewerker Wil ik de naam van de leverancier kunnen registreren bij het invoeren van een nieuwe factuur Zodat we facturen aan specifieke leveranciers kunnen koppelen.

11. Splitsen op basis van complexiteit

Deze opsplitsing van de user story in sub-stories richt zich op verschillende complexiteitsniveaus van de functionaliteit. Elke sub-story adresseert een specifiek aspect van de complexiteit en stelt het ontwikkelingsteam in staat om stapsgewijs aan de vereisten te voldoen, waarbij ze eerst basisfunctionaliteit implementeren en geleidelijk meer geavanceerde functies toevoegen.

  • Een voorbeeld: Als websitebezoeker Wil ik een verbeterde zoekfunctionaliteit op de website Zodat ik gemakkelijk relevante producten kan vinden.
  • Complexiteitsniveaus:
    • Basiszoekfunctionaliteit zonder filters
    • Geavanceerde zoekfilters (prijs, categorie, beoordelingen)
    • Zoekalgoritme met aanbevelingssysteem
  • Sub-story 1: Als ontwikkelaar Wil ik een basiszoekfunctionaliteit implementeren op de website Zodat gebruikers zoekopdrachten kunnen uitvoeren.
  • Sub-story 2: Als ontwikkelaar Wil ik geavanceerde zoekfilters toevoegen aan de zoekfunctionaliteit Zodat gebruikers hun zoekopdrachten kunnen verfijnen.
  • Sub-story 3: Als ontwikkelaar Wil ik gebruikersvoorkeuren en zoekgeschiedenis kunnen volgen Zodat het zoekalgoritme zoekresultaten kan personaliseren.
  • Sub-story 4: Als ontwikkelaar Wil ik een aanbevelingssysteem integreren in de zoekresultatenZodat gebruikers relevante producten kunnen ontdekken op basis van hun voorkeuren en gedrag.

12. Splitsen op basis van browser/platform 

Deze opsplitsing van de user story in sub-stories richt zich op het testen en optimaliseren van de website voor verschillende browsers en platforms. Elke sub-story adresseert een specifiek browser / platform en stelt het ontwikkelingsteam in staat om stapsgewijs aan de compatibiliteitsvereisten te voldoen.

  • Een voorbeeld: Als websitebezoeker Wil ik dat de website correct wordt weergegeven en goed functioneert op verschillende browsers en apparaten Zodat ik een consistente en gebruiksvriendelijke ervaring heb, ongeacht het platform dat ik gebruik.
    • Sub-story 1: Als ontwikkelaar Wil ik de website testen en optimaliseren voor compatibiliteit met Google Chrome op desktop Zodat gebruikers een foutloze ervaring hebben bij het gebruik van deze populaire browser.
    • Sub-story 2: Als ontwikkelaar Wil ik de website testen en optimaliseren voor compatibiliteit met Safari op iOS-apparaten Zodat gebruikers op iPhones en iPads een soepele en probleemloze ervaring hebben.
    • Sub-story 3: Als ontwikkelaar Wil ik de website testen en optimaliseren voor compatibiliteit met Firefox op desktop Zodat gebruikers die Firefox gebruiken dezelfde kwalitatieve ervaring hebben als bij andere browsers.
    • Sub-story 4: Als ontwikkelaar Wil ik de website testen en optimaliseren voor compatibiliteit met Microsoft Edge op desktop Zodat gebruikers op Windows-computers een goede gebruikerservaring hebben.

Similar Posts