Friday, February 5, 2010

Continuous integration for fun and profit

Om man läser klassiska programmerarböcker upptäcker man snabbt en tydlig röd tråd - spårbarhet. En bra utvecklare jobbar som en ingenjör och lämnar ingenting åt slumpen. Det första steget de flesta tar på sin resa från kodare till utvecklare är att gå från att spara källkod lokalt till att använda versionhantering. Enhetliga kodkonventioner, automatiserade tester av kritisk kod och buggdatabaser brukar följa därpå, för att till slut sätta kronan på verket - en byggserver.

Nansen rullade för några dagar sedan igång sina första kundprojekt med en byggserver som ett fast hjärtslag. Varje gång en incheckning sker vaknar byggservern till liv och kompilerar, taggar, paketerar och rapporterar ett bygge för att slutligen deploya det till en stageserver, utan någon som helst insats från utvecklarna. Eftersom all information om vad som ingår i ett bygge, inklusive den färdiga siten, sparas på byggservern kan vi när som helst rulla tillbaks till en tidigare version och felsöka. Spårbarhet hela vägen från versionsnummer ner till enskild rad kod, det är inte helt fel!

En fin bieffekt av att ha en byggserver är att det har tvingat fram ett nytt sätt att lägga upp projekt i Visual Studio, vilket gör att startsträckan för nya deltagare i projektet blir i det närmaste noll och inget.