process improvementsoftware requirementsbusiness process mappinguser storiescustom softwareFileMakerrequirements engineeringprocess observationstakeholder validationMoSCoW prioritization

Hoe je procesobservaties omzet in softwarevereisten

Jeroen·

Een proces bekijken is niet hetzelfde als het begrijpen. Leer hoe u ruwe observaties omzet in heldere softwarevereisten die het juiste bedrijfsprobleem oplossen.

U hebt het proces gevolgd. U hebt aantekeningen gemaakt. U hebt ze overhandigd aan een ontwikkelaar. En de software die drie maanden later terugkwam, loste het verkeerde probleem op — of loste het juiste probleem op op een manier die niemand daadwerkelijk gebruikt. Dit gat tussen observatie en requirement is een van de meest voorkomende en duurste fouten bij maatwerkprojecten. Dit artikel beschrijft een praktische methode om dat gat stap voor stap te dichten.

Waarom schiet observatie alleen tekort als requirement?

Een proces observeren voelt als onderzoek doen. Dat is het ook — maar ruwe observatie legt vast wat mensen doen, niet waarom ze het doen, wat er misgaat, of wat de organisatie daadwerkelijk moet bereiken. Een magazijnmedewerker print een picklijst, loopt door het magazijn en streept artikelen handmatig af. Dat observeert u. U schrijft: "Systeem moet picklijsten kunnen printen." Maar het echte probleem is dat de lijst vier keer per dag opnieuw wordt geprint omdat de voorraadniveaus onbetrouwbaar zijn. De requirement die u nodig had, was: "Systeem moet realtime beschikbaarheid tonen voordat een picklijst wordt aangemaakt."

De afstand tussen die twee requirements is de afstand tussen een mislukt project en een geslaagd project.

observer watching worker, gap between notes and software screen

Stap 1 — Observeer met intentie, niet alleen met aanwezigheid

Voordat u iets kunt in kaart brengen, hebt u observaties nodig die het waard zijn om te mappen. Dat betekent dat u het proces ingaat met een gestructureerde blik, niet alleen een notitieblok.

Wat u tijdens de observatie vastlegt:

  • Trigger: Wat start dit proces? Een e-mail van een klant, een binnenkomende order, een agendavermelding?
  • Stappen: Wat doet de persoon daadwerkelijk, in volgorde?
  • Beslismomenten: Waar moet diegene een oordeel vellen? ("Als de order boven de €5.000 ligt, overleg ik eerst met de manager.")
  • Overdrachten: Waar verschuift de verantwoordelijkheid van de ene persoon of het ene systeem naar het andere?
  • Workarounds: Wat doen ze dat ze eigenlijk niet zouden moeten hoeven doen? Post-its, schaduwspreadsheets, kopiëren en plakken tussen systemen?
  • Pijnmomenten: Waar zuchten ze, wachten ze, of zeggen ze "dit is irritant"?
  • Uitzonderingen: Wat gebeurt er als er iets misgaat — een late levering, een dubbele invoer, een ontbrekend document?

Workarounds en uitzonderingen zijn de waardevolste observaties die u kunt maken, en ze worden het vaakst overgeslagen. Een workaround is een procesfout die genormaliseerd is. Als uw nieuwe software die niet elimineert, hebt u een dure replica van het oude probleem gebouwd.

Praktische tip: Schaduw hetzelfde proces bij twee verschillende mensen die dezelfde functie uitvoeren. U zult bijna altijd ontdekken dat ze het anders aanpakken. Dat verschil is een requirement die voor het oprapen ligt.

Stap 2 — Breng het proces in kaart voordat u aan requirements begint

Zodra u uw ruwe observaties hebt, weersta dan de verleiding om direct naar functieoverzichten te springen. Eerst een proceskaart opstellen dwingt u het systeem te begrijpen voordat u onderdelen ervan begint te herontwerpen.

U hebt hiervoor geen formele BPMN-tool nodig. Een whiteboard, sticky notes of een eenvoudig swimlane-diagram in Miro of Lucidchart volstaat. Waar het om gaat, is dat de kaart vier vragen beantwoordt:

  1. Wie is betrokken bij elke stap (rollen, geen namen)?
  2. Wat gebeurt er bij elke stap?
  3. Waar komt informatie vandaan en naartoe?
  4. Wanneer stagneert het proces, keert het terug, of splitst het zich?

Een swimlane-diagram is hier bijzonder effectief omdat het overdrachten zichtbaar maakt. Een order binnenkomt → Verkoop voert die in in FileMaker → Finance voert die handmatig opnieuw in in Exact Online → Magazijn ontvangt een pdf per e-mail → Magazijn maakt een picklijst in een spreadsheet. Vier lanes, drie overdrachten, twee handmatige herinvoer-momenten. Die kaart vertelt u meer over software-requirements dan welk interview dan ook.

swim-lane diagram showing four roles with handoffs and manual steps highlighted

Waar u op let in uw kaart:

  • Stappen waarbij dezelfde gegevens meer dan eens worden aangeraakt (duplicatie = kandidaat voor automatisering)
  • Overdrachten die systemen overstijgen (kandidaat voor API-integratie)
  • Beslismomenten zonder gedocumenteerde logica (bedrijfsregel die gecodificeerd moet worden)
  • Stappen die alleen bestaan om een ontbrekende functie elders te compenseren (kandidaat voor eliminatie)

Zodra u een gevalideerde kaart hebt — gevalideerd betekent dat de mensen die het proces uitvoeren hebben bevestigd dat het de werkelijkheid weerspiegelt — bent u klaar om requirements te schrijven.

Stap 3 — Vertaal observaties naar user stories

User stories zijn niet alleen een Agile-formaliteit. Het zijn een precisiemiddel dat een requirement dwingt de persoon, de actie en de reden in één zin te benoemen — precies wat vage requirements overslaan.

De formule: "Als [rol] wil ik [iets doen], zodat [bedrijfsresultaat]."

Vergelijk deze twee manieren om dezelfde requirement te schrijven:

  • Vaag: "Het systeem moet voorraadniveaus tonen."
  • User story: "Als magazijnmanager wil ik realtime voorraadbeschikbaarheid zien voordat ik een picklijst bevestig, zodat ik pickers niet meer stuur naar locaties die al leeg zijn."

De user story-versie vertelt een ontwikkelaar welke gegevens nodig zijn, wanneer ze nodig zijn, wie ze nodig heeft en welke fout ermee wordt voorkomen. De vage versie vertelt een ontwikkelaar bijna niets nuttigs.

Regels voor het schrijven van bruikbare user stories:

  1. Eén story = één behoefte. Stop niet twee uitkomsten in één story.
  2. De "zodat"-clausule moet een bedrijfsresultaat benoemen, geen systeemgedrag. "Zodat de database wordt bijgewerkt" is geen bedrijfsresultaat. "Zodat Finance ordergegevens niet langer handmatig herinvoert" wel.
  3. Schrijf stories vanuit het perspectief van de gebruiker die het probleem heeft, niet van de ontwikkelaar die het gaat oplossen.
  4. Als u de "zodat"-clausule niet kunt schrijven, ga dan terug naar uw proceskaart — u hebt de behoefte nog niet begrepen.

Van observatie naar story — een uitgewerkt voorbeeld:

Observatie: "Elke ochtend exporteert de logistiek coördinator een rapport uit FileMaker, opent het in Excel, filtert het handmatig en mailt een samenvatting naar drie afdelingshoofden."

Proceskaart-inzicht: Deze export-filter-e-mailketen is een workaround voor het ontbreken van geautomatiseerde rapportage met rolgebaseerde toegang.

User story: "Als afdelingshoofd wil ik automatisch een gefilterde dagelijkse samenvatting ontvangen van openstaande orders die relevant zijn voor mijn afdeling, zodat ik niet langer afhankelijk ben van de logistiek coördinator en mijn dag vanaf het begin kan plannen."

Die story is nu een uitvoerbare software-requirement.

Stap 4 — Prioriteer requirements voordat u de scope vastlegt

Een volledige lijst van user stories is geen projectscope. Het is een backlog. Het verschil is enorm: een backlog vertelt u alles wat gebouwd zou kunnen worden; scope vertelt u wat als eerste gebouwd wordt, binnen een realistisch budget en tijdlijn.

Het meest praktische prioriteringsraamwerk voor zakelijke softwareprojecten is MoSCoW:

  • Must have — het proces breekt hieronder. Zonder dit slaagt de software niet in haar kernfunctie.
  • Should have — belangrijk, maar de organisatie kan tijdelijk overleven op een workaround.
  • Could have — nice-to-have; voegt waarde toe maar is niet gekoppeld aan het kernprobleem.
  • Won't have (this time) — expliciet buiten scope voor nu. Dit opschrijven voorkomt scope creep.

Een veelgemaakte fout is dat stakeholders alles als "Must have" bestempelen. Stuur dat terug met een concrete vraag: "Als we live gaan zonder deze functie, kan de organisatie dan nog wel functioneren?" Als het antwoord ja is — ook al is dat een ongemakkelijk ja — dan is het geen Must.

Prioriterings-checklist:

  • Elke user story heeft een MoSCoW-categorie gekregen
  • Niet meer dan 40% van de stories is gelabeld als "Must have"
  • Elke "Must have" is getoetst aan de vraag: "Breekt de organisatie zonder dit?"
  • "Won't have"-items zijn gedocumenteerd, niet verwijderd — ze voeden de volgende ontwikkelfase
  • Prioriteit is bepaald door de business owner, niet de ontwikkelaar

Stap 5 — Valideer met stakeholders voordat de ontwikkeling begint

Validatie is de stap die de meeste projecten overslaan — en de reden waarom de meeste projecten software opleveren die niet aansluit bij de werkelijkheid. Het gat tussen wat een stakeholder zei in een vergadering en wat ze bedoelden bij de aftekening is groot genoeg om een heel project in te verliezen.

Valideren betekent niet een document opsturen en om een handtekening vragen. Het betekent de requirements doornemen met de mensen die het systeem daadwerkelijk gaan gebruiken en hen vragen om in hun eigen woorden te bevestigen wat de software voor hen gaat doen.

Effectieve validatietechnieken:

  • Walkthrough-sessies: Presenteer elke user story mondeling. Vraag: "Beschrijft dit het probleem dat u hebt? Lost de uitkomst die we hebben beschreven het op?"
  • Prototype-review: Zelfs een low-fidelity wireframe of een klikbaar mockup brengt misverstanden aan het licht die een schriftelijke requirement nooit zou blootleggen. Laat zien, beschrijf niet.
  • Uitzonderingen testen: Neem uw meest complexe uitzonderingsscenario's uit de observatiefase en vraag: "Hoe moet het systeem zich gedragen als dit gebeurt?"
  • Aftekening per rol: Zorg voor expliciete bevestiging van elke rol die in een user story wordt genoemd — niet alleen van de projectsponsor.

Een praktische techniek die goed werkt: lees de "zodat"-clausule van elke user story voor aan de stakeholder en vraag: "Is dit nog steeds de echte reden waarom u dit nodig hebt?" Na weken van requirements schrijven verschuiven bedrijfsprioriteiten. Een story die in week één is geschreven, weerspiegelt mogelijk niet meer de werkelijke behoefte in week vier. Dat ontdekken vóór de ontwikkeling kost niets. Het ontdekken erna kost alles.

team reviewing user stories on a whiteboard before development sprint starts

Hoe weet u of uw requirements klaar zijn voor ontwikkeling?

Voordat u een requirements-document overhandigt aan een ontwikkelaar — intern of extern — doorloopt u deze gereedheids-checklist:

Requirements gereedheids-checklist:

  • Elke requirement is geschreven als een user story met een benoemde rol, actie en bedrijfsresultaat
  • Alle tijdens de observatie geïdentificeerde workarounds worden door minstens één story aangepakt
  • De proceskaart is bevestigd als accuraat door de mensen die het werk uitvoeren
  • MoSCoW-prioriteiten zijn toegewezen en afgestemd met de business owner
  • Edge cases en uitzonderingen zijn gedocumenteerd, ook als ze vooralsnog "Won't have" zijn
  • Minstens één stakeholder per gebruikersrol heeft de stories gevalideerd die hen betreffen
  • Er zijn geen stories waarvan de "zodat"-clausule een systeemgedrag beschrijft in plaats van een bedrijfsresultaat
  • De ontwikkelaar heeft de requirements gelezen en bevestigd dat ze ondubbelzinnig zijn

Als meer dan twee vakjes niet zijn aangevinkt, zijn de requirements niet klaar. Ze toch doorsturen naar ontwikkeling is niet sneller — het is een uitgesteld probleem dat op het slechtst mogelijke moment terugkomt.

Veelgestelde vragen

Hoe lang duurt procesobservatie voordat u kunt beginnen met het schrijven van requirements? Reken voor één end-to-end bedrijfsproces op één tot drie dagen gestructureerde observatie en shadowing, gevolgd door één tot twee dagen proceskaart opstellen. Deze fase overslaan om tijd te besparen is de meest betrouwbare manier om een softwareproject te creëren dat opnieuw gebouwd moet worden.

Wat als de mensen die het proces uitvoeren het er niet over eens kunnen worden hoe het werkt? Die onenigheid is zelf een requirement. De software moet een consistent proces afdwingen — maar u kunt geen proces automatiseren waarover nog geen overeenstemming bestaat. Breng het conflict aan het licht in de kaartfase, los het eerst op bedrijfsniveau op, en schrijf daarna de requirement.

Moeten requirements van de organisatie komen of van de ontwikkelaar? Requirements moeten van de organisatie komen. De taak van de ontwikkelaar is om requirements te toetsen op technische haalbaarheid, niet om te bepalen wat de organisatie nodig heeft. Een ontwikkelaar die requirements schrijft zonder diepgaande bedrijfsinput, gokt — en de software zal dat laten zien.

Hoe gedetailleerd moet een user story zijn? Gedetailleerd genoeg dat een ontwikkelaar het kan bouwen zonder een verduidelijkingsvraag te hoeven stellen. Als een story meer dan twee verduidelijkingsvragen genereert tijdens een kick-off, moet die worden herschreven voordat de ontwikkeling begint.

Wat is het verschil tussen een requirement en een feature request? Een requirement lost een gedocumenteerd, geobserveerd bedrijfsprobleem op. Een feature request is een idee dat al dan niet iets oplost. Als u een feature request niet kunt herleiden naar een specifieke stap in uw proceskaart en een specifiek pijnmoment in uw observaties, behandel die dan op zijn best als "Could have" totdat u dat wel kunt.


De methode die hier beschreven wordt — van gestructureerde observatie tot stakeholder-gevalideerde user stories — is precies het soort voorwerk dat maatwerkprojecten onderscheidt die leveren van projecten die teleurstellen. Bij Loggix is deze procesanalysefase het startpunt van elk project, of de uitkomst nu een op maat gemaakte FileMaker-oplossing is, een maatwerk webapplicatie, een API-integratie tussen bedrijfssystemen, of AI-tooling ingebed in een bestaande workflow. Als uw team observaties heeft over een proces dat moet veranderen maar niet zeker weet hoe die om te zetten zijn in iets dat een ontwikkelaar kan bouwen, is dat een gesprek dat de moeite waard is.