CI/CD = Cultuur?

CI/CD = Cultuur?

January 2, 2018 CI/CD 0

In de laatste twee jaar heb ik tientallen mensen gesproken over CI/CD. Ik vind het dan altijd leuk om toch even te vragen: Wat is voor jou de definitie van CI/CD?

De antwoorden verschillen gigantisch. Vaak zijn het complexe antwoorden waar gesproken word over een CI/CD-cultuur. Bij dat soort antwoorden krijg ik dan altijd een beetje kriebels. Helemaal als mensen zeggen ‘Kijk, de tooling maakt niet uit, die CI/CD-cultuur is belangrijk’

Ik weet dan nooit zo goed of diegenen het wel helemaal begrijpen of dat ze in hun hoofd al drie logische sprongetjes hebben gemaakt.

CI/CD is namelijk exact 1 ding: Aan elkaar geschakelde tools om snel, version-managed software uit te brengen. 

Gelijk aan ≠ gevolg van

Met de term “CI/CD” word niks meer bedoeld dan de software om taken van de developer makkelijker te maken. Waar het interessant wordt is dat deze tooling gedragsveranderingen veroorzaken in de organisatie. Veranderingen in de cultuur staan dus niet gelijk aan CI/CD – ze zijn een natuurlijk gevolg van het gebruik CI/CD.

Dus:

  • Met ‘CI/CD’ bedoelen we een collectie van tools met een specifieke functie.
  • Deze tools creëren mogelijkheden voor innovatie omdat je bureaucratie wegneemt en de developer meer macht geeft.
  • Op de plekken waar de developer de meeste macht heeft zullen spontane veranderingen ontstaan omdat de developer die plekken inkleurt met z’n gedrag.
  • Dat nieuwe gedrag staat aan de wieg van cultuurverandering.

Om de cultuurverandering te sturen kan je wel aanpassingen maken in hoe je CI/CD toepast. Als manager moet je dus goed bedenken: Waar geef ik de developer macht, en waar niet?

Minecraft

Bekijk ‘t als een Minecraft wereld (of Schaakbord). Je geeft een stel spelers een selectie van mogelijkheden en er kunnen vanzelf prachtige bouwwerken ontstaan – of er ontstaat complete chaos. Daarom is het dus belangrijk om bepaalde afspraken op te leggen:

  • Wat zijn de regels van het spel? (Hoe snel kan je bouwen, en waarmee moet je dat doen?)
  • Hoe werken we samen in een team? (Moet dit identiek zijn in alle teams die meewerken?)
  • Hoe werken we samen aan projecten? (Heeft iedereen z’n eigen plekje? Of moet je samen bouwen aan 1 project?)

Welk gedrag je vertoont binnen de CI/CD-regels heeft dus een effect op de uiteindelijke cultuur die je zult bereiken. Je stelt bepaalde regels hier zullen developers op reageren met enthousiasme of frustratie. (Doet denken aan ‘Foundation‘ van Isaac Asimov).

Nitpicking?

Ok. Misschien ben ik wel ontzettend ‘nit-picky’. Maar dit verschil (gelijk aan ≠ gevolg van) verklaard voor mij de onduidelijkheid die bij mensen bestaat als ze alle termen op een hoop gooien tijdens een gesprek. De volgende keer dat ik het tegenkom zal ik mensen ditzelfde verhaal uitleggen!

(Hetzelfde overigens met het woord ‘Agile‘. Het betekent exact 1 ding: Snel kunnen inspringen op de veranderlijke wens van de klant. Dat hiervoor een empathische organisatie nodig is, is is te voorspellen. Immers, zonder empathie weet je niet wat wens van de klant is.)