Het probleem
We bouwden een Slack-plugin om sneller tijd te schrijven. Het simpele probleem: context switchen tussen je werk en tijdschrijfsoftware kost tijd en energie. Plus je vergeet de kleine dingen.
De klassieke valkuil: je bent bezig met een project, werkt 20 minuten aan feedback op een infographic, duikt meteen in de volgende taak. Eind van de dag moet je reconstrueren wat je deed. Meestal vergeet je de kleine dingen. Die 15 minuten research tussen twee meetings. De 10 minuten die je aan een email zat.
Het tijdschrijfsysteem open hebben naast je werk helpt niet. Je bent bezig met iets, klikt naar het tijdschrijfsysteem, zoekt het project op, klikt door drie schermen, vult alles in. Dertig seconden later ben je klaar en moet je weer bedenken waar je was.
We hadden al tijdschrijfsoftware met een goede API. We werkten al in Slack. Logische stap: die twee verbinden.
De oplossing
/tijd "feedback verwerken in infographic over escalatieclausule - arbitragezaak X, client Y, 10 minuten"
Vijf seconden. Entry staat in het systeem. Je blijft in Slack waar je toch al was.
Eerste poging: speech-to-text
Voor we de getypte versie maakten, probeerden we speech-to-text. Leek logisch. Gewoon inspreken tijdens het werk, geen typen nodig.
Bleek in de praktijk langzamer dan typen. Je moet nadenken over wat je zegt, het systeem maakt fouten, je moet corrigeren. Vergelijkbaar met WhatsApp voice messages - soms handig, meestal niet.
Typen is sneller als je toch al aan het typen bent. En je bent aan het typen als je in Slack zit.
Hoe het werkt
De plugin draait lokaal op onze server. Natural Language Processing vertaalt het getypte zinnetje naar gestructureerde data.
Input:
/tijd "feedback verwerken in infographic over escalatieclausule - arbitragezaak X, client Y, 10 minuten"
Output naar het tijdschrijfsysteem:
- Project: Arbitragezaak X
- Client: Client Y
- Beschrijving: “Feedback verwerken in infographic over escalatieclausule”
- Tijd: 10 minuten
Als je een nieuwe entry wil schrijven op hetzelfde dossier:
/tijd "zelfde project, draft timeline gemaakt, 25 minuten"
Het systeem snapt wat je bedoelt. Gebruikt het laatst actieve project.
Nieuw dossier aanmaken:
/tijd "nieuw dossier, klant ABC, project contractreview, eerste doorloop SPA, 45 minuten"
Het systeem maakt het dossier aan en logt de tijd.
De narrative enhancer
Eerste versie van de beschrijvings-AI produceerde te formele teksten. “Email client” werd “correspondentie voeren betreffende urgent juridisch advies aangaande complexe contractuele materie.”
Niemand schrijft zo. In ieder geval, wij niet.
We bouwden een leersysteem in. Handmatig verbeterde narratives worden trainingdata. Als je de AI-gegenereerde beschrijving aanpast naar je eigen stijl, onthoudt het systeem dat.
Na drie maanden gebruik:
- “Email client over wijziging in artikel 5” blijft “Email client over wijziging in artikel 5”
- “Snel doorlezen concept” wordt niet “Grondig bestuderen van conceptdocumentatie”
- Formele juridische termen blijven waar ze relevant zijn, verdwijnen waar ze dat niet zijn
Het systeem leert wat “goed genoeg” betekent voor ons team. Niet perfect, goed genoeg.
Wat we niet verwachtten
Mensen gebruiken het anders dan we dachten.
Retrospectief tijdschrijven: We bouwden het voor real-time logging. Blijkt dat mensen het vooral eind van de dag gebruiken om snel door hun Slack-geschiedenis te gaan. Werkt prima, was niet het plan.
Batch entries: Sommigen typen vijf entries achter elkaar. Het systeem moet onthouden wat “vorig project” betekent als je drie projecten door elkaar gebruikt.
Vage tijdsindicaties: “Ongeveer een halfuur” moet het systeem vertalen naar 30 minuten. “Heel de ochtend” naar een inschatting op basis van de tijdsperiode. Werkt redelijk.
Project aliases: Mensen typen niet de volledige projectnaam. “Arbitrage X” wordt “arb X” of “die arbitrage van vorige week”. Het systeem moet slim kunnen matchen.
Resultaten
Na zes maanden gebruik:
- 847 entries via de Slack-plugin
- Gemiddeld 4 entries per persoon per dag
- Gemiddelde input tijd: 8 seconden (inclusief typen)