Continuous Delivery p¥ 5 minuter

Click here to load reader

download Continuous Delivery p¥ 5 minuter

of 16

  • date post

    22-Jul-2016
  • Category

    Documents

  • view

    221
  • download

    4

Embed Size (px)

description

Continuous Delivery, CD, är en metod som gör att mjukvaruorganisationer kan leverera nya versioner eller uppdateringar snabbt och löpande utan att drabbas av interna förseningar eller kvalitetsproblem. Denna broschyr ger en snabb introduktion till metoden.

Transcript of Continuous Delivery p¥ 5 minuter

  • CONTINUOUS DELIVERY

    p minuter5

  • 2EN VANLIG DAG P JOBBET

    Hur gr det egentligen? Kunden r p mig och undrar nr vi kan leverera!

    Jag vet inte om det r tillrckligt bra kvalitet p detta.

    Lycka till! sger jag det kommer att ta tv veckor, precis som allting annat hr.

    Behver din organisation strama upp kvaliteten och leveransskerheten och f njdare kunder p kpet?

    D rekommenderar vi en nrmare titt p Continuous Delivery metodiken dr

    du alltid vet vad koden har fr status: klar fr leverans! teamet fr snabbt bekrftat efter varje ndring av koden att allting

    fungerar du tidigt kan ge kunden ngot att prova och ge terkoppling p stressnivn sjunker och utrymmet fr kreativitet kar

  • 3Och hr sitter jag och grver i kod som jag hll p med fr en mnad sen

    det gr snabbt att anpassa sig till ndrade frutsttningar och kund - nskeml dina utvecklare slipper grva fram gamla problem som borde varit lsta

    fr lnge sen din organisation kan ge leveranslften som kunden kan lita p

    Inte minst r Continuous Delivery en metodik som lter utvecklarna fokusera p att skriva bra kod; de vet ju att det som de levererar faktiskt fungerar tillsammans med andra delar av mjukvaran.

  • 4VAD INNEBR CONTINUOUS DELIVERY?Continuous Delivery, CD, r en metod som gr att mjukvaruorganisationerkan leverera nya versioner eller uppdateringar snabbt och lpande utan att drabbas av interna frseningar eller kvalitetsproblem.

    Metoden r till fr team som samarbetar kring en gemensam mjukvaru-produkt eller -tjnst. Den bygger p ett arbetsflde dr varje utvecklare tar stort individuellt ansvar fr kvaliteten p koden. Automatiska tester utfrs omedelbart efter varje ndring eller komplettering av koden. Arbetet prg-las av korta cykler och snabb terkoppling. Det gr att mjukvaran stndigt r testad och klar fr skeppning. Drfr behver inte ny funktionalitet, frbttringar och buggfixar paketeras i stora uppdateringar utan kan lev-ereras s fort de r klara.

    Mottagaren eller kunden kan vara ett team inom samma organisation eller en affrspartner (som inte r slutanvndare av mjukvaran).

    Notera att den slutliga produktionssttningen inte ingr i begrep-pet CD. Nr vi gr paketerad och levererad mjukvara tillgnglig fr slutanvndaren talar vi hellre om Continuous Deployment.

    Individuelltansvar fr

    kvalitet

    Automatisktestning

    Korta cykler,snabb feedback

    Stndigt levererbar mjukvara

  • 5PRINCIPERNA FR CONTINUOUS DELIVERYContinuous Delivery innebr att den kod som produceras hela tiden och p alla niver befinner sig under kvalitetskontroll, frmst genom automatisk testning. Koden ska s fort som mjligt testas i sin kontext och paketeras fr att bli redo fr leverans.

    Individuellt ansvar fr kvalitetHuvudloopen i CD r den individuella utvecklarens arbete med kodnd-ri ngar som byggs och testas innan de integreras med teamets vriga kodndringar. Arbetet bygger p tillit och laganda: varje utvecklare mste utfra sin del av arbetet p ett frutsgbart och noggrant stt, utan att ta genvgar eller gra fulhack (ls grna Clean Code p fem minuter).

    Automatisk kvalitetsskringFr att kvalitetsskringen ska flyta mste den automatiseras s mycket det gr ven om kodgranskning fortfarande har sin plats. Det fr ocks det goda med sig att utvecklarna tillbringar minimalt med tid p kvalitets-kontrollen av varje leverans. En ytterligare frdel r att automatiseringen minskar risken fr fel. Nr man tillmpar CD ska det alltid g undan; till exempel br testningen av nya kodndringar vara klara inom en timme.

    Korta cykler med snabb och kontinuerlig feedbackHr fljer CD de sedvanliga principerna fr Agile. CD handlar om att f ett komplext samarbete att flyta utan vntetider eller fel som kugghjulen i ett vloljat maskineri.

    Genom att kontinuerligt lgga till sm ndringar som testas fr teamen god insikt om hur lngt de har kommit och tar drigenom en liten risk vid varje tillgg. Produkten kommer med stor sannolikhet att kunna sttas i produktion strax efter det att de senaste tillggen gjorts i koden.

  • 6CONTINUOUS DELIVERY I PRAKTIKENContinuous Delivery handlar om att bli duktig p att hantera kod, byggen, test och leveranser effektivt. Resultatet blir ett vlsmort maskineri dr man utvecklar produkten inkrementellt med tillgg och rttningar i sm steg. Produkten r hela tiden redo att levereras.

    En fungerande CD-organisation bygger p att bde individer och team behrskar fyra s kallade discipliner:

    kod (code) verktyg och processer fr att lgga till ny kod samt hantera versioner.byggen (build) verktyg och processer fr att bygga koden i en produkt.test (test) verktyg och processer fr att hantera testkod tillsammans med kod fr produkten samt automatisk test av produkten.leveranser (delivery) frmgan att paketera mjukvaran och gra den tillgnglig fr kunden.

    Nr organisationen har uppntt hg mognad inom disciplinerna uppkom-mer det sllan ngra negativa verraskningar vid integration och leverans.

  • 7I en vl fungerande CD-organisation snurrar leveranshjulet (= den gra cirkeln) hela tiden i hg hastighet.

    Notera hur de fyra disciplinerna kod, byggen, test och leveranser gr igen p varje niv. Man skulle nstan kunna sga att CD har en fraktal struktur!

    Minst en gng om da-gen r organisationen redo att skeppa en ny produktversion till kunden.

    Den kod som har inte-grerats och hur testerna har utfallit visualiseras tydligt. Alla kan enkelt se vilka tillgg som gjorts frn backloggarna varje dag och hur testresultatet ser ut dels fr de nya funktionerna, dels fr de sedan tidigare existerande funktionerna.

  • 8UTVECKLAREN STR I CENTRUM I CONTINUOUS DELIVERYI Continuous Delivery efterstrvar man att utvecklaren har s effektiva verktyg och processer som mjligt fr hantering av de tre disciplinerna kod, bygge och test. Mjligheten att f vrdefull terkoppling gr att ut-vecklaren sporras till att jobba i snabba cykler och drigenom tillmpa den fjrde disciplinen: att leverera kodndringar s fort de r klara. Genom att alla jobbar p samma stt finns de senaste kodversionerna frn vriga utvecklare tillgngliga hela tiden testade och klara. Vntetiderna mellan olika delar av organisationen blir drigenom s korta som de ngonsin kan bli. Via tydlig visualisering frstr alla i organisationen vad som r frdigt och hur bra de olika delarna av koden fungerar enskilt och integrerat. En tumregel fr CD sger att en enskild leverans av kod inte ska behva ta mer n en timme. Bygge och automatiska tester kommer snabbt att ge terkoppling om leveransen inte fungerar som det r tnkt.

    CD-konceptets minsta bestndsdel r den enskilde utvecklaren som behrskar de fyra disciplinerna.

  • 9De fyra disciplinerna

    KodVerktyg och processer fr att lgga till ny kod samt hantera nya och gamla versioner av kod som utvecklas och levereras. I samband med tillgg av ny kod triggas kodgranskningar, byggen och automatiska tester fr direkt terkoppling till utvecklaren innan ndringen slutligt lggs till produkten. Hr grs det synligt fr alla inblandade vilka saker som lagts till i produk-ten. Dokumentation grs av tillggen automatiskt.

    ByggenVerktyg och processer fr att robust och effektivt bygga koden i en produkt s att resultatet blir identiskt fr alla inblandade. Skapar ven mjlighet att terskapa gamla versioner av produkten.

    TestVerktyg och processer fr hantering av testkod tillsammans med kod fr produkten samt automatisk test av produkten. Frn automatisk test kom-mer kontinuerligt visibiliteten p hur nya och gamla funktioner i produkten fungerar. ven den enskilde utvecklaren fr visibilitet p hur varje enskilt tillgg fungerar innan det slutligt lggs till.

    LeveranserFrmgan att paketera mjukvaran och gra den tillgnglig fr kunden.I mnga fall r det lmpligt att beskriva konfiguration och uppsttning av produktionsmiljn som kod tillsammans med produkten och testerna.

  • 10

    KOMMA IGNG MED CONTINUOUS DELIVERY 1

    Metodiken bakom Continuous Delivery kan knappast implementeras ver en natt. Istllet rr det sig om ett mognadsarbete dr organisationen gr frn nybrjare till mogen mstare. Det centrala verktyget r en s kallad mognadsmodell.

    1Analysera de affrsmssiga frutsttningarna.

    En vlfungerande organisation fr CD bygger p en djup frstelse fr marknadens och kundens behov och de affrsmjligheter som metodiken skapar. P denna baseras alla de beslut och prioriteringar som sedan grs.

    2Introducera en mognadsmodell och utvrdera organisationens frutstt-ningar och mognad.

    En mognadsmodell r ett verktyg som bde versiktligt och i detalj visar hur lngt organisationen har kommit nr det gller infrastruktur och arbetsmetodik. Den ligger till grund fr en utvrdering (assessment) av de fyra olika disciplinerna (kod, bygge, test, leverans) infr infrandet av CD. ven efter det att man tagit de frsta stegen utgr mognadsmodellen ett centralt verktyg (se punkt 4 nedan); man kan se den som ett slags backlog fr att frbttra respektive infra nya metoder och processer.

    3Gr en plan fr frbttringarna Baserat p den affrsmssiga analysen och insikterna frn steg 2 upprt-tas en plan. Vilka tgrder finns det behov av? I vilken ordning r frn-dringarna lmpliga att genomfra? Var kan vi snabbt f effekt av ngra tgrder? Nr kan vi brja dra riktig nytta av frdelarna av CD?

  • 11

    Efter analys, utvrdering och planering r det bara att kavla upp rmarna och brja rra sig genom mognadsmodellen frn vnster till hger. I bilden ser vi tv organisationer den rda och den grna som arbetar sig genom mognadsmod-ellen. Att g frn Novice till Mature kan ta mnader,till och med r. Notera att en organisation kan ha hunnit olika lngt i de olika disciplinerna.

    NOVICE BASIC MEDIUM MATURE

    Kod lev-ereras dagligen fr integration.

    Automatise-rade dagliga leveranser med knd kvalitet.