Artikelen
Tutorials
Interactieve handleidingen
DevOps vs. Agile
Wat zijn de verschillen en overeenkomsten tussen agile en DevOps?
Tom Hall
DevOps-vertegenwoordiger en -professional
Toen de agile-methode in het begin van de jaren 2000 wijdverbreid werd ingevoerd, veranderde dit de manier waarop we software en andere producten ontwikkelen. Toch ontstond er kritiek, nadat het binnen een paar jaar de norm binnen de industrie was geworden: de processen en vereisten van het operations team dat softwareproducten implementeerde en beheerde, waren geen onderdeel van de revolutie.
Dit leidde tot DevOps, een benadering die ontwikkelings- en operationsteams op één lijn bracht. Heeft DevOps agile vervangen? Of vullen ze elkaar aan? Het blijkt dat DevOps en agile verschillen en overeenkomsten hebben. Agile en DevOps kunnen exclusief en inclusief zijn, waarbij beide binnen een organisatie worden gebruikt.
Wat is agile?
Agile is een iteratieve benadering van projectmanagement en softwareontwikkeling die zich richt op samenwerking, feedback van klanten en snelle releases. Het is in het begin van de jaren 2000 ontstaan uit de softwareontwikkelingsindustrie en hielp development teams te reageren en zich aan te passen aan veranderende marktomstandigheden en eisen van klanten.
Bij een agile-benadering wordt vooraf een beetje gepland en ontworpen, maar de ontwikkeling verloopt in kleine batches en vereist nauwe samenwerking met stakeholders. Wijzigingen worden continu verwerkt en een bruikbare versie van een product wordt vaak sneller uitgebracht in vergelijking met producten die via de watervalmethode zijn ontwikkeld. Dit biedt veel voordelen, met misschien wel de belangrijkste dat als software niet voldoet aan de behoeften of verwachtingen van de klant, deze in realtime kan worden aangepast.
Agile is een aantal methoden, en niet maar één ontwikkelingsmethode. Het is een combinatie van scrum, eXtreme Programming (XP) en andere praktijksystemen die ontwikkelaars de afgelopen jaren hebben gebruikt, en het resultaat is van die gebruikers die samenkwamen om deze benaderingen te combineren in één set principes. Het resultaat van deze combinatiepoging was het Agile-manifest, dat uit 12 principes bestaat, gebaseerd op vier kernwaarden.
Gerelateerd materiaal
Meer informatie over het CALMS framework
Gerelateerd materiaal
Meer informatie over de geschiedenis van DevOps
De vier kernwaarden van het Agile Manifesto
Individuen en interacties
boven processen en tools
Werkende software
boven uitgebreide documentatie
Samenwerken met klanten
boven contractonderhandelingen
Reageren op veranderingen
boven het volgen van een plan
DevOps invoeren
DevOps is een benadering voor softwareontwikkeling waarmee teams software sneller en betrouwbaarder kunnen bouwen, testen en releasen door agile principes en werkwijzen toe te passen, zoals meer automation en een betere samenwerking tussen development en operations teams. Ontwikkeling, testen en implementatie maken onderdeel uit van agile en DevOps. Toch laat traditionele agile geen ruimte voor operaties, wat een integraal onderdeel is van DevOps.
Het doel van DevOps is ontwikkelaars helpen bij het samenbrengen van applicatiesoftware en operations die de software in productie uitvoeren. En tevens om de infrastructuur waarop het wordt uitgevoerd te bouwen en te onderhouden. DevOps vervangt de oude benadering van development teams die toepassingen schrijven en vervolgens blindelings doorgeven aan een operations team dat de software implementeert en beheert met minimaal inzicht in hoe deze is ontwikkeld. In een DevOps-omgeving werken ontwikkelaars en operations teams het volledige proces samen aan het ontwikkelen, implementeren en beheren van toepassingen.
Twee veelvoorkomende structuren om inzicht te krijgen in DevOps zijn 'Drie manieren' en 'CALMS', een acroniem voor Culture, Automation, Lean, Measurement en Sharing. Cultuur verwijst naar de culturele verschuiving waardoor ontwikkelings- en operations-teams beter samenwerken. Automatisering verhoogt de snelheid en zorgt voor een hogere kwaliteit. De lean-principes van continue verbetering en het omarmen van fouten vormen de basis van een experimentele mindset. Measure verwijst naar de werkwijze voor het meten van resultaten om processen te verbeteren. Sharing benadrukt het belang van DevOps als gezamenlijke inspanning en het toepassen van beste praktijken.
De drie manieren voor DevOps
Systeemdenken
Begrijpen dat softwaretoepassingen complexe systemen zijn
Feedbackloops versterken
De bidirectionele communicatie tussen teamgenoten verbeteren
Culturele verandering
Een cultuur van continu experimenteren en leren
Wanneer werken agile en DevOps samen?
DevOps kan worden gezien als een evolutie van agile praktijken, of als een ontbrekend stukje agile. Het is een poging om de innovaties van de agile aanpak te gebruiken en toe te passen op operationele processen. Tegelijkertijd is het een ontbrekend stukje agile, omdat bepaalde principes van agile pas in hun meest complete vorm worden gerealiseerd wanneer DevOps-werkwijzen worden toegepast. Er zijn bijvoorbeeld meerdere verwijzingen naar continue levering van software in agile documenten, maar omdat levering-pipelines betrekking hebben op bewerkingen, wordt continue levering meestal beschouwd als een DevOps-werkwijze. Het versterken van feedbackloops vereist betere communicatie tussen en tussen teams. Agile, met name scrum, helpt deze communicatie te vergemakkelijken door middel van verschillende ceremonies, zoals dagelijkse standups, planningsvergaderingen en retrospectieven.
Wat zijn de overeenkomsten en verschillen tussen agile en DevOps?
- Agile legt de nadruk op samenwerking tussen ontwikkelaars en productmanagement — DevOps omvat het operations team
- Agile centreert de stroom van software van idee tot voltooiing van de code — DevOps breidt de focus uit naar levering en onderhoud
- Agile benadrukt iteratieve ontwikkeling en kleine batches — DevOps richt zich meer op test- en leveringsautomatisering
- Agile voegt structuur toe aan gepland werk voor ontwikkelaars — DevOps bevat ongepland werk dat gemeenschappelijk is voor operationele teams
Het Agile-manifest geeft expliciet prioriteit aan individuen en interacties, werkende software, samenwerking met klanten en het reageren op veranderingen. Dit zijn duidelijk dezelfde prioriteiten van DevOps, maar worden verder uitgebreid dan het ontwikkelingsproces en het beheer van systemen en actieve applicaties.
Daarnaast bevatten de Twaalf principes voor agile-software verwijzingen naar DevOps-principes. Bijvoorbeeld, de nadruk op continue integratie en levering, het werken in kleine batches met frequente releases en het gebruik van automatisering wordt allemaal naar verwezen in de Twaalf principes voor agile-software.
Tot slot... agile EN DevOps
Uiteindelijk zijn de doelen van agile en DevOps hetzelfde: het verbeteren van de snelheid en kwaliteit van softwareontwikkeling, en het heeft weinig zin om over de een zonder de ander te praten. Veel teams hebben ontdekt dat agile-methoden ze enorm helpen, terwijl anderen moeite hebben gehad om de voordelen te realiseren die door een agile-benadering worden beloofd. Dit kan verschillende redenen hebben, waaronder teams die agile-werkwijzen niet volledig begrijpen of correct implementeren. Het kan ook zijn dat het invoeren van een DevOps-benadering helpt om de hiaten op te vullen voor organisaties die worstelen met agile en ze helpen de successen te behalen waar ze op hoopten.
Atlassian brengt ontwikkelings-, IT operations- en agile teams samen met open toolchain voor alle Atlassian-producten en tools van derden. Atlassian DevOps biedt alles wat teams nodig hebben om software te ontwikkelen en te gebruiken. Probeer het nu uit.
Deel dit artikel
Volgend onderwerp
Aanbevolen artikelen
Bookmark deze resources voor meer informatie over soorten DevOps-teams of voor voortdurende updates over DevOps bij Atlassian.