De rol van DevOps bij applicatieontwikkeling
De combinatie van DevOps en agile-applicatieontwikkeling is bezig aan een sterke opmars in het moderne IT-landschap. Deze ontwikkeling heeft invloed op zaken als technisch applicatiebeheer en outsourcing. Maar wat is precies de rol van DevOps bij de applicatieontwikkeling in het moderne IT-landschap? En wat betekent dit voor het inrichten en managen van je IT-infrastructuur?
Wat is DevOps?
De term DevOps is een samentrekking van de Engelse begrippen Development en Operations. Deze praktijk brengt softwareontwikkeling en het beheer van de omgeving/infrastructuur waar de software op draait dichter bij elkaar. De nadruk ligt op communicatie, samenwerking tussen alle betrokken partijen (opdrachtgevers, softwareontwikkelaars en IT-beheerders) en integratie. DevOps leunt daarbij sterk op het gedachtegoed van agile en lean-IT.
De belangrijkste principes van DevOps
DevOps gaat uit van een aantal vaste principes en werkwijzen. Dit zijn de belangrijkste:
● De korte feedbackrondes draaien op een actieve inbreng van klanten en eindgebruikers. Alle ontwikkelactiviteiten zijn sterk gericht op de klant (customer-centric action).
● De DevOps-aanpak biedt geen ruimte voor klassieke waterval- en procesgeoriënteerde modellen. In plaats daarvan wordt gewerkt met agile-teams en -methoden. De DevOps-teams zijn verantwoordelijk voor de hele levensfase (van concept tot eindproduct) van een te ontwikkelen applicatie.
● DevOps gaat uit van continuous improvement. Dit betekent dat de nadruk ligt op het blijven verbeteren van applicaties gedurende het hele ontwikkelings- en oplevertraject.
● DevOps legt sterk de nadruk op automatisering en monitoring. Dit geldt voor alle onderdelen van het ontwikkelproces: bouw, integratie, testen, release en deployment.
De scheidslijn tussen ontwikkeling en beheer doorbreken
Flexibiliteit en futureproofing zijn onwijs belangrijk bij het ontwikkelen van moderne, bedrijfskritische applicaties. In de huidige markt kan een bedrijf met serieuze ambities niet meer aankomen met inflexibele software die klanten niet bevalt, veel mankementen vertoont of te laat wordt opgeleverd.
DevOps tackelt dit probleem door de traditionele scheidslijn tussen ontwikkeling en beheer te doorbreken. Veel grote bedrijven en overheidsinstellingen zijn gewend om te werken met een structuur die bekendstaat als ‘stovepipe-verkaveling’. Dit betekent dat IT-onderdelen als applicatieontwikkeling, applicatiebeheer en infrastructurele IT-diensten (denk aan hosting) gescheiden zijn. Vaak zijn ze ook bij verschillende leveranciers ondergebracht.
DevOps kiest voor een andere werkwijze en pakt ontwikkeling, beheer en databasing integraal aan. Het resultaat: multidisciplinaire en zelforganiserende teams die werken met scrums en gezamenlijk de verantwoordelijkheid dragen voor het eindresultaat. Bovendien vindt er continu overleg plaats met de klant en eindgebruiker.
Rollen binnen een DevOps-team
DevOps-teams werken met vaste rollen. Zo heeft elk team een product owner. Die draagt als opdrachtgever de verantwoordelijkheid voor het functionele resultaat. Voldoet de applicatie aan de verwachtingen? Zijn alle gewenste functionaliteiten aanwezig? En is de applicatie binnen het geplande budget en de uitgezette timeframes gerealiseerd? Dit zijn de vragen die op het bord van de product owner thuishoren.
Hoewel je natuurlijk de nodige vrijheid hebt bij het samenstellen van een DevOps-team, heeft de competentiestructuur van zo’n ontwikkelploeg wel vaak een T-vorm. Dit betekent dat de teams veel door de wol geverfde professionals herbergen (de bovenkant van de T), aangevuld met junior-personeel. Zo’n mix combineert het beste van twee werelden: ervaring en frisse, out-of-the-box-ideeën. Zo ontstaat een kruisbestuiving van kennis die een vruchtbare bodem vormt voor innovatieve oplossingen.
Waarom DevOps bij applicatieontwikkeling
Een goed gebruik van DevOps richt zich op het leveren van continuous delivery en continuous integration van de software. Goed luisteren naar de behoeften en wensen van de klant is dan ook een belangrijke vereiste om de werkwijze tot een succes te maken en de technology stack rondom een applicatie vorm te geven. Goed toegepast heeft de combinatie van DevOps en applicatieontwikkeling diverse voordelen. We zetten de belangrijkste op een rij.
Complementaire vaardigheden
DevOps-teams zijn zo ingericht dat ze de klant integraal van dienst kunnen zijn. De teamleden bezitten complementaire vaardigheden op het gebied van softwareontwikkeling en -operatie. Het resultaat: een team dat je bijstaat gedurende het hele ontwikkelproces en échte waarde toevoegt aan jouw bedrijf.
Minder tijdverspilling
Als je kiest voor DevOps, wordt de hele applicatieontwikkeling door één specialistisch team afgehandeld. Incidenten en documenten gaan niet continu heen en weer tussen verschillende afdelingen. Je kunt een applicatie uiteindelijk dus een stuk sneller inzetten of op de markt brengen.
Inzicht in de kosten
DevOps geeft je een helder inzicht in de kosten die verbonden zijn aan het ontwikkelen van een applicatie. Omdat de ontwikkeling en het operationele plaatje samenvloeien en voor rekening komen van hetzelfde team, zie je gelijk welke financiële investering het ontwikkelen van een bepaalde applicatie vergt. Bovendien kun je de waarde van het DevOps-team vergelijken met de businesswaarde die de nieuwe applicaties toevoegen aan jouw dienstverlening.
Snel aanpassen
Markten ontwikkelen zich in ons informatietijdperk razendsnel. Een digitale oplossing die vandaag populair en booming is, kan over een paar maanden alweer verouderd zijn. Omdat de werkwijzen en hulpprogramma’s van DevOps je helpen om applicaties sneller te bouwen en gebruiken, wordt het gemakkelijker om je aan te passen aan de markt en concurrentie. Zo blijft jouw organisatie flexibel en futureproof.
Korte cycli, meer systeemstabiliteit
DevOps-teams brengen software in korte cycli (sprints) uit. Dankzij die korte sprints worden planning en risicobeheer eenvoudiger, vooral omdat het ontwikkelproces stapsgewijs verloopt. Het werken met korte cycli is ook beter voor de systeemstabiliteit. Omdat DevOps een flexibel proces is, is er tijdens het ontwikkelen van een applicatie ook altijd ruimte om door te groeien of onderweg koerswijzigingen aan te brengen. Ontwikkeltrajecten zijn niet in steen gebeiteld.
Conclusie: aan de slag met DevOps?
DevOps heeft de nodige voordelen. Het proces van applicatieontwikkeling wordt versneld, terwijl de DevOps-werkwijze ook volop handvatten biedt voor het coördineren en samenbrengen van softwareontwikkeling en -operatie. Overstappen op DevOps is niet alleen een technische kwestie, maar vergt ook een cultuuromslag. Het adopteren van een DevOps-cultuur brengt namelijk een nieuwe manier van samenwerken met zich mee. Traditionele werkwijzen, waarin iedereen vooral zijn of haar eigen dingen doet, worden afgebroken en maken plaats voor multifunctionele kwaliteitsteams, waarbinnen de vaardigheden van de afzonderlijke teamleden elkaar completeren en versterken.