Ontwikkelaars zijn dankzij de Scrum-methodiek in staat om in hoog tempo software te bouwen en te wijzigen. Alleen leert de praktijk dat er vertragingen optreden zodra een werkend product wordt opgeleverd aan de volgende afdelingen in het traject. Dat is zonde en onnodig. "Dit probleem is op te lossen door het vanuit twee invalshoeken te benaderen," aldus Marcel de Vries, CEO bij Xpirit en Microsoft MVP (Most Valuable Professional) en spreker op TechDays. Hij stelt dat er zowel iets aan de organisatie als aan de architectuur moet worden veranderd.

"Als we eerst naar de organisatie kijken, levert het ontwikkelteam de software die het bouwt vaak op aan een aparte afdeling of bedrijfseenheid, die het vervolgens gaat testen. Na het testen wordt het weer opgeleverd aan de operationele afdeling voor de acceptatietest. Daarna moet het nog naar productie worden overgebracht. Het steeds naar een ander team of bedrijfsonderdeel doorgeven van software zorgt voor veel stroperigheid en een oplevertijd die veel te lang is. Dat kan anders."

Marcel de Vries spreekt maar liefst vijf keer op TechDays, onder andere over het onderwerp van dit artikel, de architectuur van systemen voor continuous delivery en over microservices in een Microsoft landschap. Daarnaast geeft hij best practices voor het gebruik van open source en spreekt hij over cloud based load testing van je webapplicaties.

DevOps neemt barrières weg

Op organisatorisch vlak is dit op te lossen door zogenaamde DevOps in te richten. De Vries: "Je hebt dan geen ontwikkelteam meer die iets overdraagt naar een ander team, maar maakt gebruik van multidisciplinaire teams bestaande uit ontwikkelaars, testers en mensen die acceptatie en productie doen. Ze zitten dus allemaal in hetzelfde team. Door barrières in de organisatie weg te halen, wordt het een teamverantwoordelijkheid om naast het ontwikkelen van software, deze zelf te testen, op te leveren, te draaien en ook om pieperdiensten te lopen. Dus op het moment dat het stuk is, worden ze zelf uit hun bed

gebeld. You build it, you run it, wordt dit ook wel genoemd. Hiermee versnel je het proces op organisatorisch vlak. Het moet wel vanuit het management gedragen worden. Verder heb je schapen met vijf poten nodig. Mensen die buiten hun comfortzone durven te werken en die elkaar helpen en ondersteunen. Want zodra je met DevsOps werkt, kun je niet meer in traditionele functievakjes denken."

Zaak om software anders te organiseren

Multidisciplinaire teams is één kant van het verhaal. Want zolang software als een monolithisch systeem wordt gebouwd, blijft het lastig om functionaliteit snel uit te breiden of aan te passen. "Ook een monoliet bestaat vaak uit componenten of deelsystemen," legt Marcel de Vries uit, "maar meestal moet het systeem als één geheel worden opgeleverd. Wat je eigenlijk wil, is dat elke change of feature als een zelfstandige eenheid wordt opgeleverd aan productie." Dus is het zaak om software anders te organiseren.

"Dat kan door de monoliet in kleinere stukken op te delen en de afhankelijkheden tussen die delen in kaart te brengen. De beste aanpak is door het systeem eerst in twee of drie grote stukken op te delen. Splits die blokken vervolgens weer verder op. Evolutionair dus. Uiteindelijk wordt elk blokje een op zichzelf staande eenheid. Waardoor je iets kunt opleveren zonder aan de rest van het systeem te komen. Deze blokjes noem je Micro Services. Elke Micro Service is een ondeelbare eenheid. Andere blokjes kunnen er een afhankelijkheid mee hebben, maar dat slaat alleen op de interface tussen Micro Services onderling en niet op de implementatie. In plaats van een monoliet, krijg je een constellatie van losse services, die samen één systeem vormen."

Er is ook een nadeel

Het grote voordeel is dat je Micro Services aan een team kan toebedelen in het DevOps concept, die er vervolgens verantwoordelijk voor is. Kleine teams kunnen zo los van elkaar doorlopend features ontwikkelen en daarmee verhoog je de opleversnelheid. De Vries: "Er is ook een nadeel, want de complexiteit van het systeem gaat omhoog. Daarom is het organisatorische deel, het indelen in DevOps, een randvoorwaarde voor succes."

Om de afhankelijkheden tussen blokjes software te realiseren, wordt een architectuur gebruikt die al langer bestaat, namelijk Event Driven Architecture (EDA). "Bij Micro Services is er sprake van een autonoom systeem," verklaart de Vries. "Blokjes werken volledig los van elkaar. Ook als andere blokjes waar het afhankelijkheden mee heeft tijdelijk uit de lucht zijn. Eén van de principes binnen de architectuur is resilience, of fault tolerance. Een blokje kan zich abonneren op events uit andere blokjes via een bijvoorbeeld queueing-mechanisme. Blokjes bouwen zo in de loop van de tijd een soort schaduwboekhouding met gegevens op, zodat ze autonoom kunnen functioneren."

Eventual Consistency

Door de schaduwboekhouding kan het gebeuren dat een blokje verouderde gegevens gebruikt zolang een aanpassing uit een ander blokje nog niet is ontvangen. Je gaat er in deze architectuur dus vanuit dat data niet altijd op ieder moment honderd procent accuraat is. "We noemen dit Eventual Consistency," licht Marcel de Vries toe. "Het betekent dat data op een bepaald moment altijd weer consistent wordt. Dat is anders dan bij transactionele systemen, waarbij data transactioneel consistent is. Dat is

iets om je bewust van te zijn. Bedrijfsprocessen moeten daar tegen kunnen. Je kunt bijvoorbeeld extra functionaliteit inbouwen om een factuur opnieuw te sturen als het naar het oude adres is gegaan. Het vraagt om een andere manier van denken, om systemen te maken die hoger schaalbaar en meer fault tolerant zijn."

Marcel de Vries spreekt 28 en 29 mei op TechDays in het World Forum in Den Haag. TechDays 2015 staat in het teken van de laatste technologie en belicht brede thema's als Cloud, Web, Mobile, Internet of Things. Microsoft oplossingen als Office, Tools, Lync, Data & Insights, Enterprise Mobility en Windows zijn ruimschoots vertegenwoordigd. Tijdens de nieuwste editie van TechDays neemt men u de diepte in tijdens meer dan 200 technische sessies

Een bezoek aan TechDays zorgt ervoor dat u weer in de breedte op de hoogte bent van de laatste innovaties, technologieën en ontwikkelingen, inclusief Windows 10!