De Mjuka Faktorerna Bakom Kontinuerlig Integration SAST Q1 2015 Alexander Tarnowski
Om detta material Nedanstående material utgör en handout till presentationen på SAST Q1 2015. Det är alltså inte själva presentationen.
alexander.tarnowski@crisp.se @alexander_tar http://www.crisp.se
Införande av kontinuerlig integration VD:n/ledningen i företaget förstår att CI/CD kan ge stora affärsfördelar och minskad time to market Man vill att det ska vara så, men jag har ingen egen erfarehet av det. Detta är drömscenariot. Någon i mitten av organisationen vill införa CI/CD. Mina erfarenheter har varit att detta inte fungerar. Beställaren har för lite mandat och mod, och kan inte fatta en del tuffa beslut. Folket på golvet inför CI/CD stegvis; kanske mest för att man är trött på dramat kring releaser eller för att man vill utvecklas professionellt och ha roligare på jobbet. Enligt mina erfarenheter är detta den enda modell som fungerar.
Saker som börjar på C Antingen har man avancerad CI/CD eller ingenting. Få företag verkar vara mittemellan. Om man inte har någonting är man beroende av heroiska insatser och tur för att få ut produktionskod. Ord när han har ingenting Typ agilt Release-ledare Kodfrys Testprotokoll Operations Acceptanstestpriod Ord när man har CI/CD Databasversionering Pipeline (pipa) Docker Testautomatisering DevOps Virtualisering One-click deployment
Frågor att ställa sig nu Var befinner jag mig på CI/CD mognadsskalan? Var vill jag vara? Hur stöttar det min affärsstrategi?
Hur jobbar vi? Metod Fördelar Nackdelar Cowboy Kreativitet uppmuntras Snabba beslut Rätt personer och ambitioner kan göra att cowboy-företaget blir bra på CI/CD Agilt Stress Strukturen kan vara dålig Fel personer och låg ambitionsnivå gör att cowboyföretaget kör i diket Man kan inte jobba agilt utan att ha CI/CD på plats, eftersom teamet inte kan regressionstesta allt om iterationen är t ex två veckor. Vattenfall Man kan budgetera för CI/CD på ett strukturerat sätt Distinkta faser är precis tvärtemot kontinuerlighet Rolltänkande uppmuntras Dåligt ansvarstagande Otillräcklig återkoppling
Hur levererar vi? Som team Teamet når stabilitet över tid Culture of excellence kan utvecklas Teamet äter sin egen hundmat I projektform Projekt är en temporär organisation med syfte att uppnå ett specifikt mål. Detta är per definition motsatsen till kontinuerligt och långsiktigt arbete. Mina erfarenheter är att projektformen är väldigt dålig för CI/CD, som kräver långsiktigthet och kontinuerliga förbättringar.
Hur är vi organiserade? I fabriker - kompetenscentra, expertgrupperingar m m Fabriker/kompetenscentra/staber samlar människor med en och samma kompetens. Tanken brukar vara att sådana pooler antingen ska stötta organisationen eller användas till att bemanna projekt. Detta fungerar dåligt, enligt mina erfarenheter. Fabrikerna sitter för långt ifrån de team som faktiskt försöker implementera CI/CD. I tvärfunktionella team Rädslan för tvärfunktionella team brukar sammanfattas med frågan: Måste alla kunna allt?. Nej, det måste de inte, men team som kommit långt när det gäller CI/CD brukar bestå av personer som kan och vill göra olika saker. Att bygga en CD-pipeline kan vara invecklat, och kräver T-formade kompetensprofiler. Enligt mina erfarenheter råder en bättre dynamik i team där folk gärna hoppar mellan olika roller, och det är denna dynamik som också skapar grogrund för CI/CD. Rekrytering Ledarskapsutmaningen består således av att rekrytera personer som klarar att jobba i tvärfunktionella team och inte bryr sig om roller, utan gör sitt bästa för att få teamet framåt.
Vilken kultur råder hos oss? Martyr-kultur Vi är offer för den stora organisationen, legacykoden,... Vi kan inte styra över nåt Någon annan bestämmer Enligt detta tänkande lönar det sig inte att förbättra något. Detta underlättar inte CI/CD. Ansvarskultur Ta ansvar för sin situation (exempel: Harry Trumans berömda The buck stops here -skylt). Detta är precis den kultur man behöver. I stora CI/CD-projekt händer det att team får ta smällen för att de förbättrar saker som ligger utanför deras omedelbara leverans. Genom att ta ansvar placerar de sig och restan av organisationen i en bättre position inför framtiden. Resultatkultur Att vara resultatorienterad brukar vara ett positivt ord, men baksidan av detta ord är att man fokuserar på direkt leverans och har tunnelseende. Detta premierar inte CI/CD. Det gäller att vara resultatorienterad över tiden.
Vilken kultur råder hos oss? Vi och Dom-kultur En klassiker! Utvecklarna och testarna. Utvecklarna och operations... Denna kultur utgörs av martyrkultur när man är organiserad i fabriker. Team som har fastnat där får inte till CI/CD, eftersom de har så lätt att skylla på att någon annan borde ha gjort nåt. Hjältekultur Varje organisation har hjältar. Det är folk som har jobbat länge och som kan systemen väldigt väl. Väldigt många personer förlitar sig på hjältarna! Om de är öppna och ödmjuka kan deras kuskap gagna ett CI-/CD-införande enormt. Om de, å andra sidan, inte upnått tilläcklig personlig mognad, utgör de ett riktigt hinder. Kultur av nyfikenhet Alla organisationers resa till konrinuerlig integration och vidare är olika. Fel händer längs vägen, men man måste se dem som lärotillfällen. Man måste kunna misslyckas och lära sig av det, och organisationen måste uppmuntra detta.
Sammanfattning: Kontinuerlig integration 10K + 3A + 3M + 2T K = Kultur A = Autonomi M = Motivation T = Tekniskt kompetens
Sammanfattning: Frågor Förhållande till C-orden Var är jag? Var vill jag vara? På vilket sätt skulle denna position stötta min affärsstrategi? Huvudfrågor Hur jobbar vi? Hur levererar vi? Hur är vi organiserade? Vilken kultur råder hos oss? Bonusfrågor Vad gör mest ont? Vad ska jag ta tag i när jag kommer hem?