
Inleiding
De meeste cases die we doen zijn vraaggestuurd. Er is een vraag/probleem in de organisatie, wij proberen er iets aan te doen. Deze keer hebben we echter iets gedaan wat we zelf al lange tijd wilden. Een blockchainapplicatie bouwen met Outsystems. Deels voor de uitdaging, maar vooral omdat wij denken dat blockchain in de toekomst de standaard gaat worden voor sommige toepassingen.
Werkwijze
We wilden natuurlijk niet zomaar een blockchainapplicatie bouwen, maar deze wel dicht bij het waterschapswerk houden. Daarom hebben we eerst goed nagedacht/research gedaan over wanneer een case geschikt is voor de blockchain. Als je op onderstaande punten allemaal ja kunt antwoorden heb je meestal een goede case voor de blockchain.
- Werken in de toepassing meer dan twee partijen met vaak verschillende belangen met elkaar samen?
- Is het niet gewenst dat het beheer bij één partij ligt?
- Is één gezamenlijke bron van waarheid van belang?
- Zijn tijdstip en de volgorde van het vastleggen van gegevens van belang?
Nu we ons toetsingskader hadden zijn we na gaan brainstormen over cases/problemen in de organisatie. We kwamen uiteindelijk uit op een stuk of 15 geschikte cases en hebben daarvan de 3 meest interessante uitgekozen om verder te onderzoeken:
- Landeigenaarschap: Wie van de verschillende partijen (gemeente, waterschap, individu, bedrijf) heeft nu welk stuk land in eigenaarschap en wie heeft het beheer er over? In de praktijk blijkt dit niet altijd duidelijk te zijn, mede omdat afspraken soms decennia geleden zijn gemaakt en niet duidelijk zijn vastgelegd.
- Contractmanagement: Welke contractafspraken zijn er met een leverancier op welk moment geldig?
- Energie: Hoeveel wek je op welk moment op? Wat is op dat moment een marktconform tarief? En omgekeerd voor het verbruik? Welke zuivering verbruikt hoeveel op welk moment? En hoe verreken je nu transparant al deze microtransacties?
Vanwege de haalbaarheid en doorlooptijd hebben we uiteindelijk gekozen voor nummer 2, het contractmanagement. Ook hadden we hier in onze collega Monica, contractmanager bij inkoop, een welwillende collega die tijd had en ons verder wilde helpen.
Als laatste zijn we ons gaan verdiepen in de mogelijkheden en platformen die de blockchainkant ons bood. Hiervoor hebben we veel research gepleegd. Uiteindelijk zijn we uit gekomen op de Azure Blockchain Workbench van Microsoft. Met dit platform konden we makkelijk koppelingen leggen met Outsystems, maar waren er ook al veel kant en klare functionaliteiten m.b.t. communicatie met de Ethereum blockchain (ondanks dat deze niet ons voorkeur genoot). Hierdoor moesten we uiteindelijk zelf minimaal programmeren en slechts een paar kleine zogenaamde smart contracts maken met Solidity.
Resultaten
Binnen een kleine maand hebben we een werkend prototype op kunnen leveren. Contracten met de meeste relevante gegevens kunnen hierin door de beheerder aangemaakt worden.
De samenvatting van het contract na het doorlopen van alle stappen
Na het aanmaken van een contract wordt het ter ondertekening aangeboden aan de wederpartij. Als deze het contract ondertekent, wordt het uiteindelijk vereeuwigd op de blockchain.
De blockchaingegevens zoals ze in Azure te zien zijn
Tot slot kan een contract ook nog door beide partijen gewijzigd worden en wordt na wederzijdse goedkeuring het contract op de blockchain geüpdatet. Alle contracten en historie zijn ook eenvoudig op te vragen.
Contracthistorie- en overzicht in Outsystems
Conclusie
Het ontwikkelen van een blockchainapplicatie was voor onszelf ontzettend leerzaam vanuit ontwikkelperspectief. We hebben veel ervaring opgedaan met de werking van de blockchain en smart contracts. Dit kan ons in de toekomst goed van pas komen. Blockchain heeft volgens ons namelijk de toekomst.
Monica heeft vanuit het perspectief van inkoop goed inzicht gekregen in hoe ze het contractmanagement uiteindelijk in wil richten. Ook vond ze de Scrum werkwijze en het scrumboard in Jira erg prettig werken en is dit iets wat ze mee gaat nemen in haar werk. Monica heeft in het traject haar collega's van inkoop ook meegenomen en op de hoogte gehouden. De meningen in het team lagen verdeeld. De meerwaarde van blockchain werd door de meesten wel gezien. En ook droeg het erg bij aan het begrijpen van de mogelijkheden en meerwaarde van de blockchain, om een blockchainapplicatie werkend te zien.
Maar het werken op de blockchain heeft ook nadelen. Transacties moeten via een wallet door beide partijen ondertekend worden. Dit brengt kosten met zich mee, gaat wat langzamer dan 'normaal' en het hele concept 'werken op de blockchain' is voor sommige mensen behoorlijk complex.
De wereld van blockchain is echter volop in ontwikkeling en er zijn inmiddels al oplossingen voor bovengenoemde problemen. Het kiezen van een andere blockchain zou bijvoorbeeld erg kunnen helpen bij de snelheid en kosten. Het door ons gekozen Ethereum staat bekend om de hoge transactiekosten en lage snelheid. Ook zijn er wel applicaties/extensies die de wallets gebruiksvriendelijker maken of zelfs helemaal verhullen. In onze optiek ontkom je momenteel echter vaak nog niet aan de complexiteit. De focus in de ontwikkeling, zoals bij de meeste technieken, ligt veelal nog op techniek, netwerken etc. en nog minder op gebruiksvriendelijkheid en ervaring.
Wij denken dan ook dat het grootschalig adopteren van de blockchain pas gebeurt als de gebruiker er weinig tot niets meer van merkt. Of als de noodzaak erg groot is, zoals in bijvoorbeeld de financiële markt. Dat is in het geval van contractmanagement bij ons waterschap nog niet zo. Wij denken dat uiteindelijk een contractmanagementsysteem met blockchainintegratie wel de standaard wordt, maar pas als er een applicatie komt die hetzelfde kan en net zo snel en gebruiksvriendelijk is als de huidige contractmanagementsystemen. De pre is dan de blockchain.
Auteur: Dennie Kamp