Bygg applikationen snabbt och enkelt med low-code
Low-code är en teknik som markant snabbar upp utvecklingen av nya applikationer eftersom de byggs i en visuell miljö, med drag-och-släpp-tekniker, ofta helt utan behov av programmering.
Både Gartner och Forrester rubricerar low-code som en global megatrend inom applikationsutveckling och portföljharmonisering. De menar att den nya low-code-tekniken gör det möjligt att dramatisk accelerera företags digitala förmågor.
[ Fenomenet ]
Renässans eller revolution
Low-code i praktiken
I och med att applikationen byggs i realtid på en low-code-plattform kan den också testköras kontinuerligt i processen vilket i praktiken betyder att förändringar och förbättringar kan göras direkt i prototypen.
Med low-code kan alltså företag och organisationer snabbare och enklare skapa skräddarsydda applikationer för organisationens olika behov.
Så fungerar low-code
Low-code plattformar rymmer stora bibliotek av standardfunktioner som används som byggstenar för att snabbt kunna få upp en skräddarsydd applikation. Om de tillgängliga komponenterna inte räcker till finns möjlighet att koda egna komponenter.
Utöver verktyget för att bygga applikationer innehåller low code-plattformen också stöd för applikationsprojektets resa från idé till distribution av färdig applikation. Som standard levereras en low code-plattform som SaaS-lösning (Software as a Service) via molnet men kan även installeras lokalt (on premise). Med en molnlösning blir all teknik omhändertagen och applikationerna fullt skalbara.
Många applikationer börjar sitt liv på en white board; det revolutionerande med low-code är att om vi byter ut tavlan mot ett grafiskt low code-verktyg, och ritar strukturen för applikationen i verktyget istället för på en white board, har vi inte bara tagit fram en design, vi har faktiskt redan skapat större delen av applikationen.
Det finns många fördelar med det här sättet att utveckla applikationer på. Dels ger det grafiska tillvägagångssättet en betydligt bättre överblick och förståelse för hur de olika delarna av en applikation hänger ihop, dels tar det avsevärt mindre tid. Faktum är att när utvecklaren väl har vanan inne går det fem till tio gånger så fort att producera applikationen med low-code än med traditionell utveckling. Vidare innebär low-code att dörren till applikationsutveckling öppnas för betydligt fler människor, eftersom man inte behöver ha den traditionella programmeringsbakgrunden.
Low-code betyder inte no-code. På en no-code-plattform är du begränsad till den funktionalitet som finns inom ramarna för plattformen, vilket gör att dessa plattformar passar bättre för mindre applikationer och prototyper. På en low-code-plattform finns inga begränsningar för applikationens storlek och komplexitet då plattformen ger dig möjlighet att bygga på egen kod vid behov. Tanken med low-code är att den stora majoriteten av applikationen ska kunna byggas med hjälp av de komponenter och funktioner som finns på plattformen. Om det uppstår behov av specialfunktioner och integrationer går det att programmera egen kod som sen adderas som nya komponenter i utvecklingsverktyget.
Digitalisering och low-code
As a service
Alla low-code-plattformar har sin utgångspunkt i molnet och köps normalt som en tjänst som i någon form är baserad på antal användare.
[ Typ av low-code plattform ]
Plattformens inriktning
-
Nischspelare: Nischad low-code innebär att utgångspunkten är ett specifikt tillämpningsområde och passar bäst för applikationer inom en viss kategori eller ett visst användningsområde. Nischade low code-plattformar kan exempelvis vara inriktade mot Customer Relationship Managemnt (CRM), Business Process Management (BPM), ärendehantering eller specifika verktyg for mobila tillämpningar.
-
Ekosystem: Den här typen av low-code ingår i ett ekosystem av produkter och tjänster. Ett par exempel är Google’s App Maker och Salesforce’s Force.com. Här sker low code-utveckling inom ramarna för leverantörens eko-system.
-
General Purpose: General Purpose kan bäst översättas till generellt syfte på svenska och det passar väl in i det här syftet. General Purpose-plattformar har ingen speciell inriktning när det kommer till användningsområde eller typ av funktionalitet, utan används för att bygga generella affärsapplikationer. Det är framförallt inom utvecklingen av kraftfulla affärsapplikationer som General Purpose low-code kommer till sin rätt. Vanliga exempel på sådana här applikationer är olika typer av säljsupporterande system, administrativa system eller applikationer för att testa nya produkter och idéer.
Företag och organisationer har alltså stora möjligheter att snabba upp utvecklingen av de applikationer de behöver inom organisationen och kan enkelt skräddarsys och anpassas till de unika behoven en organisation kan tänkas ha. De applikationer som går att köpa från hyllan , är generellt byggda för att passa så många som möjligt och kräver därmed ändå en massa anpassning för att i slutändan passa kundens behov.
Kod-eller inte kod
Ett sätt att kategorisera low-code-plattformar är hur applikationen de facto byggs. Den ena typen av plattform genererar körbar kod, medans den andra inte skapar någon kod alls utan en modell eller beskrivning av hur en applikation ska se ut och fungera.
Skillnaden är lite som att bygga ett hus i verkligheten och bygga ett hus på en datorskärm. ”In real life” (IRL) så måste ett hus stå på marken någonstans för att vara ett hus – men i den digitala världen är ett hus ett hus om man kan se och använda det på skärmen eller i sitt VR head-set.
Det finns lite fördelar och nackdelar att fundera på kring de olika alternativen. Låt oss kalla kategorierna kod-genererande- och modell-drivna verktyg.
Kod-genererande verktyg spottar som sagt ut en exekverbar (körbar) kod. Fördelen är att man kan skule köra applikationen helt frikopplat från low-code plattformen. Detta kan vara en fördel om man behöver applikationer som ska köras i off-line läge, där man inte har tillgång till internet t ex. Det kan också finnas vissa fördelar i hastighet då en direkt körbar kod inte kontinuerligt behöver översätta hur applikationen ska upplevas för användaren som fallet är i den modell-genererande kategorin. I den här kategorien finns även verktyg som benämnes rapid applikation development (RAD) -verktyg – där syftet är att skapa fristående applikationer utan stora programmeringsinsatser.

Model-drivna verktyg använder sig av en definition för hur applikationen ska fungera som är helt frikopplade från den exekverbara koden. Här är fördelen att man kör alla applikationer på en och samma underliggande och delad kodbas och att skapa ny funktionalitet och nya applikationer för användarna handlar om att rita upp nya processer och funktioner, och sedan publicera dessa utan att några förändringar i den underliggande koden genomförs. Eftersom alla applikationer som skapats använder samma kod-bas behöver man inte hantera tekniska uppgraderingar för respektiva applikation. Många moderna low-code plattformar använder idag den här model-drivna tekniken eftersom den ger ökat flexibilitet och minskar komplexiten.
När det gäller hantering av flera applikationer på en och samma low-code plattform så kan man se vissa fördelar med att använda modell-driven teknik. Uppgraderingar av applikationeran kräver inte att man uppgraderar den underliggande koden som är fallet om man använder kod-genererande teknik. Värt att nämna är att vissa leverantörer har skapat applikationer som i sin tur hanterar uppgraderingarna för respektive applikation som byggts på plattformen. Vår spaning är att det driver ökad komplexitet och kostnad över tid, och att dessa leverantörer kommer försöka växla över till modell-driven teknik eftersom det håller ner komplexitiet över tid – något som i slutändan kommer kunderna tillgodo.
Typ av användare
Ett sätt att kategorisera low-code-plattformarna är vilken typ av kompetens den som bygger applikationerna har. Här kan man se två huvudspår – Low-code för ”amatörer” och low-code för professionella utvecklare. Low-code för amatörer är designade för att vanliga icke-programmeringskunniga ska skapa applikationer helt utan programmering.
Och tanken är god – genom att skapa verktyg som kräver noll programmeringskunskap kan helt nya kompetenser, med stor kunskap om VAD man vill åstadkomma skapa affärsnytta utan inblandning av programmerare.
Den andra kategorin riktar in sig på professionella utvecklare som genom att använda en low-code plattform får mer kontroll och flexibilitet, samtidigt som man ökar hastigheten radikalt eftersom man slipper många mondäna uppgifter och moment som krävs vid traditionell programmering.
Vad är bäst då? Det beror förstås på syftet och vilken typ av applikationsbehov man har. Det man kan fundera på är långsiktigheten. Om syftet är att skapa applikationer med ett begränsat antal användningsområden och kanske inte så stora applikationer kan low-code för amatörer räcka bra. Den andra kategorien gör det möjligt att bygga större och komplexare applikationer och långsiktigt tar man troligtvis en mindre risk att måla in sig i ett hörn där man sedan upptäcker att plattformen inte klarar av krav man från början inte visste att man hade.
Den gyllene medelvägen är att kika på plattformar som inte har begränsningar, men som medger att icke-programmeringskunniga kan skapa mycket av applikationernas funktionalitet – och där man kan låta professionella utvecklare hantera de mer komplexa delarna i applikationen. På så sätt kan man skapa maximal nytta och samtidigt utnyttja resurser på bästa sätt utifrån kompetensbehov för varje enskild applikation.
Pris och prestanda
Ett sätt att kategorisera low-code-plattformarna är genom pris och prestanda. Det finns plattformar som skräddarsyr för företagskunder med djupare kapacitet och som därmed har högre prislappar. Vidare finns det plattformar för professionella utvecklare som syftar till att öka deras produktivitet, dessa kräver en del förkunskaper inom programmering. Andra plattformar är mer avskalade, med färre anpassningsalternativ, för små- och medelstora företag. De erbjuder faktiskt mycket av samma möjligheter och funktionaliteter som de mer utvecklade plattformarna, men med en flexibel kostnadsstruktur.
[ Historia ]
Generationers utveckling
Att påstå att low code-plattformar för applikationsutveckling har haft en inverkan på programmeringsvärlden skulle vara en underdrift, de har revolutionerat hur företag och utvecklare arbetar.
Redan 1982 släpptes boken “Application Development Without Programmers”, skriven av visionären James Martin. I boken skriver han bland annat att "antalet programmerare som är tillgängliga per dator krymper så snabbt att de flesta datorer i framtiden måste sättas i bruk åtminstone delvis utan programmerare."
Inom IT-industrin på 1980- och 90-talet var de nya lösningarna orienterade kring att avlasta efterfrågan på nya applikationer till användarna själva. Dessa teknologier inkluderade bland annat fjärde generationens programmeringsspråk (4GL), datorstödda mjukvaruverktyg (CASE) och rapid application developement (RAD) verktyg. I slutändan misslyckades dessa nymodigheter med att störa den traditionella applikationsutvecklingen av flera anledningar. Bland annat lovade dessa nya tekniker mer än de kunde leverera. 4GL gav exempelvis en inblick i hur enkelt applikationsprogrammering så småningom skulle bli, men de klarade inte av att leva upp till förväntningarna. Vidare stödde inte verktygen en automatiserad process. Versionskontroller, dokumentation och annan processpraxis fanns inte för verktygen och behövde alltså utföras manuellt.
Internet förändrade allt
Säkerhetsriskerna förstärktes dessutom med de verktyg som fanns tillgängliga på den tiden. Personer utan rätt kunskaper kring säkerhet och programmering uppmanades att bygga fristående programvaruapplikationer, vilket äventyrade hela organisationer, men den största anledningen till varför dessa tidiga verktyg inte slog igenom var internet. I mitten av 00-talet var en betydande del av mjukvaruutveckling redan inriktad på webbapplikationer.
Internet är en enorm plattform där olika system som kör olika plattformar måste fungera bra med varandra. På grund av detta måste programmeringsspråk utvecklas för att stödja det behovet. Webapplikationer blev mer populära, webbläsare blev mer komplexa, vi började använda mindre och enklare skript för enklare uppgifter och istället för att ha ett komplett programmeringsspråk, flyttade fokus till funktionalitet. Om ett programmeringsspråk kunde göra en sak, och göra det bra, så var det användbart. Programmen behövde utvecklas i snabbare takt och programmeringsspråken behövde vara tillräckligt lätta att stödja den nya utvecklingen. Det var egentligen här som snabbutveckling och low-code började, man var fokuserad på att hjälpa utvecklare att snabba på utvecklingsprocessen istället för att spendera flera timmar på att leta efter den plats där de hade missat ett semikolon.
Low code-plattformar för applikationsutveckling har gjort programmeringen enklare och mer effektiva än någonsin tidigare. I stället för att skriva hundratusentals kodrader för att skapa en applikation har dessa plattformar gjort det väldigt enkelt för oss med visuella arbetsflöden, dra och släpp-funktioner och många möjligheter till integration med befintliga arbetssystem.
Low-code development platforms reduce the amount of traditional hand-coding, enabling accelerated delivery of business applications. A common benefit is that a wider-range of people can contribute to the application's development—not only those with formal programming skills. LCDPs also lower the initial cost of setup, training, and deployment".
- Forrester
Starkt tillväxt
Low-code-marknaden har en årlig tillväxttakt på över 50% och uppgår idag till ett värde på ca 4 miljarder dollar.

A low-code development platform (LCDPs) is software that provides an environment programmers use to create application software through graphical user interfaces and configuration instead of traditional computer programming. The platform may focus on design and development of a particular kind of application: such as databases, business processes, or user interfaces such as web applications. Such platforms may produce entirely operational applications, or require additional coding for specific situations".
- Wikipedia

Förenklad utveckling är inget nytt
Med visuella utvecklingsverktyg kan man designa sin applikation med fullt fokus på resultatet och med hjälp av en komplett teknisk plattform behöver man inte alls tänka på hur den ska göras tillgänglig för alla ens användare. Dessa typer av verktyg är egentligen inte nya utan har funnits under flera år.