Jeg kom inn hos kunden for å bygge en teknologisk grunnmur for videre utvikling av interne systemer. De hadde et omfattende datagrunnlag relatert til forvaltning som de ønsket å få mer ut av. I første omgang gjaldt det å visualisere dataene på en innsiktsfull og kreativ måte. Fra før av hadde kunden erfaring med å visualisere data i grafer ved bruk av Python og SQL Server. Siden dette var et kortvarig prosjekt falt det meg naturlig å begrense teknologivalget med forutsetningen om at kunden enkelt skulle kunne videreutvikle systemet på egen hånd.
Sammen kom vi frem til at en "dashboard"-applikasjon bestående av flere sider med informasjon og grafer knyttet til spesifikke domener var en god start. Jeg begynte derfor å undersøke hva slags muligheter vi hadde når det gjaldt rammeverk og biblioteker som kunne forenkle arbeidet på applikasjonen. Det var spesielt viktig at hva enn jeg valgte var enkelt å bruke, godt dokumentert og raskt å utvikle, da kunden hadde begrenset med tid og ressurser til videreutvikling. Til slutt falt valget på Streamlit, et veldokumentert og populært rammeverk for utvikling av “dashboard”-applikasjoner med en aktiv brukerbase og forvaltningsteam.
Streamlit er et rammeverk som lar deg lage React applikasjoner ved bruk av Python. Det tilbyr mange “widgets” som lar deg raskt sette opp et grensesnitt uten å måtte tenke på styling, sikkerhet eller universell utforming. Dette lot meg være ekstremt produktiv siden alle detaljene var håndtert allerede. Takket være Streamlit fikk jeg tid til å sette opp både den tidligere nevnte løsningen, samt en løsning for administrering av interne data. Begge løsningene bestod av 5 til 10 sider med funksjoner integrert med den underliggende databasen.

En annen ting som jeg gjerne ville innføre hos kunden var bruk av Git til versjonskontroll. Fra før av ble arbeid på eksisterende løsninger utført på delte virtuelle maskiner uten noen form for versjonskontroll. Forslaget mitt om å bruke Git ble møtt med litt skepsis da det fremstår som et komplisert verktøy som innebærer bruk av terminal. Derfor ga jeg kunden opplæring i hvordan man kan bruke Git med grensesnittet som PyCharm tilbyr. Dette er mye enklere for mindre tekniske personer, og det fungerer akkurat like godt om ikke bedre enn ved bruk av terminal. Ekstern lagring av kode satt jeg opp på Azure DevOps da kunden allerede var dypt integrert med Azure portalen.
Arbeidet mitt hos kunden foregikk for det meste selvstendig. Dette er noe jeg hadde erfaring med fra før av og det gikk derfor veldig fint. Fordelen med dette var at jeg kunne ta beslutninger raskt, som førte til at jeg holdt et godt tempo. Ulempen var at det ikke var noen annen utvikler med dybdekunnskap om domenet å lene seg på, som er spesielt merkbart når man kun har 4 uker på å ferdigstille et prosjekt. Denne ulempen var jeg klar over fra dag én, og jeg avtalte derfor tidlig med produkteieren at vedkommende tok ansvar for å hente og visualisere komplekse datastrukturer som krevde en bred forståelse av domenet.

Tom Fevang
6 Mai, 2024