ORDINA BLOGT

Wat Agile teams kunnen leren van DevOps

De nieuwe trend DevOps heeft eigenschappen waar Agile teams veel van kunnen leren. Als zodanig is DevOps een mooi vervolg op de Agile verbeterslag. In deze blogpost een aantal DevOps lessen voor Agile-teams waarin ze uit kunnen stappen en meer Agile en DevOps aan hun organisatie kunnen gaan toevoegen.

  • Anko Tijman
  • 3 januari 2014
Les 1: Je bent pas een multidisciplinair team als ook beheer vertegenwoordigd is

Agile drijft op zelforganisatie en zelforganisatie drijft op teams waarin de teamleden elkaar aanvullen. Maar veelal beperkt zich het Agile team tot ontwerpers, bouwers en testers. De cruciale partij in het beoordelen van de producten - beheer - is hierin niet actief vertegenwoordigd. Vaak wel bij de demo, maar daar vind slechts toetsing plaats en geen interactie rondom interpretatie en volledigheid van de user stories. En dus is de kans groot dat producten afgekeurd worden omdat het niet aan de beheereisen voldoet. Denk bijvoorbeeld aan non-functionele eisen als inzicht in stabiliteit van het systeem, of performancetest resultaten. Een Agile-team zonder beheerders is als een voetbalteam zonder verdedigers: wie bewaakt de poort?

Het draait hierin vooral om eigenaarschap: voelt het team zich verantwoordelijk voor de hele lifecycle van het product? En natuurlijk krijgt het team ook de mogelijkheden om die verantwoordelijkheid te dragen? In een team zonder beheerders is dat bijzonder moeilijk en werkt men dus minder effectief. De traditionele Ops-taken horen er gewoon bij en het zijn geen randvoorwaarden die een buitenstaander kan opleggen.


Les 2:  Goede deployment tools zijn noodzakelijk om de gewenste snelheid te behouden

DevOps heeft onder meer een focus op tooling, en dan specifiek deployment tools. Onder meer principes als Continuous Delivery en Continuous Deployment zijn typisch DevOps. Wat die principes en die tools doen is focussen op het frequent, snel, beheerst en gecontroleerd (!) in productie van software. Snelheid is essentieel voor het tegelijk kunnen leveren van kwaliteit en waarde. Als je focust op snelheid dan ontdek je vanzelf dat je tools nodig hebt om de kwaliteit hoog te krijgen, want snelheid dwingt je om variatie uit te sluiten. Geautomatiseerd testen en deployen worden dan de norm. Doe je dat niet, dan gaat het ten koste van je snelheid en dat maakt je altijd minder effectief en kost dus geld.

Les 3: Een demo heeft pas echt waarde als het gerealiseerde ook direct in productie genomen wordt

Vaak zie ik demo’s van Agile-teams vanuit een testomgeving, waarbij er gesuggereerd wordt dat er veel waarde is gecreëerd, maar waarbij het deployen van de software naar productie nog maanden op zich laat wachten. Maar dat is het creëren van voorraden en dus waste. Het goede van een demo is dat er feedback wordt gegeven en gegenereerd, en dat er inzicht wordt verschaft in de voortgang van het project. Maar binnen de DevOps-beweging zijn er technieken voor handen (zoals blue green deployment, dark launching, et cetera) die je in staat stellen om zonder al te veel omhaal beheerst te kunnen gaan deployen (zie les 2).
In het Agile Manifesto staat dat we werkende software waarderen, en Scrum benoemt het resultaat van een sprint als potentieel productierijp systeem. Maar veel Agile-teams zijn hierin te weinig ambitieus en de DevOps-beweging kan zeker helpen. Agile-teams: pak die handschoen op!


Les 4: Reageren op veranderingen die uit productie komen

DevOps kijkt naar het geheel van de softwareontwikkeling; er wordt geen onderscheid gemaakt tussen nieuwbouw (ontwikkeling) en onderhoud (beheer). Daaruit volgt dat dat wat er in productie gebeurt, nu van het hele team is. En dat betekent dus ook dat voortschrijdend inzicht niet alleen komt vanuit het interpreteren en prioriteren van nieuwe user stories, maar dat er ook gereageerd moet worden vanuit de gemelde incidents, problems en events. Want die komen ook op de Product Backlog te staan, als onderdeel van het reguliere beheerwerk. Daarmee wordt de Product Owner ook verantwoordelijk voor wat er nu in productie staat en hoe het team daarop reageert. Ergo: hij wordt daarmee de bewaker van de total cost of ownership van resultaat. Reageren op veranderingen is vanuit het Agile Manifesto een belangrijke waarde voor Agile-teams, maar neem in het vervolg dus ook feedback uit productie mee.


Les 5: Wil je het goed doen, betrek dan de hele organisatie bij de verandering

Omdat DevOps draait om snelheid, beheersing en lerend vermogen dient er een gezamenlijk doel te zijn dat de verschillende partijen bindt. Het gaat dus niet meer om eilandjes of los verspreidde Scrum-teams, maar om integratie en gezamenlijke benadering. Het gaat om de flow in en door de organisatie: end-to-end throughput is de norm. Dat betekent dat de beweging achter DevOps niet alleen draait om ontwikkeling en beheer. Andere relevante organisatie aspecten zijn de mensen, kwaliteit, werkwijze, financiën, strategie en beleid, het management en de structuur van de organisatie. Bedrijven en organisaties die de Agile-beweging tot hun volle recht willen laten komen, gaan daarmee aan de slag.


Conclusie

DevOps is het vervolg op Agile en biedt organisaties handvatten om daarmee meer impact te hebben. Vanuit het DevOps paradigma worden Scrum-teams getriggerd om verder te kijken dan het eigen team. En om verder te kijken dan werkende software op een testomgeving, of uitsluitend te reageren op veranderingen op nieuwe user stories. Frequent beheerst deployen is de nieuwe norm want alleen op productie wordt de echte strijd gestreden - die met klanten en concurrenten. Focus op de context waarin je als Agile-team opereert en stroop je mouwen op.


Meer over DevOps:

http://devops.com/

http://jedi.be/

http://www.devopsdays.org/

Over de auteur:

Anko Tijman

Anko Tijman is Thought Leader Agile bij Ordina. Vanuit die rol neemt hij het voortouw in inhoudelijke discussies over Agile, DevOps en Lean werken. Hij is sinds 2004 in dienst van Ordina. Hij is onder meer betrokken bij AgileOverheid, is Computable Expert en is trainer van de Agile-managementtraining Management3.0.