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


Som vi kan läsa i avsnittet historia så är low-code som koncept inget nytt under solen. Tekniken som sådan har förstås förbättrats genom åren men den stora hypen kring low-code har nog väldigt lite med själva tekniken att göra. Det som driver det enorma intressent kring low-code är istället de enorma utmaningar många upplever inom den digitalisering som pågår och som berör allt i vårt samhälle. Den här digitaliseringen ställer stora krav på organisationer att leverara nya applikationer och digitala upplevelser i ett allt snabbare tempo. När det är svårt att hitta programmerare och applikationsportföljens storlek och komplexitet exploderar på grund av omättliga krav – då blir low-code av största intresse. Detta då det bidrar till att lösa många grundläggande problem genom snabbare utvecklingstakt, ökad harmonisering och möjlighet att låta verksamhetsnära resurser utan programmeringskunskaper bidra.




Low-code i praktiken


Kort och gott så är low-code ett sätt att designa och utveckla applikationer snabbt och med minimal mängd manuell kodning. Low-code-verktygen är produkter och/eller molntjänster för applikationsutveckling där man använder visuella, minneslagrande tekniker istället för kostsam programmering. Low-code gör det möjligt för människor som är mer verksamhetsnära och saknar traditionella programmeringskunskaper att vara med i skapandet av en applikation ”Citizen Developers”. I vissa fall kan dessa kompetenser till och med själva bygga applikationen i verktyget, men oftast jobbar de snarare tillsammans med utvecklaren i en iterativ skapandeprocess. En low-code-plattform förenklar även för utvecklare och gör det möjligt för dem att bygga säkra applikationer snabbare än tidigare och med mer fokus på affärsnytta och design. Idén med low-code är att så mycket som möjligt av applikationen ska kunna byggas med dra-och-släpp, utan kod. Om det uppstår väldigt unika behov som inte finns som färdig funktionalitet i plattformen går det utan problem att bygga på egen kod och lägga till de som nya komponenter. På så sätt kan de hårt belastade utvecklarna lägga så lite tid som möjligt på det basala i en applikation och spara tid och energi till de unika delarna som kräver kod.

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


I praktiken är low-code ett verktyg där applikationer byggs i en visuell miljö med dra och släpp-funktioner. Inom ramarna för plattformen hanteras både gränssnitt, logik och data vilket medför att allt som skapas och ändras publiceras som en riktig applikation i realtid. Du kan alltså testa applikationen parallellt med att den byggs. Själva logiken i applikationen byggs upp i form av flödesdiagram där varje steg i diagrammet representerar en aktivitet och övergångarna styr applikationens flöde. Denna typ av utveckling brukar kallas konfigurering snarare än programmering.
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.
Low-code-plattformen ger därmed företag med komplexa behov möjlighet att snabbt och enkelt bygga stora, skräddarsydda system utan begränsningar.




Digitalisering och low-code


MIT Sloan delar upp digitalisering i tre kategorier: Skapa nya gränssnitt mot kunden, effektivisera befintliga processer och bygga nya affärsmodeller. Oavsett digitalt initiativ så uppkommer nästan alltid behovet av att ta fram någon form av gränssnitt eller applikation. Om företag och organisationer lyckas skräddarsy applikationerna utifrån de unika behoven och processerna finns stora möjligheter att skapa verklig konkurrenskraft. Tidigare har skapandet av nya applikationer oftast inneburit långa ledtider, behov av nyanställningar eller kostsamma konsulter. Med low-code-plattformar kan företag nu markant snabba upp omsättandet av idéer till faktiska lösningar som skapar värde för organisationen. Detta genom att i större utsträckning utnyttja mer affärsnära resurser i delar av utvecklingen och låta de hårt ansatta kodarna fokusera där deras kompetens verkligen kommer till användning.




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. Fördelen med en molntjänst är att du slipper de direkta investeringarna i infrastruktur och utvecklingsverktyg. Du får en flexibel miljö med dynamisk skalbarhet, säkerhet och lagring med kontinuerlig back-up. Prismodellerna skiljer sig en del mellan de olika spelarna. Många erbjuder någon form av gratis testmiljö. De större spelarna, som framförallt har fokus på storbolagen, har ofta en relativt högt ingångspris. Mindre spelare är ofta mer flexibla i sina prismodeller, med mer “pay-as-you-go-princip”, och kan lätt anpassa pris så att det matchar kundens affärsmodell.





[ Typ av low-code plattform ]

Plattformens inriktning


Ett sätt att kategorisera low-code-plattformar är att utgå ifrån vilken inriktning plattformen har:

  • 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.

Fördjupa dig i ämnet.




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.

MATERIAL

MATERIAL

Discover the tech trends in 2020 that are reshaping markets everywhere and driving the global economy. 16 Jan 2020

BLOGG

BLOGG

That idyllic, collaborative experience can happen today with low-code platforms. 11 Sep 2019

ARTIKEL

ARTIKEL

Den nya applikationen ska hjälpa Region Stockholm att digitalisera handläggning av ansökningar. Enligt Flowfactory har utvecklingen skett på bara 8 veckor. 14 Apr 2020


© lowcode.se - 2020. All rights reserved. Www.lowcode.se är en informations- och inspirationskälla för low-code framtagen av Flow Factory AB.
Flowfactory är en svensk low-code plattform. För frågor eller synpunkter om sidan kontakta oss gärna på contact@flowfactory.se