Jobba smartare, inte hårdare, med Continuous Integration

Continuous Integration betyder ordning och reda, kvalitet och i slutändan en mycket mindre prislapp för ditt projekt. I korthet handlar det om att ofta, och planerat med automatik, föra in och testa ändringar och funktionalitet i den lösning du utvecklar. På så sätt kan du och ditt team bibehålla kontroll och tidigt hitta och åtgärda eventuella problem.

Pratar man agila metoder som scrum och iterativa projekt så är Continuous Integration (CI) ett måste, annars jobbar du i ett förklätt vattenfalls-projekt!

Problem du kan få om du inte jobbar med CI är t.ex.

  • Du mister kvalitetskontrollen och testfasen tenderar att växa
  • Servermiljön kan visa problem först vid skarpt läge
  • Sprintdemo tenderar att bara visa, inte låta dig själv känna, vilket gör att du inte vet vad du har beställt.
  • Konfigurations-missar som t.ex. leder til att sista steget i en kassa kraschar för en ny, missad inställning, att webben går långsamt pga för hög loglevel för produktion eller web.config är inställd i debug-läge etc.


Vi på Wipcore har anammat följande:

  • Automatisk deploy till test och produktion
    På så sätt kan kunden se och testa framstegen varje dag i testmiljön för snabb respons.
    Automatisk deploy till produktion gör att inga slarvfel kan smyga sig in då du har repeterat i testmiljön.
    All konfiguration som xml-filer följer med alla dll'er etc. Detta garanterar också minimal nertid av din ehandel och gör att du kan uppdatera ofta med nya funktioner eller buggrättningar.

    När man installerar WebFoundation ställer man in ett script som man sen kan köra om och om igen mot olika miljöer. Själva scriptet blir en dokumentation över din servermiljö.
  • Ta bort alla manuella steg, för att minska personberoenden, fel och tid.
  • Håll dokumentationen levande,minimal och relevant.
  • Automatiska byggen vid incheckning så att ingen kan checka in fel. (också en självklarhet men inte för alla)
  • Versionshantera koden för spårbarhet. (En självklarhet men hörde en viskning i veckan om ett företag som...)
  • Enhetstester
    Med eNOVAS nulldatabas och objektmothers  kan det inte bli enklare och kan enligt min erfarenhet betala sig från dag ett. Vi använder Teamcity för att auomatiskt bygga och testa vilket ger en järnkoll på läget.
  • Webtester
    Vi har infört inspelade webtester som måste underhållas men kan ge mycket, då man t.om. periodiskt kan testa av sin live-site. Vi funderar på att lägga in tester för att hitta missade sidor, fel sidor och html validering.
  • Ett spår, dagliga incheckningar
    Göm bara funktioner som inte är redo för release eller varför inte ett A/B test?
  • För vissa kunder har vi byggt avancerade powershell-script som loggar in remote parallellt på flera servrar och laddar ner den senaste koden från ftp, temporärt stänger av larm, kasstar ut remote desktop-användare som kan störa m m.


Målet är att kunna uppdatera live-miljöer utan nertid eller tappade köp-sessioner.