Je bent gek als je geen Continuous Integration doet.

07 November 2019
Categorie:
39

Deze blog is bedoeld voor zowel managers als developers. Zij hebben hetzelfde doel: het leveren van Business Value. Een manager vindt vaak dat het niet snel genoeg gaat en dat het te duur is. Een developer kan last hebben van “lage” kwaliteit code. Het een is een logisch gevolg van het ander.
 

Na het lezen van deze blog heb je inzicht in Continuous Integration en ben je er waarschijnlijk enthousiast over!
 

Herken je deze vragen?
 

  • Hoe kan ik versnellen?
  • Hoe kan ik kosten besparen?
  • Hoe kan ik resultaten verhogen?
  • Hoe kan ik de kwaliteit verhogen?
  • Hoe kan ik sneller feedback krijgen?
     

Het antwoord op al deze vragen is Continuous Integration.

Wat is Continuous Integration?

Continuous Integration is wat het woord al zegt: het continu integreren van nieuwe code in de huidige codebase. Het stelt meerdere developers in staat om naadloos samen te werken. Iedere verandering wordt automatisch gebouwd en getest op functionaliteit en kwaliteit.

Wat levert het op?

  • Het centraal bouwen van softwarecomponenten verkort lokale buildtijden
  • Automatische testen geeft onmiddellijke feedback over de werking van de applicatie
  • Automatisch deployen verkort de doorlooptijd van deployments
  • Een branching strategie zorgt voor een eenduidige werkwijze
  • Het testen op code kwaliteit geeft de developers feedback en zorgt voor code standaarden.
     

Enkele voorbeelden uit de praktijk zijn:
 

“Developers leverden hun applicatie op aan een ander team, dat op hun beurt de applicatie installeerde. Dit duurde 1 uur. We hebben dit automatisch binnen 5 minuten gedaan. Dit is een tijdswinst van 55 minuten per deployment.”
 

“De invoering van een centrale buildserver en een centrale artifact repository verkorte de lokale buildtijden. Dit kwam doordat we lokaal alleen het gedeelte hoefden te bouwen waar aanpassingen op waren gemaakt. De rest werd centraal gebouwd of uit de repository gehaald. Het bouwen en unittesten van de hele applicatie duurde aanvankelijk 10 minuten. Het doorvoeren van wijzigingen duurt nu slechts 1 minuut. Dit is een tijdswinst van 9 minuten per build.”
 

“Een code analysis tool scant de code op meer dan 200 coding best practices. Eigen standaarden kunnen hieraan toegevoegd worden. Na de invoering van een code analysis tool werd de code uniform geschreven.  Dit kwam de kwaliteit en beheersbaarheid van de code ten goede.”
 

“Een merge conflict kost onnodig tijd. De invoering van een branching strategy waarbij vaak een integratie van de code plaats vindt, voorkwam merge conflicten. De code hoefde niet herschreven te worden om nieuwe functionaliteit door te voeren. Dit bespaarde tijd en codewijzigingen.”
 

Wat gaat het kosten?

Continuous Integration is een kleine investering in verhouding tot wat het oplevert. Er zijn op de markt veel opensource tools beschikbaar. Deze zijn gratis te gebruiken en moeten alleen ergens gehost worden. Veel grote dienstverleners waaronder Capgemini bieden een complete CI pipeline aan. Het is een kwestie van de pipeline configureren en gaan.

Wat zijn de voordelen voor een developer?

Je wilt als developer zo snel mogelijk feedback op het werk dat je levert. In veel situaties krijg je die pas op het moment dat een tester naar je werk kijkt. Deze kijkt vaak alleen naar de functionele werking. Als je geluk hebt kijkt een mede developer naar de kwaliteit van de code. Door het invoeren van Continuous Integration krijgt een developer automatisch feedback over code kwaliteit, code standaarden en mogelijke vulnerabilities. Hij kan hierdoor fouten detecteren en corrigeren. Dit komt de kwaliteit van de codebase ten goede.

Wat wordt er van een developer verwacht?

De code staat opgeslagen op een centrale plek. Developers moeten hun code hier naar toe committen/pushen. Als dit gebeurt gaan er automatisch checks lopen en krijgt de developer zijn feedback. Logisch is dus hoe vaker dit gebeurt hoe vaker de developer feedback met verbeterpunten krijgt en dus ook deze verbeterpunten kan fixen. Dit levert kwalitatief betere code en maakt het geheel meer beheersbaar.
 

Samenvattend: Continuous Integration levert betere code, zorgt voor een kortere doorlooptijd en bespaart kosten. De titel van deze blog is misschien wat provocerend, maar oprecht gemeend!

Auteur

Killian Hesterman