Eén van de eerste opdrachten die ik als developer bij Vollan heb uitgevoerd is het ontwikkelen van de agendamodule voor onze businesssoftware Clientbox. Daarmee wilden we direct inzicht in onze agenda en die van collega’s creëren, zonder steeds te hoeven switchen tussen Outlook en Clientbox. Ook zouden we zo makkelijk opdrachten kunnen inplannen of een afspraak aan een opdracht koppelen.
We hebben vooraf goed nagedacht en kwamen uiteindelijk samen tot een technische oplossing: we gaan in real-time de Outlook of Google-API uitlezen! Zo hoeven we de data niet dubbel op te slaan en allerlei agendafunctionaliteiten na te bouwen. De ideale oplossing, zo leek het.
De uitvoering
Alle logica omtrent evenementen zit al in Outlook, daar hoeven we dus niks mee te doen. In plaats daarvan, gaan we de gegevens uit Outlook (en Google) in realtime uitlezen en schrijven. Zo kunnen we de meeste tijd besteden aan het ontwikkelen van waarde toevoegende functionaliteiten
zoals het koppelen van een opdracht. Zo gezegd, zo gedaan. Na een aantal weken was de agendamodule klaar voor de eerste interne test.
Testen
Alles lijkt te kloppen en de basisfunctionaliteiten werken: je kan je evenementen in Clientbox bekijken, bewerken en nieuwe toevoegen. En al die wijzigingen zie je direct terug in Outlook.
Nu kan het echte werk beginnen: het bouwen van functionaliteiten. Maar al snel lopen we aan tegen een aantal serieuze problemen met de real-timekoppeling:
- Je kan geen werkzaamheden plannen voor een medewerker die zijn Outlook- of Google-agenda nog niet heeft gekoppeld
of er helemaal geen een heeft. - We moeten de API ontzettend vaak uitlezen, maar daar zitten limieten op. Overschrijden wij die? Dan kan (tijdelijk) niemand de agenda in Clientbox gebruiken.
- colortext); font-family: var(
fontFamily),sans-serif; letter-spacing: -0.03em; background: var(
colorWhite);”>Wat als Google of Outlook een storing heeft? Of de API wijzigt? Met deze oplossing zijn wij erg afhankelijk.
colortext); font-family: var(
fontFamily),sans-serif; letter-spacing: -0.03em; background: var(
colorWhite);”>Het wordt duidelijk dat deze opzet niet houdbaar is.