Home · Fasen · Rollen · Producten · Best practices · Referenties · Nieuws & release notes · Begrippen

Planning
Prioriteren van de use cases

Bij de start van iedere iteratie wordt bepaald welke functionele requirements, in de vorm van use cases, op dat moment de grootste business value opleveren. Hiervoor worden alle nog niet gerealiseerde use cases geprioriteerd. Wellicht zijn in een vorige iteratie niet alle daarin voorziene requirements gerealiseerd. Ook de hierbij horende use cases worden weer meegenomen in het stellen van de prioriteiten.

Op basis van deze prioriteiten wordt steeds de iteratie ingedeeld, waarbij een hernieuwde schatting bepalend is voor de hoeveelheid requirements wordt gerealiseerd in de huidige iteratie.

Doel

Het vaststellen van de in het eerstvolgende increment te realiseren functionaliteit in de vorm van bedrijfsprocessen en use cases.

Stappen

  1. Vaststellen prioriteiten use cases
    Beleg een workshop. Gebruik een lijst met nog niet gerealiseerde use cases als uitgangspunt. Voorzie deze use cases van een prioriteit. Hanteer hierbij MoSCoW. Tijdens de komende iteratie worden de belangrijkste use cases gerealiseerd op volgorde van prioriteit. De belangrijkste resterende requirements voor de applicatie worden zo steeds als eerste gerealiseerd.

  2. Inventariseren afhankelijkheden use cases
    Stel de afhankelijkheden vast tussen use cases. Vaak heeft het weinig zin om een secundaire use case te realiseren zonder dat de bijbehorende primaire use case is gerealiseerd. Stel de prioriteiten bij onder invloed van dergelijke afhankelijkheden. Geef afhankelijke use cases bijvoorbeeld een lagere prioriteit.

  3. Onderzoeken afhankelijkheden teams en projecten
    Onderzoek of er afhankelijkheden zijn met andere projecten. Vooral bij de ontwikkeling van componenten komen dergelijke afhankelijkheden nogal eens voor. Indien er dergelijke afhankelijkheden bestaan, stel vast of deze van invloed zijn op de prioritering van de use cases.
    Als er met meerdere teams wordt gewerkt in het project is het belangrijk om de afhankelijkheden tussen de teams in de huidige iteratie te inventariseren. Dit beïnvloedt mogelijk de verdeling van de use cases over de teams.

  4. Vaststellen te realiseren use cases
    Stel vast welke use cases worden gerealiseerd in de huidige iteratie. Dit zijn de use cases met de hoogste prioriteit. Hoeveel use cases er worden gerealiseerd is afhankelijk van de timebox voor de iteratie en van de complexiteit van de use cases. Dit is terug te vinden in de schatting.
    Als er teveel use cases zijn met gelijke, hoogste prioriteit, is het zaak om uit deze use cases toch de belangrijkste vast te stellen. Orden dan deze use cases op aflopende belangrijkheid. Realiseer de belangrijkste use cases in de komende iteratie, afhankelijk van de beschikbare tijd.
    Neem in het incrementplan op welke use cases worden gerealiseerd in de huidige iteratie.

Richtlijnen

Criteria
Bij het stellen van de prioriteiten van use cases gelden diverse criteria. Zo kan mogelijk hergebruik van een use case een rol spelen, vooral wanneer een ander team snel gebruik dient te maken van van de implementatie van deze use case. Ook kan een hoge prioriteit van een use case worden veroorzaakt door iets dat buiten het project wordt geïnitieerd, zoals het creëren van een interface voor een reeds bestaande component.

Werken in meerdere teams
In veel projecten wordt in iteraties parallel gewerkt door meerdere multidisciplinaire teams. Bij het vaststellen van de prioriteiten voor de use cases wordt bij voorkeur geen rekening gehouden met deze teams. Verdeel de te realiseren use cases pas over de teams nadat is vastgesteld welke use cases worden gerealiseerd. Het alternatief waarbij de prioriteiten per team (hier vaak met verantwoordelijk voor een deel van de applicatie) worden vastgesteld, levert vrijwel altijd een minder optimale verdeling van use cases.

Projectsponsor
Omdat het vaststellen van te realiseren use cases bepalend is voor het verloop van het project, verdient het aanbeveling om ook de projectsponsor voor de workshop uit te nodigen.

Deelsystemen?
Natuurlijk zijn er diverse wegen die naar Rome leiden. Wanneer er functioneel een duidelijke scheiding is, bijvoorbeeld qua geografische uitvoering, verdient het soms aanbeveling om deze te handhaven. Stel dan eerst de prioriteiten vast over de verschillende delen en prioriteer de use cases voor deze delen. Let wel: een dergelijke oplossing is vrijwel nooit optimaal. Dit is een projectrisico omdat het kan leiden tot het missen van requirements met een hoge prioriteit.

 [TASK035] Versie 2003Q2 Basic - ©1999-2006 Sander Hoogendoorn (aahoogendoorn@gmail.com), 1 juli 2003