Van Excel-scan naar webapp: Assessment tool

Een aanbieder van software voor contractmanagement mat bij klanten en op events hoe volwassen hun contractmanagement was. Dat deden ze met een scan in Excel, VBA en een tekstverwerker. Wij bouwden een webapplicatie die het invullen, scoren en rapporteren op één plek doet.

Van een Excel-bestand naar een webapp met invulscherm en rapport

Illustratief ontwerp

Klant
Anoniem
Sector
Software voor contractmanagement
Opdracht
Losstaande assessment tool, opgeleverd als eerste werkende versie (MVP)
Looptijd
Circa twee maanden
Onze rol
Productdefinitie, planning, aansturing van de ontwikkelaars, oplevering

De uitdaging

De scan was een Excel-werkboek met tabbladen voor het invullen, de resultaten, de vragenbibliotheek, keuzelijsten en teksten. Het werkte, maar het was foutgevoelig, bewerkelijk en tijdrovend. Antwoorden, scores en rapporttekst liepen via verschillende bestanden en programma's. Elke handmatige stap was een kans op een fout. De klant wilde een losstaande tool die de scan vervangt en die iemand tijdens een klantgesprek of op een event kan gebruiken.

Onze aanpak

We begonnen met de vragen, niet met de techniek. Samen met de klant liepen we alle openstaande punten door en gingen we een checklist van 88 functionaliteiten af. Bij elk punt was de vraag: heeft een eerste versie dit echt nodig?

Het use-case document beschreef een breed platform, met onder meer gebruikersaccounts met MFA voor de invullers, dashboards en uitgebreide exportformaten. In overleg kozen we voor een eerste werkende versie (MVP) met de kern.

Uit die gesprekken kwamen een requirements-document, drie procesflows (beheerder, invuller, rapportgeneratie) en een inschatting in werkdagen. Het scherm-ontwerp maakten we als klikbaar prototype in de huisstijl van de klant, zodat het ontwikkelteam niet hoefde te gokken hoe het eruit moest zien.

De oplossing

De beheerder maakt een assessment aan en deelt één link met de klant. Die link is de enige toegang voor de invuller. Er is geen account en geen wachtwoord, want een klant vult de scan meestal één keer in.

De invuller doorloopt een registratieformulier van negen velden en daarna de vragen per hoofdstuk. Tussentijds opslaan kan, zodat een gesprek onderbroken en later hervat kan worden.

Na afloop genereert de beheerder een PDF-rapport. Dat toont per vraag het gekozen antwoord, de score, het scorelabel en het advies, plus twee grafieken: de score per hoofdstuk en de totaalscore. Ziet de beheerder een tekstfout of wil hij een advies aanscherpen, dan past hij de tekst aan en genereert hij het rapport opnieuw. Het versturen naar de klant doet hij zelf.

Bewust simpel gebouwd

De applicatie draait op één server van de klant, in drie onderdelen: een Next.js-applicatie, een PostgreSQL-database en een reverse proxy, samengebracht met Docker Compose. De PDF-rapporten worden in de applicatie zelf gemaakt en de grafieken zijn statische SVG's.

Er is geen aparte mailservice, geen authenticatie-framework en geen managed cloud-laag. Een handvol beheerders heeft dat niet nodig. Elk onderdeel dat we niet bouwen, hoeft de klant later ook niet te onderhouden.

Resultaat

Er was vooraf geen vaste KPI afgesproken, dus we drukken het resultaat niet uit in een percentage of aantal uren. Invullen, scoren en rapporteren gebeurt nu in één applicatie, en het rapport wordt uit de antwoorden gegenereerd in plaats van met de hand samengesteld. De eerste werkende versie is opgeleverd. Omdat de klant de tool zelf host, kan de scan in meerdere landen worden ingezet.

Wat we meenemen

Een goede scope is meestal kleiner dan de eerste wensenlijst. Doordat we vooraf per functie hebben besloten wat erin hoort en wat niet, lagen planning en opleverdatum vanaf het begin vast. Wat nu niet in de eerste versie zit, is niet vergeten. Het staat op de lijst voor een volgende stap, als de klant ziet hoe de tool in de praktijk wordt gebruikt.

Een proces dat in Excel is vastgelopen?

Veel bedrijven hebben zo'n werkboek dat is uitgegroeid tot een systeem. Als dat bij jou speelt, kijken we graag mee naar wat een eerste werkende versie moet kunnen.