Radicale versnelling van het software

Radicale versnelling van het software
voortbrengingsproces door middel van
Continuous
Delivery
Radicale versnelling van het
software voortbrengingsproces
door middel van Continuous
Delivery en Agile Transformatie
IT Managers staan onder druk om steeds
sneller veranderingen door te voeren
Ondernemingen overleven tegenwoordig alleen als ze sneller kunnen
innoveren dan de concurrentie. Effectieve innovatie lukt alleen door
directe feedback van klanten te krijgen en deze binnen enkele dagen om
te zetten in software die echt gebruikt wordt. ‘Concept-to-cash’ in dagen,
niet in weken of maanden. Echter door de bestaande legacy systemen
en complexe processen komt daar weinig van terecht. Hierdoor blijft de
verwachte ambitie van de organisatie veelal steken.
Maar hoe worden deze ambities toch weer bereikbaar?
Het software voortbrengingsproces kan op zeer verregaande manier worden geautomatiseerd. Vrijwel alle bottlenecks van herhaaldelijk menselijk handelen kunnen worden
geëlimineerd. Hierdoor is het mogelijk steeds sneller, beter en goedkoper te leveren.
Dit wordt mogelijk gemaakt met ‘Continuous Delivery’.
Wat is Continuous Delivery eigenlijk?
Continuous Delivery verwijdert op radicale manier de ‘waste’ uit het software voortbrengingsproces. Alle handmatige proces stappen binnen het testen, het deployen,
het configuratie management, het op- en afschalen van omgevingen en de monitoring
worden volledig geautomatiseerd. In combinatie met een strak Agile proces wordt
snelle en effectieve feedback van klanten direct omgezet in competitieve IT systemen.
Grip krijgen op de situatie?
Xebia brengt de volwassenheid in kaart van het volledige voortbrengingsproces door middel
van een quick scan, die direct inzicht geeft in het verbeterpotentieel. Dit wordt gedaan op
basis van 6 volwassenheidsaspecten: building, testing, deploying, provisioning, monitoring
en DevOps Integratie.
“How to deliver software in days instead
of months.”
3
Quick Scan van uw software voortbrengingsproces
Aanleiding
Doelstelling
Context
Scope
Stakeholders
1.
Intake met opdrachtgever
2.
Vastleggen centrale onderzoeksvraag
Workshop met stakeholders
Context verdiepen
Basis problemen verzamelen
Inventarisatie van oplossingen
Identificeren van artefacten o.b.v.
de Continuous Delivery Maturity
Matrix
3.
Interviews met stakeholders
Onderzoeksgebied
4
Onderzoeksgebied
Definieren van kernvraag
Onderzoeksgebied
Techniek
Architectuur
Actuele problemen
Proces
Team
4.
Bevindingen valideren
Verificatie van gevonden feiten
5.
Aanbevelingen terugkoppelen
Visie
Mening van experts
6.
Presentatie & Rapportage
Uitvoerbare adviezen
Onderbouwde beoordeling
Duidelijkheid over de toekomst
De Continuous Delivery Quick Scan laat zien
waar de versnelling zit
De Continuous Delivery Quick Scan geeft u inzicht in en duidelijke verbetervoorstellen voor het nemen van de volgende stap in de volwassenheid
van uw software voortbrengingsproces. Hieronder staan kort de stappen
beschreven voor de Continuous Delivery Quick Scan.
1. Iedere Quick Scan start met een intake waarin aanleiding, doelstelling en context helder
worden geformuleerd. Gezamenlijk stellen we de concrete onderzoeksvraag en het
toetsingskader vast, welke de basis vormt voor de opdrachtformulering.
2. Gerichte interviews met stakeholders leveren de basis voor verdere analyse. De interviewvragen bestrijken een variëteit aan deelgebieden en zijn samengesteld op basis van onze
Continuous Delivery Maturity Matrix en jarenlange ervaring in het versnellen van complexe
organisaties.
3. De Continuous Delivery Maturity Matrix gaat uit van 6 aspecten van volwassenheid.
1. Building, 2. Testing, 3. Deploying, 4. Provisioning, 5. Monitoring en 6. DevOps
Integratie. Op deze gebieden wordt verdere analyse gedaan in samenwerking met de
stakeholders en experts van de klant.
4. Na de analysefase hebben we per volwassenheidsaspect een helder inzicht in de stand
van zaken. Deze bevindingen brengen we met elkaar in verband en valideren we met de
betrokken partijen om echt tot de kern van de zaak te komen. Onze ervaring leert dat
kwaliteitsproblemen altijd terug te voeren zijn op onderliggende oorzaken. Analyse van
techniek op zich is dus niet voldoende.
5. Onze aanbevelingen zijn gebaseerd op feitelijke bevindingen in combinatie met onze
praktijkervaring. Over hoe software zonder onnodige handmatige handelingen
gecontroleerd in productie komt. En hoe de organisatie hiervoor optimaal kan worden
ingericht.
6. Als sluitstuk van de Quick Scan presenteren en rapporteren wij de bevindingen en
aanbevelingen binnen uw organisatie. Indien u wenst, kunnen we u helpen met het
implementeren van de aanbevelingen.
5
Zo krijgt u grip op uw situatie
Wat is de volwassenheid van uw software voortbrengingsproces nu?
Continuous
Integration
(Building)
Testing
Deploying
Provisioning
100% volledig geautomatiseerde testen van
DEV tot PROD.
Continue End-To-End
deployments.
Self Service Portaal aanwezig
om nieuwe omgevingen aan
te vragen.
Altijd wordt de “Health” en
“Quality” getoond op een
dashboard. Adaptieve
thresholds en automatische
trend analyse. Monitoring
gegevens worden actief
gebruikt om het systeem te
verbeteren.
Operations en Ontwikkeling
zijn beide onderdeel van
het multidisciplinaire team
en delen alle verantwoordelijkheden
Centrale build omgeving.
Teams herbruiken actief
generieke componenten op
een veilige en gecontroleerde
manier
Automatische en dynamische
kwaliteitstesten, zoals
Security scans, functionele
en performance tests,
garanderen de kwaliteit van
de code.
Op test gebaseerde deployments van End-To-End
applicaties. Deployments
gebeuren over meerdere
omgevingen.
Omgevingen worden
gecreëerd en afgebroken
met een druk op een
knop. Operation systeem
is gevirtualiseerd.
Monitoring van software
kwaliteit. Application
“Health”-dashboard is
beschikbaar voor de teams.
Monitoring van business level
kwaliteits metrieken (KPI’s,
opbrengst, conversion rate,
succesvolle transacties etc.)
Een afgezant van Operations
werkt mee in het project. Een
afgezant van Ontwikkeling
werkt mee in het project.
Build on commit.
Gearchiveerde componenten
wordt beschikbaar gesteld
voor hergebruik door andere
teams.
Automatische statische code
en security analyse nadat
code is ingecheckt.
Omgevingen zijn identiek.
Rollout van applicaties
gebeurt met een druk op
de knop. Geautomatiseerde
deployments naar de OTAP
omgeving.
Omgevingen zijn identiek.
Verschillende tools worden
gebruikt voor het provisionen
en configureren van een
omgeving.
Monitoring van zelf gemaakte
“Health check” functionaliteit.
Monitoring van applicatie
“health metrics” (heap,
threads, response times,
load).
Ontwikkeling en Operations
werken samen wanneer het
nodig is.
Geautomatiseerde builds
worden op een centrale plek
uitgevoerd en handmatig
geactiveerd.
Automatische testen worden
geïnitieerd op het moment
dat code wordt ingecheckt.
De testen richten zich alleen
op unit/component testen.
Self service deployments
naar de Ontwikkel en Test
omgeving.
Gescripte installaties per
component voor elke
server. Omgevende systemen
worden handmatig geconfigureerd.
Monitoring van applicatie log
files voor “errors”.
Code wordt opgeleverd met
Release notes, waarmee
Operation de installatie doet
en managed.
Builds worden uitgevoerd op
een lokaal werkstation door
gebruik te maken van 1 of
meerdere build scripts.
Alle testen behoeven een
handmatige activiteit. Sommige testen zijn
geautomatiseerd, maar
moete handmatig worden
geïnitieerd.
Deployment door de executie
van afzonderlijke deployment
en database scripts. Manuele
configuraties en intalls/ env.
Handmatige installatie en
configuratie van de software
voor middeleware, databases, applicatie servers, etc.
Monitoring van system metrieken (CPU, disk, memory,
proces).
Operation wordt aan het
eind van het project actief
betrokken
Complete
Level 4
Average
Level 3
Beginner
Level 2
Base
Level 1
6
DevOps
Integratie
End-To-End geautomatiseerd
gestuurde builds.
Level 5
Advanced
Monitoring
De 6 aspecten van volwassenheid:
1. Building Componenten kunnen op een gecontroleerde en veilige manier worden
hergebruikt. Worden builds op regelmatige intervallen en op een centrale plek getest en
uitgevoerd, kunnen andere projecten en teams hierdoor op een gecontroleerde manier
componenten hergebruiken en hoe is dergelijke omgeving het beste implementeren?
2. Testing Kwaliteit wordt reeds in een vroeg stadium in de software aangebracht.
Worden geautomatiseerde tests als integraal onderdeel van het project uitgevoerd,
op welke manier worden gevonden fouten geadresseerd, zijn de tests doeltreffend
en op welke manier kunnen we dit proces stroomlijnen?
3. Deploying Software kan in een kwestie van minuten in productie worden gebracht.
Kunnen end-to-end applicaties met een druk op de knop over meerdere servers worden
geinstalleerd en is dit als een geautomatiseerd, herhaalbaar en voorspelbaar proces,
gebaseerd op Application Release Automation (ARA)?
4. Provisioning Servers en systemen kunnen met een druk op de knop worden
opgebouwd- en afgebroken. Is het mogelijke om op ieder gewenst moment werkende
omgevingen in een paar minuten foutloos op te bouwen en weer af te breken, zijn deze
omgevingen vrij van afwijkende configuraties, onderhoud u hierdoor alleen de platformen
die u werkelijk nodig hebt en wat is er voor nodig om dit doel te bereiken?
5. Monitoring Op feiten gebaseerde rapportages kunnen op ieder moment worden
opgevraagd. Biedt de omgeving voldoende mogelijkheden om voor ieder software
delivery traject op ieder gewenst moment een holistisch, op feiten gebaseerde statusrapportage te geven, kan op deze rapportages ook echt worden gestuurd en wat
moet er gebeuren om dit in te voeren?
6. DevOps Integratie Development en Operations delen verantwoordelijkheden voor de
kwaliteit van software. Wat is de manier waarop development en operations op een agile
manier samenwerken, hoe ziet de structuur van het delivery team eruit en wat moet er
gebeuren om het team end-to-end voor het eindresultaat verantwoordelijk te maken?
7
Missie is ‘Autoriteit’
Focus op
Innovatie
Focus op het ‘Softwa
Leidend in
Betrouwbaar
8
Resultaatgericht
‘Continuous Delivery’
versnelling
ware leveringsproces’
consultancy op haar vakgebied in NL
Focus op ‘Agile Transformatie’
9
Optimale resultaten van Continuous Delivery
behaalt u met een agile organisatie
Met de Agile Maturity Scan brengen wij de agility van uw
organisatie in beeld.
U werkt al enige tijd met agile in uw organisatie. De verandering is ingezet en
de eerste resultaten zijn zichtbaar. Maar heeft agile u gebracht wat u ervan
verwachtte? Of kan het scherper en beter? Wat kan er verbeterd worden,
en waar begint u mee? En indien u tevreden bent over de tot nu toe bereikte
resultaten, wat is de volgende stap voor uw organisatie om het rendement
van agile verder te vergroten?
Overzicht
Onderliggend aan de Agile Maturity Scan is het Agile Maturity Model dat Xebia zelf
ontwikkeld heeft in samenwerking met haar klanten. Dit model meet op objectieve wijze
op drie deelgebieden de volwassenheid en effectiviteit van uw agile werkwijze. Deze drie
deelgebieden zijn mens, proces en organisatie.
Model
Het model, en daarmee de scan, gaat in op de onderdelen mens & team, proces en
organisatie. Bij mens & team gaat het over de medewerkers en hun gedrag, over
samenwerking, teamdynamiek en zelforganisatie. Bij proces wordt bepaald hoe goed
het agile of scrum proces wordt toegepast, wat ermee wordt bereikt en/of het beter kan.
Bij organisatie wordt het grote plaatje bekeken waarin een project of programma zich
beweegt inclusief voortbrengingsketen en business aanhaking. Hoe is het portfolio
management ingericht en hoe wordt beoordeeld in hoeverre deze een agile manier van
werken ondersteunt. In het model zijn 5 groeifases onderkend, met elk hun specifieke
kenmerken. De kracht van het model zit hem in de combinatie. Vanuit verschillende
invalshoeken (mens, proces en organisatie) wordt naar de volwassenheid gekeken en dat
wordt dan concreet en praktisch gemaakt. Daarmee kan een zeer gericht advies gegeven
worden over de vervolgstappen voor verdere verbetering.
10
Responsiveness
Level 5
Time to Market
Level 4
Feature Alignment
Level 3
Quality
Level 2
Productivity
Level 1
Process
People (Attitude)
Organization (Structure)
Adaptive
Flexible
Agile / Changeable
Klantfeedback wordt actief gehaald
en direct gebruikt. Business cases zjin
stuurmiddelen geworden, er is ondernemerschap (Lean Startup). De vertaling
van visie - business doel - portfolio
keuzes - projecten is transparant en
werkt. De overwegingen achter prioritering van projecten zijn transparant en
worden begrepen door de teams.
De Product Owner acteert als Product
Manager, krijgt opdracht de strategie te
realiseren en komt daarom met projectvoorstellen om de gestelde business
doelen te behalen.
Persoonlijk ondernemerschap, doen wat
nodig is vanuit intrinsieke motivatie.
De klanten van de organiatie worden
betrokken bij portfolio keuzes.
De organisatie wil en kan reageren op
veranderingen in haar omgeving en is
een netwerkorganisatie geworden.
Flowing
Motivated
Aligned / Committed
Snelle deleveries en regelmatig ‘live’, niet
alleen op einde project. Klantfeedback
begint gezocht te worden. Echte sturing
op business value binnen de projecten,
outside-in prioritering door de Product
Owner. Er wordt keten-breed gedacht
en geacteerd. Opdrachtgever stuurt op
visie/strategisch, de Product Owner op
business doelen.
Teams zijn ‘performing’ geworden, met
hoge voorspelbaarheid en vanzelfsprekende kwaliteit. Teamleden spreken
elkaar aan op minder functioneren.
Mensen zijn gemotiveerd de gestelde
business doelen te behalen. Development en operations zijn geintegreerd in
de teams (DevOps).
Product Owners acteren als groep ipv.
individu, er ontstaat samenwerking over
teams heen. Projecten worden verkort bij
opportunities elders. De wijzigingenstroom uit functioneel beheer is integraal
onderdeel van het Product Owner werk.
Product (Ownership)
Focused
Coordination / Business Driven
Product Owner rol is ingebed in de
organisatie, het mandaat is in orde (niet
overruled door management) en de rol is
daadwerkelijk bemand. De PO prioriteert
featues, maar stuurt nog onvoldoend
op business value (over features heen
kijken). De grotere impediments staan
op de agenda van het management en
worden opgelost.
De mensen weten waar ‘ze het voor
doen’, ze weten waar het bedrijf naar toe
wil. De teams zijn van IK -> WIJ gegaan,
het team doet wat nodig is en kijkt
over de vakgrenzen heen. We maken
dingen af.
Agile Portfolio management geintroduceerd, nog geen echte sturing op
business value in en over de portfolio’s.
Agile mindset ook buiten IT ingebed.
Beweging naar DevOps wordt ingezet
om operations sterk te betrekken tijdens
development.
Continuous Improvement
Disciplined and Educated
Self-organization
Evaluaties in de teams worden serieus
gedaan en leiden tot continue verbeteringen waardoor de kwaliteit stijgt.
Dit geldt ook voor de Product Owner
teams. De Product Owner rol is nog niet
ingebed in de organisatie. Er wordt nog
weinig geleerd over de teams heen.
Professionale attitude, gedreven om
kwaliteit te leveren. Er onstaat wederzijds respect tussen de teamleden.
Teams beginnen multi-disciplinair te
werken en teamleden kijken verder dan
alleen hun eigen vakgebied. De autonomie van teams stijgt.
Vaste teams geformeerd, er wordt meer
verantwoordelijkheid lager in de organisatie gelegd. Er ontstaat zelf-organisatie
op beperkte schaal.
Lean and mean
Team play
Scaling
Agile is vooral nog instrumenteel.
Eigenaarschap ligt bij de opdrachtgever,
product owner krijgt projectopdracht en
is primair uitvoerend.
Hele team zit bij elkaar, teamleden
hebben invloed op de werkwijze.
Beheer is nog niet aangehaakt.
Basic portfolio management, project per
project. Er zijn projectteams geformeerd,
nog geen vaste (stable) teams.
“Time-to-market versnellen klinkt goed
maar waar beginnen we?”
11
“Een groot deel van onze
tijd gaat op aan productie
verstorende problemen
en niet aan vernieuwingen
die onze business verder
helpen.”
12
Onze referenties
Wij helpen onze klanten al sinds 2001 met Quick Scans op het gebied
van software kwaliteit en Continuous Delivery. Sindsdien heeft Xebia
tientallen Quick Scans en QA opdrachten uitgevoerd. Hier vindt u een
greep uit onze referenties.
Ziggo – Invoering van Continuous Delivery
Uitdaging: De Ziggo internetsite staat als platform centraal in de dienstverlening naar
klanten en heeft meer dan een miljoen unieke gebruikers per week. Om maximaal te
kunnen inspelen op de klant behoefte is het voor Ziggo uitermate belangrijk om snel
wijzigingen te kunnen doorvoeren. Bij Ziggo was hierin een duidelijke versnelling nodig
om weer competitief te worden.
Resultaat: Ziggo heeft in korte tijd op basis van het advies van Xebia een aantal concrete
verbeteringen in de opleversnelheid door kunnen voeren. Op de middellange termijn heeft
dit advies geleid tot de realisatie van de volledige nieuwe ontwikkelstraat op basis van alle
principes van Continuous Delivery.
Het Kadaster – Invoering van Automated Deployment/Provisioning
Uitdaging: Het Kadaster heeft veel geïnvesteerd in een passende maatwerk infrastructuur
voor elk nieuw maatwerk automatiseringsproject. Het Kadaster had dringend behoefte aan
een oplossing om de stijgende kosten, toenemende complexiteit en het niet kunnen voldoen
aan de wensen vanuit de business het hoofd te bieden.
Resultaat: Xebia heeft met het Kadaster een gestandaardiseerde infrastructuur gerealiseerd
op basis van cloud principes, inclusief de volledige automatisering van alle handmatige
activiteiten. Via een ‘self service’ loket kan de eindgebruiker zelf omgevingen bestellen en
applicaties laten landen. De tijd van aanvraag tot levering is hierdoor een kwestie van
minuten in plaats van maanden geworden.
Vattenfall (NUON) – Invoering van Continuous Integration
Uitdaging: De applicatie architectuur van de internet site van NUON is opgebouwd uit
een groot aantal verschillende technologieën. Door de tijd heen zijn er inmiddels zoveel
verschillende libraries en frameworks gebruikt dat het aanbrengen van verbeteringen
steeds moeilijker wordt en meer tijd in beslag neemt.
13
Resultaat: Het resultaat van de Quick Scan van Xebia is een verbeterplan van de
architectuur en het software voorbrengingsproces op basis van het continuous delivery
maturity model. Momenteel is Continuous Integration ingericht en het automatisch
deployment proces wordt geoptimaliseerd.
bol.com – Invoering van agile
Uitdaging: De groei van bol.com eist veel van de performance en beschikbaarheid van de
webshop. Dit legt een enorme druk op de IT-organisatie. Naast deze groei is de organisatie
continu bezig om nieuwe en innovatieve ideeën te realiseren voor de winkel. Deze ideeën
leiden altijd tot aanpassingen in de systemen en die wijzigingen vragen daarom om een
flexibele benadering. Echter bij bol.com was de innovatie snelheid op een te laag peil
geraakt en een radicale verandering was nodig.
Resultaat: Xebia heeft de agile manier van werken ingevoerd bij bol.com, waardoor aanzienlijke verkorting van de time to market is gerealiseerd. En door de invoering van meerdere
agile teams is parallelle software ontwikkeling mogelijk gemaakt. Dit heeft als resultaat gehad
dat de medewerkers weer erg gemotiveerd zijn en bol.com kan in een hoog tempo door
blijven groeien.
NS – Quick Scan op bestaande systemen en processen
Uitdaging: Het OV-chipkaart systeem, dat op alle stations van Nederland geïnstalleerd is,
moet regelmatig aangepast worden. Het bijwerken van het system kost vele dagen en
vereist veel handwerk door specialisten met inhoudelijke kennis van het system. Om het
deployment proces te verbeteren is een maatwerk oplossing gebouwd waarmee installaties
van het systeem geautomatiseerd worden gerealiseerd. De NS had echter geen volledig
vertrouwen in de kwaliteit van oplossing.
Resultaat: Op basis van de quick scan heeft Xebia geadviseerd om te investeren in
kwaliteitsverbeteringen i.p.v toevoegen van nieuwe functionaliteit. Tevens heeft Xebia
concrete adviezen gegeven over een meer iteratief ontwikkelproces.
Rabobank Nederland – Online ontwikkeling op agile wijze
14
Uitdaging: Systeemontwikkeling op het gebied van Internet gebeurt bij de Rabobank op
een agile manier. De vraag was hoe dit efficiënter zou kunnen om een nog kortere doorlooptijd te bewerkstelligen. Systeemontwikkeling wordt bij de Rabobank deels uitgevoerd
door middel van offshoring bij een grote Indiase partij.
Resultaat: Rabobank heeft de concrete aanbevelingen van Xebia geïmplementeerd,
waardoor doorlooptijden van maanden konden worden gereduceerd tot weken. Dit heeft
geleid tot een nieuwe manier van samenwerking met de offshoring partner.
“Hoe kan ik kwaliteit
vergroten en tegelijkertijd
mijn kosten verlagen?”
Wij helpen u graag verder. Bel ons!
Martin van Steenis
Manager Sales IT Architects
T +31 6 29 00 39 00
[email protected]
Reinier Verschure
Manager Sales IT Architects
T +31 6 15 02 48 70
[email protected]
Enrique Zschuschen
Business Unit Manager IT Architects
T +31 6 55 38 74 38
[email protected]
15
“Quality without
compromise.”
Utrechtseweg 49
1213 TL Hilversum
T: +31 (0)35 538 19 21
[email protected]
www.xebia.com/continuousdelivery
16