Fredrik Normén som är ett välkänt namn i utvecklar-Sverige har naturligtvis kommit i kontakt med kontinuerliga leveranser, continuous delivery. Han är till vardags konsult på Squeed och pratade nyligen om sina erfarenheter på konferensen Swetugg i Stockholm.

Han lade tonvikten vid praktiska lösningar som kan genomföras av utvecklarteam utan storslagna satsningar på metoder, verktyg och tekniska plattformar. Man förstår snabbt att det handlar om sunt förnuft:

Läs också: Alla vet att kvalitetssäkring är viktigt men varför slarvas det så med mjukvarutester?

– I ett projekt med treveckors iterationer diskuterade vi hur vi skulle kunna få till tätare leveranser. En av teammedlemmarna kom med förslaget att ha kortare iterationer, berättar Fredrik Normén.

Fredrik Normén
Fredrik Normén, ett välkänt namn i utvecklar-Sverige, är konsult på Squeed.


En sammanfattning av Norméns föredrag är att det handlar om att eliminera hinder mot kontinuerliga leveranser. Här följer ett axplock av goda råd.


Undvik förgreningar

När en eller ett par, utvecklare arbetar med en viss funktion i en applikation är det vanligt att de skapar en förgrening, så kallad feature branch, av projektet. På så vis går det att prova sig fram utan att påverka redan stabila funktioner i projektet. Men det uppstår ofta problem när olika förgreningar ska slås ihop till ett projekt vid leverans. Det blir konflikter mellan förgreningarna.

En lösning på problemet är att inte skapa förgreningar, utan i stället inaktivera och aktivera olika funktioner i ett projekt. Det brukar kallas ”feature toggling”.

– Det är inte fel att leverera programkod som inte är klar om den inte körs, säger Fredrik Normén.

När koden är klar aktiveras den i den skarpa installationen. Det här kan göras på olika sätt, till exempel med hjälp av if-satser i koden.


Använd köer

Utvecklare tänker ofta i termer av att skapa lösningar för hela processer. Det gör att det inte går att köra en applikation alls om en del modifieras. Det fattas helt enkelt en del i kedjan.

Ett exempel är att en kreditkontroll ska göras för en e-handelstjänst, sedan ska en order hanteras. Om programkoden för orderhanteringen ska skrivas om kan inga ordrar hanteras, även om kreditkontrollen fungerar som vanligt. Lösningen på problemet är att köa ordrar för kunder som klarar kreditkontrollen. När koden för själva hanteringen av ordrar är klar betas kön av. På så vis påverkas hela processen så lite som möjligt.

Läs också: Alla pratar om devops – men vad är det egentligen?

Förenkla databashantering

Hantering av databaser i programkod, till exempel för att hämta data, är en källa till frustration för många utvecklare. Det traditionella sättet att lösa den uppgiften, med språket sql, känns onaturligt för många utvecklare. Fredrik Norméns förslag till lösning är att sköta så mycket av databashanteringen som möjligt med samma språk som resten av en applikation är skriven med.

Ett exempel är att skriva C#-kod för databashanteringen i Dotnetprojekt. Det finns åtskilliga ramverk som gör det här sättet att arbeta enklare.


Låt komponenter installera sig själva

Det finns olika metoder för att göra delar av applikationer medvetna om hur de ska installeras, eller ”deployas” som är uttrycket som används, och på så vis förenkla leveransen. Med hjälp av verktyg som Powershell och kataloger med konfigurationsinformation går det att komma långt.