1. Een team view
Dit is het tweede artikel uit de serie. In het eerste artikel
wordt scrum geïntroduceerd als een methodiek waarmee
een bedrijf continue delivery kan faciliteren. Srum richt zich
op de ontwikkelteams en niet op het beheer van de reeds
uitgeleverde services of de geïnstalleerde software. DevOps
is de methodiek die ontwikkeling en beheer bij elkaar
brengt. DevOps gaat richt zich op een permanente IT-
service voor een klant.
DevOps is geen scrum
Myra Kievit 01-04-16 Editie 2
Kan ieder bedrijf
DevOps toepassen?
Iedere organisatie kan
profijt hebben van het
toepassen van DevOps,
maar je krijgt het niet
cadeau. Je moet moet je
volledige bedrijf onder de
loep nemen. Een
pragmatisch startpunt is het
business canvas van
Strategyzer. Dit canvas kent
u waarschijnlijk al vanuit de
bedrijfsstrategie. Voor
DevOps ga je een stap
verder door vanuit de
strategie door te werken
naar de DevOps teams. Er
zijn natuurlijk nog vele
andere technieken die
toegepast kunnen worden
maar deze techniek zit al bij
veel bedrijven in de rugzak.
Bijlage: The Business Model
Canvas van Strategyzer
Informatie-
management
Scrum
DevOps
2. Wat is DevOps?
Om daadwerkelijk wendbaar te worden moeten
ontwikkeling (Dev) en beheer (Ops) zich anders
organiseren. Dit is een serie van twee artikelen.
In het eerste artikel is ingegaan op de business
zijde van scrum. Dit tweede artikel is gericht op
het koppelvlak tussen ontwikkeling en beheer
waarbij specifiek gekeken wordt naar DevOps.
De term DevOps is ontstaan in België als gevolg
van de zogenaamde ‘DevOps-Days’.
Deze dagen waren bedoeld om IT-experts van
zowel de ontwikkel-(development), als de
beheerkant (operations) van de organisatie bij
elkaar te brengen. En eigenlijk is daarmee de
term DevOps in zijn context geplaatst: een
multidisciplinair team dat volledig
verantwoordelijk is voor het continue beheer en
ontwikkeling van een dienst. DevOps gaat over
een permanente IT-service voor een klant.
Waarom DevOps?
Puppet Labs heeft zijn vierde jaarrapport
uitgebracht over de staat van DevOps. Dit
onderzoek bevestigt dat IT-performance een
business waarde vertegenwoordigt. IT kan een
positieve impact op de gehele performance van
het bedrijf hebben.Uit het onderzoek komt naar
voren dat:
IT-organisaties met een DevOps
oriëntatie 30x frequenterproducten
uitgeven met een lead time die 200x
korter is, 60x minder fouten bevatten en
168x snellere recovery realiseren.
Met behulp van Lean management en
continuous delivery worden condities
gecreëerd voor het sneller en duurzamer
leveren van waarde.
De Forrester studie DevOps ondersteunt dit
beeld. De onderzoekers stellen vast dat DevOps
organisaties in staat stelt om de tevredenheid,
opbrengst en efficiency te vergroten.
7 van de 10 organisaties, die applicaties
maandelijks of vaker opleveren verwachten een
hogere klant tevredenheid. 65% van de snel
leverende bedrijven verwachten verbetering in
efficiency tussen teams. 56% van deze bedrijven
verwacht groei in de opbrengsten.
Samenvattend stelt Forrester dat snellere
levering organisaties in staat stelt om innovatieve
oplossingen te leveren door het snel opnemen
van nieuwe vaardigheden en het verlagen van de
wachttijd voor feedback. Ze zijn in staat om in
een korte cyclus nieuwe ideeën uit te proberen,
werkende toepassingen te verbeteren en niet
werkende toepassingen te verwijderen. Betere en
snellere feedback stelt organisaties in staat om
verspilling terug te dringen, kosten te reduceren
en de klant ervaring te verbeteren.
3. Welke strategische vragen stelt
een DevOps team?
Als bedrijf heb je in het strategieproces de
deelgebieden van het bedrijfsmodel uitgewerkt.
Nu is het de beurt aan het DevOps team waarbij
gewerkt wordt vanuit de kaders van de
bedrijfsstrategie. Hier komen vragen naar voren
als:
Wie is de klant (customer segments)?
Wat heeft hij nodig (customer segments)?
Hoe communiceer/interacteer ik met de
klant met betrekking tot user cases en
feedback (customer relationships)?
Welke dienst/service/servicegroepen
worden geleverd (value proposition)?
Welke waarde voegen wij toe aan de
producten en het bedrijf (value
proposition)?
Op welke wijze vindt de deployment van
de verbetering plaats (channels)?
Hoe ziet onze Delivery pipeline er uit
(channels)?
Wat zijn de werkeenheden die door het
team verwerkt worden (key activities)?
Wat is de ‘Definition of Done’ voor deze
werkeenheden (key activities)?
Met welke DevOps teams werken wij
samen voor de integratie van het
totaalproduct (key partners)?
Met welke externe partners werken wij
samen (key parters)?
Welke tooling zetten wij in voor de
ontwikkeling, het testen, de delivery en
het monitoren (key resources)?
Welke best practices en standaardisaties
zetten wij in? Denk hierbij aan het
automatiseren van het testen,
Infrastructuur als een code (IaC),
Software as a Services, Platform as a
Service (key resources).
Hoe ziet de samenstelling van de
verschillende DevOps teams er uit (key
resources)?
Hoe investeer ik in de continue
ontwikkeling van het team (key
resources)?
Hoe ziet de kosten structuur van het team
eruit (cost structure)?
Welke waarde en opbrengsten genereert
het team (revenu streams)?
Zijn de kosten in balans met de
toegevoegde waarde (revenu streams)?
4. Een team ben je niet in je eentje!
DevOps is een teamsport. Een goed werkend
team heeft de individuele rollen en
verantwoordelijkheden goed gedefinieerd. De
Product eigenaar onderhoudt de contacten met
de business, de klanten en de DevOps teams. Hij
bewaakt de balans tussen de kosten en de
opbrengsten van het product en hij management
de backlog.
De IT-manager is eindverantwoordelijk voor de
gehele Operations, richt de IT-organisatie. Hij
bouwt het vertrouwen tussen de teams en tussen
Ontwikkeling en Operations. Hij creëert een
klimaat van leren, continue verbeteren en
zelfstandigheid van de teams.
De Ontwikkel manager bouwt vertrouwen
tussen Ontwikkeling en Operations. Hij creëert
een klimaat van leren, continue verbeteren en
zelfstandigheid van de teams. Hij borgt dat
Operations vroeg in het ontwikkelproces
betrokken is.
De Systems engineer automatiseert die
activiteiten waarmee Operations de meeste
moeite heeft (pijn reductie). De Quality engineer
levert input voor performance verbetering en
geeft feedback op de ontwikkel en productie
omgevingen.
De Ontwikkelaar plant de levering net zoals de
ontwikkeling van nieuwe toepassingen. Hij haalt
feedback bij Operations en verwerkt deze in het
ontwikkel en leveringsproces.
DevOps teams hebben vergaande
zelfstandigheid en daarin ligt een uitdaging
opgesloten. De teams moeten leren om
regelmatig te evalueren en open te staan voor
verbetering. Dit gaat niet vanzelf. De teams
moeten hiervoor lang genoeg bij elkaar blijven
om de meerwaarde van de samenwerking te
ervaren.
Tegelijk moet er tijd en faciliteiten geïnvesteerd
worden om te komen tot een gedeeld beeld, zicht
op de verschillende vaardigheden die de
teamleden leveren en het formuleren van een
gezamenlijk doel. De moeilijkste stap is elkaar
verantwoordelijk houden voor het realiseren van
dit doel.
5. De organisatie richten
DevOps houdt een belofte in van het toevoegen
van meerwaarde aan de bedrijfsprocessen van de
klant. Om dit te bereiken moet de
organisatorische inrichting aangepast worden.
De impact raakt zowel de inrichting, de
processen, de vaardigheden als de tooling.
Aanbevelingen gebaseerd op de rapporten van
Forrester en Puppet Labs zijn:
1. Stroomlijnen, versimpelen en
automatiseren van de levering (delivery
pipeline). Start bij het punt waar ideeën
en incidenten geïdentificeerd worden en
eindig bij de klant ervaring. Zoek actief
naar barrières die snellere levering in de
weg staan en ruim deze op.
2. Automatiseer test activiteiten om de
kwaliteit te verhogen en de leversnelheid
te verhogen. Handmatig testen kan de
snelheid van de klantvraag niet
bijhouden, is meer foutgevoelig en is
duurder dan geautomatiseerd testen.
Zorg dat het testen onderdeel is van de
continue integratieprocessen.
Geautomatiseerd testen als onderdeel van
de continue verbeteringsprocessen borgt
de opname van kwaliteit vanaf het begin
van de ontwikkelactiviteiten.
3. Gebruik infrastructuur als een code en
cloud technologieën om de provisioning
omgeving te versimpelen en te
stroomlijnen. Ontwikkelaars hebben deze
omgevingen nodig zodra ze starten met
het bouwen van code en de testers
hebben deze omgevingen snel hierna
nodig. Door de juiste omgeving klaar te
hebben staan (geen wachttijd) wordt de
snelheid en de kwaliteit vergroot.
Gestandaardiseerde omgevingen
gedurende de ontwikkeling, het testen en
de productie verminderd fouten en
ongedocumenteerde wijzigingen over
omgevingen heen.
4. Verminder de technische schuld om het
reactievermogen te verhogen en kosten te
verminderen. Technische schuld of
achterstallig technisch werk loopt op in
de tijd en maakt applicaties complex en
moeilijk veranderbaar. Door het
verminderen van de technische schuld
wordt het mogelijk om applicaties meer
modulair, weerbaar en sneller
opleverbaar te maken.
5. Ontkoppel applicaties en architecturen
om de levering te versimpelen. Zorg dat
de componenten en services
onafhankelijk ontwikkeld en geleverd
kunnen worden waardoor de
leveringsactiviteiten eenvoudiger, sneller
en met minder risico uitgevoerd kunnen
worden.
6. Verzamel en analyseer feedback om
betere behoeftestellingen (requirements)
op te stellen. Snelle leveringsfasen maken
het mogelijk om te meten of de levering
toegevoegde waarde heeft en geeft
informatie voor de prioriteiten van de
volgende levering. Snelle feedback maakt
mogelijk dat organisaties de
klanttevredenheid verhogen terwijl
tegelijk de hoeveelheid tijd, geld en
inspanning voor ongewenste
toepassingen vermindert.
6. 7. Richt DevOps teams in waarin
verschillende kwaliteiten
vertegenwoordigd zijn. Richt het team op
de klant, de services die deze klant
afneemt en de behoeftes van de klant.
Borg de zelfstandigheid van de DevOps
teams. De teams zijn verantwoordelijk
voor de hele IT-stack.
Meerwaarde voor Ontwikkeling
Ontwikkelingen kunnen met kleine stappen
iteratief afgehandeld worden. De ontwikkelde
toepassingen komen sneller bij de gebruiker en
feedback komt sneller en accurater terug bij de
ontwikkelaar. Verbeteringen kunnen via de
“change lead time “gevolgd worden. Neem de
pijn van de ontwikkeling weg en breng trots
terug in het bedrijf.
Meerwaarde voor Operations
Het samenstellen van een toolset die samen met
ontwikkeling gebruikt wordt bij de integratie, het
testen en in productie nemen van infrastructuur
code creëert al meerwaarde voor Ops. Hierdoor
zijn ontwikkelaars meer actief betrokken bij de in
productie name en probleemoplossing en
kunnen historisch gegroeide verschillen geslecht
worden ten gunste van snelheid en
betrouwbaarheid. Door voor Ops belangrijke
meeteenheden op te nemen in de rapportages zal
het gehele team beter presteren. Hierbij kan je
denken aan:
Beschikbaarheid (uptime/downtime)
Change fouten (change fail rate)
Hersteltijd (mean time to recover)
8. Meet het bedrijfsresultaat verbonden aan de
applicatie release. Snelle oplevering maakt
beter inzicht in de klant mogelijk en hiermee
is een betere relatie te leggen tussen de
bedrijfsstrategie, uitvoering, klant ervaring
en bedrijfsresultaat. Hiermee zijn kansen te
identificeren en kan het bedrijf sneller
reageren.
7. Dit artikel is geschreven door Myra Kievit in het kader van de opleiding IT
Auditing van de ESAA. Het artikel is onderdeel van de opdrachten voor het vak
Project en Programmamanagement.
Bronnen:
Quint, de zin en onzin van DevOps.
Forrester Microsoft DevOps.
Puppet labs, 2015 state of DevOps Report
http://www.businessmodelgeneration.com