Verdwijnt de ICT-afdeling met de self-service PowerBI tool?

Dat is de vraag die BI Consultant en Data analist Roger Persoon zich stelt. Het antwoord lees je hieronder:

“Microsoft Power BI is een interactieve tool voor het visualiseren van data. Het doel is om gegevens om te zetten naar informatie en dit beschikbaar te maken voor de eindgebruiker.

Risico’s van self-service tools

Power BI is ontwikkeld om een self-service BI-tool te zijn. Self-service BI is heel populair op dit moment. Daarmee verzamelen medewerkers data die ze vervolgens rapporteren in bijvoorbeeld dashboards. Niet meer afhankelijk zijn van de ICT-afdeling lijkt ideaal, maar brengt ook een aantal risico’s met zich mee.

Hieronder een van de risico’s die ik niet vaak genoemd zie als ik de moeilijkheden opzoek voor invoering van PowerBI. Als je dit googelt gaat het voornamelijk over de moeilijkheden van PowerBI zelf: de tool dus en welke kennis je hiervoor nodig hebt. Niet wat voor effect het heeft op de werkvloer.

Want even serieus: is het echt een optie om aan medewerkers die tot dan toe alleen wat Excel-sheets kant-en-klaar krijgen voorgeschoteld met hierop data die hen moet ondersteunen in hun werkzaamheden na een korte introductie een aantal datasets te geven en te zeggen: ga hier maar mee aan de slag. Succes ermee! 

Allereerst wordt hiermee vergeten dat dit veelal niet tot hun kernactiviteit behoort maar een middel is om te controleren dan wel te rapporteren over hun dagelijkse werkzaamheden. 

Van papier naar digitaal

Tijdens mijn werkzame leven heb ik veelal gewerkt voor softwarebedrijven die bij lokale overheden documentmanagementsystemen implementeerden. Dit allemaal in het kader van ondersteuning van de medewerkers. Hiervoor moesten de meeste medewerkers hun werkwijze, die ze soms al jaren hanteerden, veranderen. Documenten moesten niet meer in de kast worden opgeborgen met kleurcodes op alfabet worden opgeborgen maar geregistreerd en geclassificeerd. En niet te vergeten: digitaal. Ook uitgaande post wordt niet meer via de brievenbus bezorgd: alles gaat via de BerichtenBox van Mijn Overheid.

Dit zou dan het einde van de postkamer worden: iedereen doet dit zelf (self-service dus).

Stapsgewijze invoering

Veelal ging dit geschetste toekomstbeeld voor de medewerkers te vlug. De gevolgen waren dat ze hun eigen papieren archief creëerden en het systeem links lieten liggen. Beter ging het dan ook als je de invoering stapsgewijs uitvoerde.

Allereerst laat je de postkamer ‘digitaliseren’. Papier wordt vervangen door digitale opslag (wat in de praktijk betekende het scannen van inkomende post en het printen van uitgaand post). Maar intern worden de documenten alleen nog beschikbaar gesteld via het documentmanagementsysteem.

Daarna ga je stapsgewijs verder: e-mails registreren door medewerkers, communicatie naar de burgers toe via de berichtenbox van Mijn Overheid totdat je uiteindelijk toch het geschetste en gewenste toekomstbeeld hebt bereikt. Nog makkelijker gaat dit proces als je de medewerkers kunt prikkelen zodat de veranderingen zelf vragen: “Waarom kan ik mijn e-mail niet zelf registreren?” of “Waarom moet ik de vergunning via de postkamer versturen?”.  

‘Klant en kok ineen’

Als ik mijn ervaring hierin projecteer naar PowerBI als self-service BI tool zie ik wel enige overeenkomsten. Het concept van self-service is namelijk eenvoudig: de klant bedient zichzelf. Voorheen gebeurde dat door het personeel. Denk bijvoorbeeld aan tankstations, warenhuizen of een zelfbedieningsrestaurant. De klant redt zichzelf prima en het personeel is alleen nog aanwezig voor ondersteunende taken. Dit zou echter betekenen in het geval van PowerBI t.o.v. het zelfbedieningsrestaurant: je bent ook nog de kok.  

Implementatie van PowerBI als self-service tool

Mijns inziens kan dit ook beter stapsgewijs. Begin allereerst met de rapporten en dashboards via PowerBI te delen. En ja, dit zal nog steeds door de ICT-afdeling gebeuren (beter nog: hier heb je genoeg specialisten voor). De organisatie raakt vertrouwd met de presentatie van de gegevens via deze weg. Kunnen ze al een beetje spelen met filters en in- en uitzoomen op de data (drillen).

Op deze manier creëer je vanzelf een vraag bij de afdelingen en medewerkers die meer willen. Die inderdaad zelf de dashboards willen maken en via verschillende invalshoeken de data willen bekijken om direct een trendbreuk te kunnen constateren. Of alleen de data die voor de medewerker/afdeling zelf relevant is willen weergeven. Ook hier kun je nog als tussenstap kiezen dat er een aanvraag wordt gedaan om een dataset beschikbaar te stellen die die data bevat waarmee aan de slag kan worden gegaan binnen PowerBI om het te visualiseren: ook weer een rol voor de ICT-afdeling.

Onderhoud en controle blijft belangrijk

Om een wildgroei aan rapporten te voorkomen zal er verder ook nog enige controle moeten worden uitgevoerd op de rapporten/dashboards. Er is een kans dat meerdere medewerkers – gedeeltelijk – hetzelfde rapport maken en dan loop je het risico dat de gemaakte rapporten andere definities bevatten dan centraal is afgesproken. Ook hierin zou de ICT-afdeling een rol in kunnen spelen: onderhoud en controle blijft een belangrijke factor.

Self-service BI kan werken, maar…

Self-service BI klinkt aanlokkelijk, maar zal niet voor iedereen werken en zou stap voor stap moeten ingevoerd. Zie het niet als kans om de ICT-afdeling uit het proces te halen maar geef ze meer een ondersteunende en controlerende rol. Ook zullen er genoeg afdelingen en medewerkers zijn die niet aan self-service BI willen. Probeer ze dat dan ook niet op te dringen: als ze zelf niet de meerwaarde ervan inzien is invoering gedoemd te mislukken.”

Gebruik van C# in web development?

Onze software developer Nino van Laar vraagt zich af waarom de programmeertaal C# niet vaker wordt gebruikt bij het ontwikkelen van webapplicaties. Hij neemt je tijdens zijn zoektocht mee naar het antwoord: 

“Een analyse van alle openbare GitHub repositories toont aan dat C# al enkele jaren een stabiele lijn toont op het percentage van gebruik binnen de repositories, variërend tussen 3 en 4% (Zapponi, 2022). Ontwikkelaars gebruiken C# voor een breed scala aan projecten zoals Windowsapplicaties, games en web development.  

Weinig websites gebouwd in C# 

Aangezien C# meer dan 20 jaar bestaat, is er veel documentatie en expertise aanwezig die geraadpleegd kan worden voor snelle en adequate ontwikkeling. Desondanks is het percentage websites wat gebruik maakt van C# als ontwikkelcode slechts 8% (W3Techs, 2022). De meeste websites blijven geprogrammeerd in PHP waardoor deze bij uitstek de populairste code is om te gebruiken in webdevelopment.

Hierbij rijst dan ook de volgende vraag: ‘Waarom wordt C# nog niet grootschalig ingezet voor de ontwikkeling van webapplicaties?’ 

Ontwikkelen van webapplicaties

C# is een moderne, object georiënteerde programmeertaal ontwikkeld door Microsoft. Het stelt ontwikkelaars in staat om veilige en robuuste applicaties te ontwikkelen onder het .NET platform. De ontwikkeling van webapplicaties in C# gebeurt doorgaans in het ASP.NET framework, welke is gebouwd op het bekende .NET framework. ASP.NET voegt enkele belangrijke functionaliteiten toe aan .NET die nodig zijn voor het ontwikkelen van webapplicaties, zoals:

  • Een basis framework voor het verwerken van web requests in C# 
  • Een web-page templating syntax, beter bekend als Razor, waarmee dynamische webpagina’s kunnen worden gebouwd door het gebruik van C#
  • Libraries voor veelvoorkomende websites zoals een model, view, controller (MVC) 
  • Een authenticatiesysteem waarin libraries, een database en templatepagina’s zijn opgenomen voor het verwerken van logins. Hiernaast is het eenvoudig om multifactorauthenticatie en externe authenticatie in te stellen 
  • Editor extensions om eenvoudig syntax highlighting, code completion en andere specifieke functionaliteiten in de IDE naar keuze te krijgen

C# steeds populairder 

Langzaam maar zeker wint C# aan populariteit bij ontwikkelaars voor web development. Dit komt mede door het openstellen van de framework code op Github. Iedereen kan de code nu inzien, reviewen, aanpassen en/of aanvulling doorvoeren op de bestaande code.  

Hierdoor groeit er een community die steeds actiever wordt in de doorontwikkeling van ASP.net. Verbeteringen en bugfixes laten daardoor minder lang op zicht wachten en worden regelmatige vrijgegeven. 

Support op meerdere platforms

Een ander speerpunt om C# te gebruiken is de cross-platform support. Het framework is gebouwd om alleen op Windows te werken maar applicaties en hulpmiddelen ontwikkeld met behulp van .NET kunnen eenvoudig op andere platforms werken zoals macOS en Linux. Visual Studio, de IDE ontwikkeld door Microsoft, geeft gebruikers hierdoor de kans webapplicaties op elk operating system te ontwikkelen en in gebruik te nemen.  

Aangezien ASP.NET verder gebouwd is op .NET hebben ontwikkelaars ook direct voordelen bij onder andere: 

  • Automatisch geheugenmanagement 
  • Cross-platform architectuur 
  • Package management
  • Garbage collection 
  • Asynchroon programmeren 
  • Eenvoudige ontwikkeling van MVC-webapplicaties en RESTful API’s 

Razor syntax: makkelijk te leren

ASP.NET maakt gebruik van zijn eigen markup syntax voor het embedden van .NET code in webpagina’s. Hiervoor gebruiken zij de Razor syntax. Deze syntax, ontwikkeld in 2010, is een vereenvoudigde syntax die eenvoudig te leren is als beginner en meer productiviteit brengt bij een expert. Een Razor webpagina bestaat uit HTML en Razor code. Wanneer een server een request krijgt om een pagina te laden zal eerst de Razor code uitgevoerd worden om vervolgens de HTML aan te genereren en terug te sturen naar de gebruiker.  

Er is hierbij een grote overeenkomst te vinden met PHP, waarbij PHP-pagina’s bestaan uit PHP en HTML en op dezelfde manier op de server worden gegenereerd. Ontwikkelaars met C# ervaring zullen dan ook eerder uit te voeten kunnen met de Razor syntax dan de PHP-syntax.

PHP blijft koploper

PHP vertoont ontzettend veel overeenkomsten met ASP.NET in combinatie met Razor bestanden. Beide programmeertalen kunnen embedded worden in de HTML-code, zijn cross platform in te zetten en zijn op basis van performance aan elkaar gewaagd.  

Toch blijft PHP de koploper in de strijd om populairste programmeertaal voor webapplicaties. Dit komt met name door onderstaande punten: 

  • Vanwege de populariteit is er een enorme community ontstaan waarbij veel ontwikkelaars zich hebben opgewerkt tot specialist 
  • Er is een grote database vol referenties en educatief materiaal 
  • PHP ondersteunt vrijwel iedere database 
  • Er is een grote collectie aan open-source add-ons 
  • De hosting van een PHP-website is doorgaans goedkoop 
  • PHP is eenvoudig te leren

Voor zowel PHP als C# zijn er dus voor- en nadelen die het ontwikkelproces dan wel vereenvoudigen als bemoeilijken. Maar waarom heeft C#, en in het bijzonder ASP.NET, nog zo’n kleine marktwaarde in de websites?

Overstap naar ASP.NET

Het antwoord hierop lijkt vrij voor de hand liggend. Tot nog toe was ASP.NET een framework dat enkel gericht was op het ontwikkelen van webapplicaties voor een Windows machine. Sinds 2016 is ASP.NET Core uitgekomen waarmee deze restrictie van Windows verdween. Het lijkt er dan ook op dat het grote publiek nog niet de overstap heeft gemaakt naar C# vanuit de meer populaire webontwikkelmethodes zoals PHP. De verwachting is dat steeds meer bedrijven, zeker vanwege de release van ASP.NET Core, de overstap naar ASP.NET overwegen en zullen nemen.

PHP versus C#

Persoonlijk heb ik in zowel PHP als C# geprogrammeerd. Als beginnend programmeur is PHP een ontzettend eenvoudige taal om te leren. Simpele websites kunnen op deze manier in een handomdraai worden gemaakt. Het leren van C# vergt wat meer inspanning en duurt dan ook langer om daadwerkelijk te kunnen gebruiken.  

Vanwege de object georiënteerde structuur binnen .NET is het eenvoudiger om code te differentiëren dan in PHP. Een persoonlijke voorkeur gaat hiervoor dan ook uit naar C#. Waar PHP zich behoudt tot een programmeertaal voor webapplicaties kan het leren van C# de horizon verbreden en de stap naar andere ontwikkelmethodes binnen .NET vereenvoudigen.”

Etesian op weg naar landelijke dekking met 50 medewerkers

Sinds mei 2022 heeft Etesian, een IT-Consultancy bedrijf van oorsprong uit hartje Kerkrade, maar liefst 50 vakbekwame professionals uit het hele land aan boord die maatwerkoplossingen leveren voor diverse IT-vraagstukken. Met deze enorme groei in medewerkers is het bedrijf op weg naar een landelijke dekking binnen Nederland. 

Ondanks de schaarste op de arbeidsmarkt is Etesian, met de inzet van verschillende kanalen, in staat geweest te blijven groeien. Van een groot eigen netwerk tot samenwerkingsverbanden met onderwijsinstellingen en recruitment partners die helpen met het vinden van professionals met de juiste kennis en ervaring. 

Actief in Nederland en België

Momenteel is Etesian actief in Nederland en België en helpen zij klanten met het implementeren van complexe IT-oplossingen. Het ontwikkelen van applicaties, e-Commerce oplossingen, de integratie van ERP-data of financiële gegevens met andere systemen, het implementeren van Microsoft 365 of het managen van diverse  IT-projecten. Een kleine greep uit de diensten die deze 50 professionals leveren aan klanten in binnen- en buitenland.  

Familiegevoel

Etesian is gebleken, ook in tijd van schaarste, op de werknemersmarkt een aantrekkelijke werkgever te zijn door marktconforme arbeidsvoorwaarden, persoonlijk ontwikkelplannen en extra opleidingsbudget. De meerdere teambuildingsactiviteiten naast het werk en een informele cultuur zorgen voor het onmiskenbare familiegevoel.  

Toekomst

In 2015 hebben Lars Schmitz en Sven Engels samen Etesian opgericht met als doel uit te groeien tot een middelgrote IT-dienstverlener. In Kerkrade begonnen als een kleine lokale IT-speler en in zeven jaar tijd uitgegroeid tot een graag geziene IT-partner in het zuiden en midden van het land. De komende periode wil Etesian doorgroeien naar een middelgrote speler zodat zij heel Nederland kunnen voorzien van hun expertise. 

Verschillende datums gebruiken op één pagina in Power BI?  Het kan!

Onze Business Intelligence Consultant, Andrew Tan, kreeg bij zijn opdrachtgever het verzoek een bestaand QlikView-dashboard om te zetten naar Power BI. De informatie uit het dashboard helpt de control room bij zaakgericht werken om de bedrijfsvoering verder te verbeteren.

“Een zaak is in dit verband een samenhangende hoeveelheid werk, met een duidelijke aanleiding (registratie-instroom) en een duidelijk resultaat zodra de zaak is uitgestroomd (beëindiging).” 

Hoe ziet het Power BI-dashboard eruit? 

Het nieuwe dashboard in Power BI bestaat uit drie pagina’s waarop de zaakfeiten op verschillende detailniveaus worden getoond.  

  • De eerste pagina bevat een dashboard waarin het aantal geregistreerde zaken en aantal beëindigde zaken in diverse visualisaties worden getoond.  
  • De tweede en derde pagina vormen een verdieping van het overzicht op de eerste pagina. Deze pagina’s bevatten meer details voor analysedoeleinden.  

In het onderliggend datamodel van Power BI zijn meerdere relaties gedefinieerd tussen de feittabel, waarin zaken worden geteld, en de datumtabel. Dezelfde datumtabel wordt gebruikt om de zaakfeiten te filteren op registratiedatum en beëindigingsdatum. Dit is een goed voorbeeld van een rollenspeldimensie of role-playing dimension. 

“De rollenspeldimensie is een dimensie waarin op een andere manier op gerelateerde feiten kan worden gefilterd.” 

In dit geval kan de datum betrekking hebben op de registratie of beëindiging van een zaak. In Figuur 1 is dit als volgt terug te zien. 

Figuur 1

Grijze lijnen = actieve koppeling

De eerste relatie tussen de feit- en datumtabel is de grijze lijn tussen respectievelijk Registratiedatum en Datumveld. De grijze kleur van deze lijn duidt aan dat de koppeling tussen feit- en datumtabel actief is. Dat wil zeggen: de telling van het aantal zaken geschiedt op basis van de Registratiedatum en wordt gerapporteerd met de meetwaarde ‘Aantal zaken geregistreerd’. Deze meetwaarde is direct bruikbaar in het dashboard. 

Gele gestippelde lijnen = inactieve koppeling

De tweede relatie tussen de feit- en datumtabel is de gele gestippelde lijn tussen Beëindigingsdatum en Datumveld. De gestippelde lijn duidt erop dat de koppeling tussen feit- en datumtabel niet actief is. De datumtabel heeft immers al een actieve relatie met de feittabel via de Registratiedatum. Het is namelijk zo dat in Power BI slechts één relatie actief kan zijn tussen twee tabellen.

Problemen op de weg?

De beperking in het datamodel levert een praktisch probleem op. Dit zou betekenen dat het aantal beëindigde zaken niet tegelijkertijd gerapporteerd kan worden met het aantal geregistreerde zaken in het dashboard van de eerste pagina. Daarom is de meetwaarde ‘Aantal zaken beëindigd’ niet direct bruikbaar en geel gemarkeerd in Figuur 1.

DAX formule lost het op

Genoemd probleem is opgelost door voor beëindigde zaken een berekende meetwaarde (measure) aan te maken in Power BI, dus geen berekende kolom (calculated column). De DAX formule, die aan de nieuwe meetwaarde wordt toegevoegd, zorgt ervoor dat bij de telling van het aantal beëindigde zaken toch gebruik gemaakt kan worden van de beëindigingsdatum ondanks dat de koppeling met de datumtabel niet actief is.  

De gebruikte DAX formule bestaat uit twee delen.  

  1. Het eerste deel telt met behulp van CALCULATE() alle beëindigde zaken bij elkaar op.  
  1. Het tweede deel gebruikt USERELATIONSHIP() om de inactieve koppeling tussen feit- en datumtabel op basis van beëindigingsdatum te activeren voor de berekening in het eerste deel.  

 
In Figuur 1 is te zien dat de nieuwe meetwaarde ‘Aantal zaken beëindigd’ voorafgegaan wordt door een icoon met rekenmachine. Dit geeft aan dat het gaat om een berekende meetwaarde of measure.

Rollenspeldimensies als best practice

Voor de oplossing in het datamodel is de rollenspeldimensie ingezet als best practice. Het resultaat is tweeledig. Voor het dashboard op de eerste pagina kunnen Aantal beëindigde zaken en Aantal geregistreerde zaken tegelijkertijd gerapporteerd worden zonder dat ze elkaar bijten. Vanuit beheeroogpunt is een werkafspraak toegevoegd aan het data fundament zodat rollenspeldimensies altijd geïmplementeerd worden met een measure in Power BI. Dit heeft als voordeel dat de werkwijze bij Power BI is gestandaardiseerd en werkzaamheden overdraagbaar maakt.