📋 Requirements

← Terug naar Plan & Track

Gestructureerd identificeren, uitvragen en vastleggen van requirements binnen Dataverse en Dynamics 365 projecten.


📖 Introductie

Requirements vormen de basis van iedere oplossing binnen het Dataverse platform.

Een requirement beschrijft:

Goede requirements zijn essentieel om:

Requirements worden verder uitgewerkt via use cases en user stories en vormen de input voor ontwerp, backlog en teststrategie.

Requirements vormen de centrale brug tussen businessbehoeften, architectuur en implementatie binnen het ALM-proces.


Wat zijn requirements?

Requirements beschrijven de behoeften, verwachtingen en randvoorwaarden van stakeholders.

We onderscheiden de volgende typen requirements:

🔹 Business requirements

Beschrijven het doel van de organisatie.

👉 Waarom bestaat deze oplossing?


🔹 Functional requirements

Beschrijven wat het systeem moet doen.

👉 Gedrag en functionaliteit van het systeem


🔹 Non-functional requirements (NFR’s)

Beschrijven de kwaliteitsaspecten van het systeem.

👉 Hoe goed moet het systeem functioneren?

Voorbeelden: Performance, Security, Availability


🔹 Constraints

Beschrijven de beperkingen waarbinnen de oplossing moet worden gerealiseerd.

👉 Welke randvoorwaarden mogen niet worden overschreden?

Voorbeelden: Budget, Wet- en regelgeving, Technologie


🔹 Assumptions

Beschrijven aannames die als waar worden beschouwd totdat ze zijn gevalideerd.

👉 Welke uitgangspunten nemen we voorlopig aan?

Voorbeelden: Externe systemen zijn beschikbaar, Gebruikers hebben internet, Data is compleet


🔹 Design decisions (geen requirements)

Beschrijven de gekozen technische of architecturale oplossing.

👉 Hoe wordt de oplossing gerealiseerd?

Voorbeelden: Gebruik van React, PostgreSQL, Microservices

⚠️ Design decisions zijn geen requirements, maar het resultaat van analyse en architectuur.


Kwaliteit en architectuur (FURPS+)

FURPS+ helpt bij het structureren van kwaliteitsaspecten.

FURPS

Uitbreiding

👉 FURPS beschrijft kwaliteit, maar bepaalt niet de oplossing.


Quality Attributes (Architectuurdrivers)

Quality Attributes vertalen kwaliteitsbehoeften naar architectuurimpact.

👉 Functional requirements bepalen wat er gebouwd wordt
👉 Quality Attributes bepalen hoe het ontworpen moet worden


🔹 Waarom belangrijk


🔹 Belangrijkste Quality Attributes

🔹 Performance

👉 Impact: - plugin vs async - indexing - caching


🔹 Security

👉 Impact: - datatoegang - security model


🔹 Availability

👉 Impact: - deployment strategie - resilience patterns


🔹 Scalability

👉 Impact: - datamodel - async verwerking - archiving


🔹 Maintainability

👉 Impact: - solution design - code structuur


🔹 Observability

👉 Impact: - Application Insights - error handling


🔹 Voorbeeld

❌ Niet goed: - Het systeem moet snel zijn

✅ Wel goed: - API response < 500ms voor 95% van de requests


🔹 Belangrijk onderscheid

Type Vraag
Business requirement Waarom bestaat dit?
Functional requirement Wat moet het doen?
Non-functional requirement Hoe goed moet het werken?
Quality attribute Hoe moet het ontworpen worden?
Design decision Hoe wordt het gebouwd?

Van requirements naar implementatie

							
Requirement
   ↓
Use Case
   ↓
User Story
   ↓
Implementatie

						

👉 Quality Attributes beïnvloeden de stap tussen analyse en ontwerp


🔹 Mapping: requirements → implementatie

Quality Attributes → ontwerpkeuzes

Attribute Impact Richting
Performance latency async, indexing
Security access Dataverse security roles
Availability uptime deployment & resilience
Scalability groei async + archiving
Maintainability beheer solution design
Observability monitoring logging & telemetry

🔹 Richtinggevende ontwerpkeuzes


Use cases

Use cases beschrijven processen en scenario’s.

👉 Zie Use Cases pagina


User stories

Als gebruiker
wil ik
zodat

👉 Zie User Story pagina

Acceptatiecriteria


Samenhang

Onderdeel Doel
Requirement analyse
Quality Attribute architectuur
Use Case proces
User Story implementatie

Praktische aanpak (consultant werkwijze)

🔹Voorbereiding

🔹Elicitatie

🔹Analyse

🔹Vastleggen in backlog

🔹Validatie

🔹Iteratie


SMART formuleren

Best practices


Veelgemaakte fouten