Bruger I mere end 5 minutter på at release til produktion? Så er der noget helt galt!

Formlen til at undgå dræbende projekter, der aldrig rykker videre og stagnerer, hedder MVP (Minimal Viable Product). Her kan man for alvor tale om at arbejde agilt -og have releases på daglig basis.

Anders Flarup Tofthøj
Software Engineer og Team Lead

Kender du dét, at der er gået 3 måneder siden jeres sidste release og du synes der er alt for længe til den næste? Du glemmer lidt hvad formålet er, og selvom alle knokler derud af, er det ikke noget der kommer brugerne til gode med det samme og dermed virker det hele til tider lidt ligegyldigt…


Sådan var oplevelsen desværre for mig i mange af de virksomheder, jeg har været ansat hos før. Højt niveau på agilitet var lig med en release til produktion max én gang om måneden. Og dét var mere undtagelsen end reglen. De fleste projekter og løsninger kørte på en måde, så selv release til produktion, var et projekt i sig selv og ingen syntes at releaseprojektet var sjovt. Halvårlige og årlige releases var heller ikke unormalt i vandfaldsprojekter, - som desværre stadig findes i softwarebranchen i dag.

Men sådan behøver det heldigvis ikke at være. Formlen til hvordan man undgår de dræbende projekter, der aldrig rykker videre og stagnerer, hedder MVP (Minimal Viable Product). Her kan man virkelig tale om at arbejde agilt -og have releases på daglig basis.

Nøglen til MVP og hurtige releases er egentlig ret enkel. Det handler om at automatisere alt.

Mange afholder sig fra at gå denne vej, da de frygter at det bliver for tidskrævende at implementere. Men den tid der bliver investeret, får man mange gange igen, så efter min mening er det bare at komme i gang! Men hvordan får man omstillet sin udviklingsafdeling til at være MVP fokuseret? Her er en kort gennemgang af mine foretrukne metoder og værktøjer.

Det hele starter med automatiseret test!

Den nemmeste måde at arbejde med automatiseret test er at sikre sig at jeres udviklingsproces er baseret på Test Driven Development (TDD). På den måde får I udviklet unittest, UI test, integrationstest og load test, som en del af jeres featureudvikling. Vi anvender værktøjer som Azure DevOps, Selenium og xUnit. Og så naturligvis vores værktøjskasse CADD, som hjælper os med at automatisere og simplificere alle aspekter af testen, og som gør det nemt at komme i gang med TDD.

Kodeanalyse-værktøj, som StyleCop, sikrer desuden at I får en ensartet kode og fanger problemer allerede når udvikleren skriver koden. Kombineret med SonarQube til den løbende overvågning af koden, så står man stærkt i selve udviklingsprocessen.

Når I har styr på automatisering af test og jeres udviklingsproces, så er næste skridt at få etableret automatiseret deployment. Jeg har alt for tit oplevet deployment processer, som involverer at man logger på en server, kopier nogle filer og så i bedst fald kører et script, der har automatiseret visse dele af processen. Men det er med risiko for at glemme dele af den manuelle deployment, at der deployes forkerte versioner til forkerte miljøer eller at der måske ikke deployes til alle servere. I dag findes der mange gode værktøjer til at understøtte den fuldautomatisk deployment. Vi har god erfaring med at benytte en kombination af CADD, Azure DevOps, Powershell og ARM templates.

Sidste skridt

Sidste skridt er at gøre det nemt at overvåge jeres miljøer så fejl fanges med det samme - og selvfølgelig inden brugerne opdager dem. Det gør det nemt at lokalisere de opdateringer, der har forsaget fejlene, når overvågningen slår ud med det samme.

CADD kommer med en masse indbygget overvågning og Application Insights fungerer godt til eksekvering af overvågning og understøtter at man hurtigt kan gå i dybden med fejlsøgning hvis noget fejler. Dette kan med fordel suppleres med en automatiseret overvågning, der kan sammenligne dataafvigelser mellem et preproduktions- og produktionsmiljø, så I løbende vil kunne se konsekvenserne af de store daglige batchkørsler, inden I ruller dem ud i produktion.

Ud over at forretningen nok bliver begejstret over at få høj værdi både hurtigere og billigere, så får I oveni også glæden af et team med glade udviklere. For nu vil de nemlig kunne fokusere på at bygge nye features, frem for at fixe gamle fejl, som ingen aner hvornår er introduceret.


Vil I gerne i gang med MVP?

Ræk ud til os og få sparring omkring at omstille jeres udviklingsafdeling til at arbejde agilt for alvor.

Jeg ønsker sparring