Ur en experts perspektiv:
Utveckling av informationssystem inom den offentliga sektorn behöver inte vara långsam
Utveckling av informationssystem inom den offentliga sektorn förknippas ofta med stora projekt, långa kravspecificeringsfaser och omfattande driftsättningar. Så var det också hos oss ännu då, när TE-digi-projektet tog fram de nuvarande systemen för arbetskraftsservicen, Jobbmarknaden och Expertens Jobbmarknad. Arbetet försvårades av att vi samtidigt behövde upprätthålla både de nya systemen och det gamla system som hade sitt ursprung på 1990-talet, samt genomföra övergången från det gamla systemet till det nya genom fem stora driftsättningar.
I dag är vi lyckligtvis inte längre bundna till den gamla tekniken eller det gamla arbetssättet. Numera inför vi förbättringar i produktion varje tisdag.
Rent tekniskt skulle vi kunna göra produktionssättningar varje dag. Vi har dock valt en veckovis rytm eftersom den kombinerar utvecklingstempo med användarnas behov av att i förväg veta vilka förändringar och förbättringar som är på väg till tjänsterna. Den veckovisa rytmen gör verksamheten förutsägbar samtidigt som varje enskild release hålls tillräckligt liten, vilket också gör riskerna lättare att hantera.
Hos oss är releaser tråkiga, medvetet
Forskningsprogrammet DORA (DevOps Research and Assessment) har granskat programvaruutvecklingens prestationer i över ett decennium. En av dess viktigaste slutsatser är att snabbhet och stabilitet inte utesluter varandra. I de mest framgångsrika organisationerna förstärker de tvärtom varandra.
Välfungerande organisationer gör täta releaser, deras förändringar misslyckas mer sällan och de återhämtar sig snabbt från störningar. Orsaken är mycket enkel. När releaser sker kontinuerligt kan varje enskild förändring hållas liten. En liten förändring är lättare att förstå, granska och testa, och vid behov kan den också snabbt återställas. Samtidigt blir det enklare att spåra orsaken till eventuella störningar eftersom produktionen inte belastas med tiotals sammanlänkade förändringar på en och samma gång.
Hos oss är releaser avsiktligt tråkiga, men den tråkigheten har inte uppstått av sig själv. Man uppnår inte veckovisa releaser bara genom att besluta att börja lansera oftare. Kontinuerliga releaser kräver tillräcklig teknisk och organisatorisk kapacitet, och dessa förmågor har vi byggt upp och stärkt målmedvetet utifrån DORA-modellen.
Kod, testautomatisering och teamens självständiga releaser
Trunkbaserad utveckling (trunk-based development) är en modell för versionshantering där utvecklare ofta integrerar sina små förändringar i en gemensam huvudgren. Långlivade utvecklingsgrenar undviks för att koden inte ska avvika från huvudversionen under längre tid och för att förändringar kontinuerligt ska kunna integreras, testas och lanseras. I praktiken arbetar utvecklarna antingen direkt i huvudgrenen eller använder mycket kortlivade utvecklingsgrenar som vanligtvis slås samman med huvudgrenen samma dag. Det centrala är alltså inte att helt förbjuda grenar, utan att de inte blir kvar i veckor eller månader.
Testautomatisering säkerställer att ett system som utvecklas snabbt testas kontinuerligt och att förändringar som orsakar fel snabbt upptäcks genom automatiserade tester. De automatiserade testerna bör omfatta exempelvis enhetstester, integrationstester och regressionstester. Kvalitetssäkring är därmed inte en separat fas i utvecklingsarbetet utan en integrerad del av utvecklingsprocessen. En omfattande testautomatisering hjälper till att hantera och minska riskerna med releaser samtidigt som leveranstakten ökar.
En mikrotjänstarkitektur gör det möjligt för ett team att lansera sin egen tjänst utan att hela systemet behöver släppas samtidigt. På så sätt hålls risken för en förändring så nära förändringens verkliga omfattning som möjligt. Molnteknologier erbjuder flexibilitet, skalbarhet och snabb tillgång till resurser.
Teamen har både mandat och förmåga att ta ansvar
Autonoma utvecklingsteam och decentraliserat beslutsfattande möjliggör snabba lösningar och beslut utan tunga och överbelastade beslutsprocesser eller omfattande godkännanderundor. Våra produktägare är experter inom verksamheten. De känner till syftet med det system som utvecklas, dess mål och de lagstadgade ramarna, och kan därför fatta prioriterings- och releasebeslut snabbt tillsammans med sina team. Som stöd i utvecklingen och beslutsfattandet har de experter både från UF-centret och från arbetskraftsmyndigheternas nätverk av vägledare.
När beslutsfattandet sker nära det praktiska arbetet går reaktionerna snabbare och ansvarstagandet ökar. Teamen kan lösa problem utan tunga godkännandeprocesser och fokusera på att skapa värde för kunder och användare. Detta stöder både ett smidigt arbetsflöde och medarbetarnas engagemang.
Ledningens uppgift är att ange riktningen, göra målen begripliga och skapa de ramar inom vilka teamen kan arbeta självständigt. Samtidigt måste ledningen undanröja sådana strukturella hinder som ett enskilt team inte kan lösa på egen hand.
Allt vilar på organisationskulturen
Den verksamhet som beskrivits ovan möjliggörs av en organisationskultur som bygger på människors sätt att samarbeta, dela kunskap, lösa problem och lära av erfarenheter. Kulturen i vår utvecklingsorganisation bygger på tillit, öppenhet och gemensamt ansvar. Målet är inte att undvika alla fel, utan att snabbt upptäcka problem, lära av dem och kontinuerligt utveckla verksamheten. Fokus ligger på att förstå situationer och förbättra arbetssätten. En sådan kultur skapar en trygg miljö där människor vågar lyfta fram sina iakttagelser, föreslå förändringar och experimentera.
Den veckovisa releasen är i slutändan bara den mest synliga delen av förändringen. Bakom den finns små och kontrollerade förändringar, automatiserad kvalitetssäkring, självständiga team, tydliga beslutsramar och en kultur av kontinuerlig utveckling. Ingen av dessa faktorer är tillräcklig på egen hand, men tillsammans gör de kontinuerlig utveckling både förutsägbar och trygg.
Författare
Matias Vainio
Enhetschef, UF-centret
Produktchef för Jobbmarknaden och Systemet Expertens Jobbmarknad