Det er på høje tid, vi taler om, hvordan vi arbejder med data!

Posted on Tue 16 July 2019 in Opinions


Når jeg bliver bedt beskrive mig selv, er mit afsæt stort set altid, at jeg er en teknisk person – og hvad i alverden skal det så sige? At jeg er dårlig til sociale relationer? At jeg ikke forstår dynamikker i menneskelig kontakt eller at jeg samtlige weekender står indsmurt i olie med mine fingre i motorer og mekanik? Nej, det er vist ikke tilfældet, men at være teknisk kan have en lang række implikationer.

Lad mig tage dig, læser, med på en tidsrejse. Året er 2006. Det 11-årige jeg bruger mine eftermiddage (som så mange andre i min omgangskreds) foran skærmen med Half-Life 1, Age of Empires og alt hvad, der nu synes gemt væk i nostalgi og en så småt afstumpet romantik om bedre tider. Opvokset på landet med to søstre og to små-gammeldags forældre, var kartoteket af hardware i hjemmet tæt beslægtet med de sølle varer, der på fjerde gang er på loppemarked uden køber/sælger interaktion.

Med det pragmatiske instinkt jeg allerede i min tidlige ungdom besad, tænkte jeg, at man vel må arbejde med, hvad man har. Jeg tog derfor kontakt til min barndomsvens far, som arbejdede med IT, og spurgte ham, om han kendte til ”det der Linux”, da jeg havde hørt, at det fungerede lidt skarpere på halv-rusten hardware, end det tilsvarende Windows. Entusiastisk svarer han: ”Ja! Det er jo mit arbejde, hvad vil du vide?”, med et forsigtigt og lidt ignorant svar få jeg mumlet, at jeg egentlig bare vil lære det hele… det resulterer i, at jeg den dag kommer pave-stolt hjem med O’Reily bogen ”Linux Network Servers” fra 1998 (angående udgivelsesåret blev jeg forsikret om, at ikke meget havde ændret sig på den front i de år – et postulat, der vist stadig holder stik, så vidt jeg ved).

Nu var den første glød skold-hed, vidensbegæret højt og interessen for IT bevægede sig med lysets hast. Jeg greb til mig af open-source-communities, software, programmering og alt, hvad der bare havde et svagt snært IT.

Fast-forward til min nylige introduktion på arbejdsmarkedet.

Som det titelmæssige lavthængende frugt er det med en relativ grad af forsigtighed, at man vælger at implementere sine egne metoder til opgaveløsning. Man udfører som regel opgaverne lidt småmekanisk efter nøje instruktion – måske tit efter selv samme hentydning for at skabe fejlsikkerhed.

Men som da jeg i min ungdom ikke var stillet med det objektivt bedste tekniske udgangspunkt, begyndte jeg at spørge mig selv: "er der en smartere måde?". Og ja, det er der stort set altid!

Dette kunne sagtens være en lang artikel om, hvordan programmering skal undervises i skolerne, hvordan man ikke bliver teknisk dygtig af at spille Angry Birds på en iPad i frikvartererne og at teknisk integration intet har med ’apps’, æbler og e-bøger at gøre – men lad os nu engang holde det på et teknisk niveau.

Som jeg ser det, er der fundamentalt tre udfordringer i det moderne kontor og vores datadrevne arbejdsopgaver. Disse tre grundlæggende udfordringer vil jeg prøve at tage op til debat, og i senere artikler vise nogle alternativer, som forhåbentligt kan bedre læserens tekniske hverdag. Jeg tror ikke disse punkter må ses som tre uafhængige elementer, men nærmere som sammenhængende strukturelle problemer i den generelle måde, som vi arbejder med data på.

  1. 'Black-box' status for programmering og IT

  2. Excel-"monopolen"

  3. Licensering og proprietært ukontrollerbart software


1. 'Black-box' status for programmering og IT

Oftere og oftere bliver teknologi og tekniske innovationer mystificeret i såvel medier som daglig tale. Det er lidt fra mit synspunkt som om, at "Buzzwords" skaber et teknisk ethos for afsenderen, der absolut ikke må betvivles. Jeg synes, man kontinuerligt hører om, at når nu bare indsæt 2019-buzzword her (f.eks. 5G, Machine-Learning, AI, IoT, BlockChain) implementeres, er forsvinder alle tekniske udfordringer, men det er bare meget sjældent tilfældet. Det lugter lidt af, at nye teknologier ikke har andet end "CEO"- eller hype-værdien og resten er op til nørderne.

Det er på nærmest daglig basis, at jeg har venner eller bekendte, som komplimenterer mine tekniske færdigheder eller spørger ind til, hvordan de også kan lære at programmere og bygge tekniske systemer. Jeg plejer altid at svare lidt henkastet, at der jo ikke er noget specielt i det, jeg kan, og at enhver med en fungerende internet-forbindelse kan lære at skrive kode indenfor en kort periode. Det har været anledning til mange mistroiske blikke igennem tiden, men det er et udgangspunkt, jeg står ved.

Jeg tror, at denne mistro kommer fra, at der ligger en idé i folks bevisthed om, at teknologi er noget magisk. At programmering kun er for folk, der kan sidde og skrive maskininstruktioner i x86 assembly på en gammel CRT skærm i en mørk kælder. Jeg tror netop, at denne mystificering af teknologi er sagens kerne! Man tør ikke "konfrontere" øvrige systemer eller udforske nye arbejdsmetoder, fordi de meget simpelt virker for komplicerede i udgangspunktet.

En meget streng generelisering ville være at sige, at al IT handler om data input/output og resten er abstraktion - men det er i min optik faktisk ikke helt vedsiden af! Når man for eksempel dykker ned i ML-algoritmer er de "bare" statistik, lineær algebra og regressioner i nye klæder - et koncept som for alvor praktisk talt har fået "Skynet"-status i Business-verdenen.

Fra mit udgangspunkt er det et stort strukturelt samfundsproblem, at man forholder sig til IT ud fra ovenstående afsæt. Jeg håber, at flere i fremtiden tør stoppe op i deres etablerede arbejdsprocesser og se på om årtier gammel, dårligt vedligeholdt VBA kode, eller snørklede manuelle arbejdsgange nu også er det bedste og mest effektive udgangspunkt! IT-udvikling og kreativitet er ikke forbeholdt datalogi-kandidaterne.

For at komme med en konkret anbefaling til den nysgerrige læser vil jeg anbefale Al Sweigarts fantastiske bog Automate the Boring Stuff with Python. Heri tager Sweigart læseren med på en IT-rejse uden sidestykke og viser, at de fjollede manuelle opgaver simpelt og elegant kan optimeres og eksekveres, så der er mere tid til de meningsfyldte og værdiskabende opgaver i dagligdagen!


2. Excel-"monopolen"

Som en (til tider lidt små-ekstrem) open-source entusiast havde jeg en nærmest måbende reaktion, da jeg fandt ud af, hvor central en placering Microsoft Office har i det moderne kontorlandskab.

Forstå mig ret, Microsoft's Excel er et fremragende redskab til simple og "non-repetitive" dataoperationer. Skal man holde styr på en lille, overskuelig mængde data, "rense" lidt data, lave simple regressioner eller måske endda en flot, informativ datavisualisering, så kan Excel tit og ofte være redningsmand af hjertevarmende karakter.

Dog er det min stærke overbevisning, at Excel (samt særligt VBA stack'en) har modtaget permanent opholdstilladelse i det moderne kontorlandskab. Et redskab, som bør være tiltænkt til et simpelt databehandlingsværktøj har fået statsborgerskab som et redskab, der kan løse alle datarelaterede opgaver - eller som i nogle hjernevridende tilfælde bliver et "full-stack" system, der både varetager database, data-processing, data-visualisering samt front-end/data-input.

Problemet bliver blot, at Excel i mange virksomheder er muteret til et vidtrækkende virvar af legacy-funktionaliteter, enormt ineffektive data-operationer (særligt på store datamængder) og uendelige spindelvæg af udokumenteret VBA kode, som ej heller er underlagt softwareudviklings paradigmer/filosofier eller vedligeholdt igennem version-control. Det er som om, at .xlsx formatet er blevet en "quick'n'dirty" skraldespand, hvor man i stedet for at løse problemet på en pragmatisk og struktureret facon, konstruerer et Frankenstein-monster af VBA, excel-formler, (statiske) referencer m.v. sammen, indtil arket fungerer tilstrækkeligt. Derefter pakkes koden væk i en sort kasse, hvor man ikke længere tør kigge, indtil den skønne dag, systemet ikke lever op til internt opdaterede arbejdsgange, flyder over grundet stigende datamængde eller i værste fald indeholder fejlbetonet kode eller formler (i bunden af artiklen er en række links til historier, hvor blind tillid til fejlbetonede Excel-ark har kostet dyrt for store, veletablerede virksomheder).

Jeg medgiver samtidigt også, at Excel kan være et fantastisk godt og produktivt redskab, der i de rigtige omgivelser kan automatisere arbejdsgange og levere et hurtigt og effektivt output - men det er der samtidigt også en række andre værktøjer, som kan - tit og ofte mere effektivt, hurtigere, mere modulært, osv. end Excel kan præstere. Jeg er personligt en stor fortaler for Python og de redskaber, der kan integreres med dette fantastiske programmeringssprog, men der eksisterer en nærmest utællelig mængde af øvrige super robuste og let-forståelige dataværktøjer.

Jeg er lige ved at græde, når jeg tænker på, hvor mange timer der på verdensplan går med ventetid på legacy og dårligt optimeret VBA kode (man kan trods alt kun have ét ark åben ad gangen, ikke sandt?!), fejlrettelser eller tjek af data-output samt den samlede risiko for data-fejl grundet Excels mangel på data-integritet sammenlignet med moderne database-systemer. Det er mig et absolut og komplet mysterie, at man i en tidsalder, hvor compliance, databeskyttelse, IT-sikkerhed m.v. står øverst på globale virksomheders ønskeliste, overlader så meget tillid til et redskab, der (i mange tilfælde) lever langt over evne.

Lad os tænke ud af vores statiske arbejdsgange og åbne øjnene for, at Excel ikke er en "end-all/be-all" løsning.


3. Licensering og proprietært ukontrollerbart software

For den uinformerede læser vil jeg kort opridse free and open-source software (FOSS). FOSS er en filosofi og tankegang, der praktisk talt er ældre end IT selv. Software er FOSS, hvis kildekoden (selve programmet) er stillet til rådighed frit (fri som i frihed, ikke fri øl) tilgængeligt for enhver til at modificere, redistribuere og bruge, som man ønsker. FOSS er grundstenen for moderne datalogi og teknologi. For at sætte FOSS lidt i perspektiv kører 500 ud af 500 af verdens hurtigste supercomputere Linux, en markedsdel der er stort set tilsvarende for mange andre områder, hvor f.eks. 96.3% af verdens top 1 million webservere kører Linux. Linux er ét (om end meget stort) FOSS projekt ud af mange, der ikke desto mindre vidner om hvor værdifuldt FOSS kan være for samfundet i sin helhed.

Jeg tror, ideen om open-source software og dets vigtighed sjældent er under den seriøse lup, når virksomheder skal ud med den store pung og investere i ny software og data-værktøjer. Det som skræmmer væk er nok tit og ofte, at der (som regel) ikke ydes support eller garantier for FOSS, men det gør der vel heller ikke for ens egen kode-base i VBA eller hjemmestrikkede Excel-addons. Jeg tror på, at dataopgaver og IT begynder at blive så enormt domænespecifikt, at det bliver sværere og sværere at købe sig til slutprodukter, der kan opfylde ens rapporterings- eller analysebehov.

Hvis man vælger at bygge sin virksomhed op omkring proprietært software (modstykket til FOSS, f.eks. Microsoft Office), mister man al kontrol over, hvad der i næste version er muligt eller hvilken kode programmet i virkeligheden kører. Det er umuligt at gennemskue, om softwaren arbejder i ens bedste interesse. Alternativt er det praktisk talt umuligt at back-port sin kode-base, skulle man være uenig med den retning, ens software har valgt at gå i fremtidige versioner.

For mig at se, er FOSS den ultimative garanti. Al kildekode er frit tilgængeligt, så det er altid muligt at verificere eller ændre på koden, så udgangspunktet bliver sat i ens egne specifikke usecase og ikke i software-leverandørens interesser. Man er i kontrol af software, ikke omvendt.


Konklusion

Det blev en meget lang måde at sige, at jeg ikke er spor begejstret for Microsoft Office - og måske lige genereliserende og grov nok i kanterne, men jeg står nu fuldbyrdet ved ovenstående. For mig at se, er kerneoperationer for data-drevne virksomheder alt for vigtige til at blive overladt til et system, der ikke kan bære de løsninger, det bliver "kodet op" til. Vi er for dårlige til at se om os for nye måder at løse problemer på. Man er for fastlåst i gamle arbejdsgange. Selv som en udpræget teknisk person og en massiv fan-boy af Python er det også frustrerende for mig at kode R, men der findes cases, hvor øvrige programmeringsprog passer bedre til ens usecase. Det er på tiden vi vælger værktøjet til opgaven og ikke opgaven til værktøjet.

Og nu når vi er i gang med at ændre den måde vi arbejder på, hvorfor så ikke se os omkring efter muligheder, der frigør os fra interessenter der ikke vedrører kerneoperationerne. Hvorfor ikke give tilbage til open-source miljøet og i fællesskab løfte de tilgængelige databehandlingsværktøjer?

Jeg vil over de næste par måneder tage relevante problemstillinger og opgaver op her på siden, hvor jeg viser en Excel/konventionel løsning og dernæst præsenterer en alternativ måde at løse problemet på vha. FOSS redskaber. Det er vigtigt for mig at markere, hvor tilgængelige og stærke alternative redskaber er, når vi skal arbejde med data!

Jeg håber, du vil læse med!


Lidt ekstra læsning til de interesserede: