Teamets väg mot Continuous Delivery

Continuous Delivery bedömer vi på CAG vara en viktig framgångsfaktor framöver hos företag som ägnar sig åt IT-utveckling. Inom CAG pågår just nu en fokuserad kompetensutveckling runt verktyg och tekniker relaterade till Continuous Delivery.

Continuous Delivery ser vi som en naturlig fortsättning i vår kompetensutveckling. Continuous Delivery sätter fingret på och kräver det mesta av vad man kallar best practices inom IT-utvecklingsprojekt.

Det som krävs för att få Continuous Delivery att fungera bra i hela kedjan kan man koka ned i arkitektur och kultur. Möjligen kan man lägga till testautomatisering också som framträdande nyckelfaktor.

Beträffande kulturen innebär det att samarbetet mellan olika yrkeskategorier måste bli tätt, nyfiket och öppet. Man kan dela upp det i:

  1. Affärsbeslutsfattare, verksamhetsexperter och beställare måste arbeta tätt ihop med projektteamet
  2. Projektteamet måste samarbeta tätt med driften
  3. Projektteamet måste ha nått en hög mognatsgrad så att de frekvent och över tid kan leverera rätt funktion med rätt kvalitet

Vi som är projektteamet äger hela punkt 3. Vårt samarbete och engagemang krävs för att förverkliga de andra två.

Att samarbeta tätt med affärsbeslutsfattarna har man tidigt identifierat som en nyckelfaktor i agila metoder där en viktig framgångsfaktor för ett IT-projekt identifierats att vara tillgång till en närvarande, kompetent och beslutsmässig produktägare.

En viktig del av Continuous Delivery som har sin tyngdpunkt i 2. ovan är infrastruktur som kod. Här är virtualisering en förutsättning tillsammans med exempelvis verktyg som Puppet, Chef, Ansible, Vagrant.

DevOps är en intressant metod som har dykt upp som relaterar till det här.

Utvecklingsteamets första uppgift är att kliva upp på tillräckligt hög nivå på mognadsstegen för att kunna stödja en CD-process. En av de viktigaste faktorerna är ett mindset hos teamet att så långt det är praktiskt möjligt hålla systemet i ett releasebart skick. I övrigt krävs också allt det som man normalt förknippar med hög standard i ett IT-projekt: Enhetstest med mycket hög kodtäckning, vilket i praktiken också kräver en hel del TDD, automatiska acceptanstester, vilket i sin tur kräver en rimligt komplett kravspecifikation och inte minst en process som håller kravspecifikationen ständigt uppdaterad, acceptanstester med god kravtäckning och gjorda på ett sätt så de går att underhålla, en build pipeline med versionshantering enligt alla konstens regler och självklart också Continuous Integration. Rätt arkitektur och bra programkod tillhör grundförutsättningarna.

Beträffande “acceptanstester gjorda på ett sätt så de går att underhålla” rekommenderar jag Maintaining Automated ‘Acceptance’ Tests av Chad Watchington, ThoughtWorks (video). En sak som jag skulle vilja tillägga här är att man också kan acceptanstesta direkt mot tjänstelagret, vilket blir betydligt enklare om man har ett sådant, utöver att köra tester via användargränssnittet.

IT Consultant at CAG Edge. Cloud and Continuous Delivery specialist, software developer and architect, Node.js, Java.

Publicerad i Agile, Continuous Delivery, DevOps, Test

Kategorier

WP to LinkedIn Auto Publish Powered By : XYZScripts.com