Den ultimative guide til hvad software er og udviklingen bag den

I dag har jeg givet ordet videre til en af mine nære venner, Armin. Armin driver et konsulenthus med hovedsæde i København, kaldet MeeW. Armin og hans team bruger primært energi på at udvikle systemer, herunder bla. apps til store og mellemstore virksomheder, men er ligeledes involveret i teknologiske projekter såsom en hjernescanner som jeg har fået muligheden for at prøve.

Jeg oplever en del spørgsmål på bloggen omkring hvordan man kommer i gang med at udvikle sin egen app og ikke mindst hvor man skal starte hvis man har en idé til et stykke software.

Derfor føltes det helt rigtigt i maven at give ordet til Armin – og ikke mindst lade ham tage jer alle igennem rejsen omkring softwareudvikling, som det foregår hos MeeW.

Så velkommen til Armin!

Tak Micky!

Først og fremmest en lille introduktion af MeeW.

MeeW er en mellemstor 5-årig danskejet digital virksomhed med over 50 medarbejdere i hjertet af København, der tilbyder digital transformation, vedligeholdelse af software og andre digitale løsninger, der kan gavne både små såvel som store danske virksomheder. Vi tilbyder løsninger indenfor alt fra AI, IOT, software- og hardwareudvikling.

Alt fra opsætning af netop jeres helt egen personlige app, hjemmeside, til udvikling af softwaresystemer og videre til Danmarks første private hjernescanner.

Så fik vi det på plads, lad os kigge lidt nærmere på roden i at få skabt noget godt software.

Den ultimative guide til hvad software er og udviklingen bag den

I takt med at teknologien hele tiden udvikler sig, er behovet for effektive og opdaterede software-systemer også blevet væsentligt mere efterspurgte og nødvendig for de fleste virksomheder og organisationer.

Men hvad er software?

Software omfatter et sæt af programmer der instruerer en computer eller server til hvordan den skal agere eller gøre i visse situationer. Selve udtrykket software, blev opfundet med henblik på at skabe et skel til hardware dvs. de fysiske komponenter i et computersystem.

Vi udvikler eksempelvis også software til hardware. Her ses Curvex som er en hjernescanner hvor vi er med på den teknologiske innovation.

Softwaren skal derfor tildele med et sæt af instruktioner, der leder en computer eller en helt konkret server til at udføre en opgave m.a.o. et softwareprogram.

Hvordan er software opbygget?

Som udgangspunkt er der to former for software: systemsoftware og applikations-software. System software er med til at kontrollere og administrere en computers intern funktionalitet, gennem et operativt system, som også er med til at kontrollere og perifere enheder såsom skærme, printere og lagerenheder.

Applikationssoftware derimod, dirigerer selve computeren til at udføre visse kommandoer og handlinger, givet på baggrund af brugeren. Applikationssoftware omhandler således tekstbehandlingsprogrammer, regneark, databasestyring, lager- og lønningsprogrammer og mange andre former for applikationer.

Et lille udsnit fra vores app udvikling af Omnipod

En helt tredje softwarekategori der kan refereres til, er netværkssoftware, der koordinerer kommunikation mellem computere, der er forbundet til hinanden via. ens online netværk.

Software er som udgangspunkt ”storaged” på en ekstern og langtidshukommelsesenhed, fx en harddrive eller en diskette. Når selve programmet er i brug, vil selve computeren læse den angivne data, kode og dermed instrukser fra det eksterne device, efterfølgende vil computeren midlertidigt placere mindre instrukser i ”random access memory”, også kaldet RAM.

Efterfølgende performes de forskellige handlinger på baggrund af de angivne instrukser. Overordnet set er softwareprogrammer og procedurer opbevaret i computerens hukommelsesenhed, ved hjælp af en skrivebeskyttet (ROM) teknologi, såsom hardware.

Hvad koster det at få opbygget eller opdateret dit softwaresystem?

Vi møder dig, der hvor du er. Vi startede selv i 2017 med at udgive egne apps, hvorfor vi ved, hvordan det er at være et startup og bootstrappe. Så uanset jeres budget, hjælper vi jer i mål.

Sådan arbejder vi hos MeeW

Hos MeeW betragter vi teknologi, som noget der går i forlængelse af vores sanser. Vores evne til at kommunikere kan understøttes af teknologi på mange måder. Det kan mere nøjagtigt betragtes som en overordnet dimension, hvor du har adgang til alle former for information og viden.

En computer kan producere væsentligt mere regnekraft end hvad et menneske kan, og dermed kan software være med til at automatisere de menneskelige processer væsentlig mere end man går og tror. Det kan som et værktøj forbedre og skabe en bedre overordnet vidensdeling.

Hvilken proces gennemgås der i forbindelse med udviklingen af ens software?

Først og fremmest er det nødvendigt at kortlægge afsenderens behov, og dermed finde ud af:
1. Hvad skal der laves?
2. Hvem skal vi lave det for?
3. Hvad er værdien i det der skal skabes?

Selvom en stor del af forarbejdet ligger i at klargøre afsenderens behov, brugerfladen og designet, forud for den software der skal programmeres, så vil dele af det arbejde der udføres være betinget af en løbende dialog, hvor der evalueres på produktionen og processen. Det er en tidskrævende proces, hvorfor kunden skal holdes i loopet, og skal inkluderes i processen.

Kvalitetssikring

Det er vigtigt at der opsættes et kvalitetskrav til koderne. Hos MeeW sikre vi en vis kvalitet ved at holde fokus på læsbarheden i koden, konsistensen, dry (don’t repeat yourself), simpel navngivning af variabler, samt en mappestruktur der sikrer at der kan skabes en organiseret kode, så der kan navigeres videre rundt.

Herudover er det vigtigt løbende at evaluere og teste på performancelængden (hvor hurtigt koden kører), i forhold til hvorvidt udbyttet er som ønsket. Selvom en koden fremgår nok så struktureret og velorganiseret igennem sin navngivning, læsbarhed og samtidig dry udarbejdelse, så er det ikke ens betydende med at dens performance er der hvor den skal være.

Hvor vigtig er dokumentation?

Selvom det nok giver sig selv, så er dokumentationen bag det arbejde der udføres nødvendig for at kunne forstå hvordan og hvorfor de forskellige kode-elementer er blevet implementeret.

Vi opretter derfor en mappe der ligger til grund for hvert enkelt projekt, med dokumentation og beskrivelse af hvordan koden fungerer, og forklaringen omkring hvorfor der er taget de forskellige arkitektoniske valg.

Ved at opbevare mere konkrete beskrivelser omkring processen, sikres der en aktiv forståelse for de forskellige valg der er truffet omkring koden, og dens tilblivelse.

Værdien bag et opdateret softwaresystem

Men hvad er værdien?

Det kan være svært direkte at tracke hvorvidt systemet direkte tildeler med en værdi til dine brugere, udover at der kan foretages mindre surveys-undersøgelser der udspørger den enkelt forbruger, der anvender eller gør brug af jeres systemer og eller derimod hjemmeside.

Dog kan den enkeltstående brugeroplevelse have en væsentlig indvirkning på hvordan jeres app eller hjemmeside kommer til udtryk eller tolkes på af netop jeres brugere.

Hvis dele af ens software ikke tilgodeser selve brugerbehovene eller jer som virksomhed, vil flere væsentlige handlingsmuligheder gå tabt.

Det er derfor vigtigt som afsender at tage forbehold for, hvordan I positionerer jer, og hvilken perception/opfattelse brugeren får på baggrund af jeres software og visuelle designs.

En opgradering af en allerede tilstedeværende software vil altid have en vis risici, da man ”omskriver” noget allerede eksisterende der virker.

Det kan derfor være ret så risikabelt at man går ind og påvirker eller koder et system der allerede virker. Men hvis koden og selve opsætningen er struktureret, vil risiciene oftest ikke være så store.

En stor del af vores mission er at skabe gode rammer for udviklere der kommer til Danmark. Vores partner Christoffer Martini Tybjerg deltager ofte i konferencer for at adressere dette. 

Opsummering

IT og Software har et kæmpe potentiale i forhold til at kunne optimere din virksomheds digitale infrastruktur. Specielt hvis man arbejder med data, så er det nødvendigt at forholde sig til hvilke instruktioner og afgræsninger der er behov for, for netop dit/jeres system.

Forhåbentligt har indlægget givet anledning til nogle refleksioner og hvorvidt i besidder nogle nuværende udfordringer, som kan imødekommes.

Kommentarer

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.

Vil du ikke gå ikke glip af noget?

Tilmeld dig nyhedsbrevet og få alle mine tips og tricks gratis i din indbakke.