Tech 4250 x bekeken

Nooit meer nadenken

6 juni 2016 - Younes van Ruth

Handelingen die je dagelijks doet gaan vaker fout dan ingewikkelde handelingen. Zou het niet fijn zijn als je hierbij juist niet meer na hoeft te denken?

Wat mij persoonlijk opvalt is dat de eenvoudigere zaken vaker geneigd zijn mis te gaan. Dagelijkse werkzaamheden waarin je getraind bent, gaan vaak op de ‘automatische piloot’. De meest lastige facetten uit je werkzaamheden krijgen juist de volledige aandacht, waardoor je de kleinigheidjes wellicht eerder uit het oog verliest. Wij merkten dat dit soms op vervelende momenten tot uiting kwam.
 
Neem bijvoorbeeld de oplevering van al je werkzaamheden voor een website van een klant, waarvoor je de afgelopen maand bezig bent geweest. Vaak weet je na die maand echt niet meer precies in welke bestanden je wijzigingen hebt aangebracht. Het eindresultaat of vooraf afgesproken doel is echter prima bekend. De ingewikkelde modules die zijn gebouwd en werkzaamheden die je hebt verricht kun je ook haarfijn toelichten. Het foutloos opleveren van de werkzaamheden is natuurlijk wel een belangrijk moment voor zowel developers als de klanten. Als dit moment een negatieve lading krijgt door fouten die zijn gemaakt, welke relatief eenvoudig opgelost hadden kunnen worden, is dat natuurlijk zonde.

In een ontwikkelteam werken vaak meerdere developers samen aan een eindproduct. Als iedereen denkt zijn / haar werk af te hebben, wordt er gekeken of alles nog werkt zoals het zou moeten werken, en wordt er gekeken welke onderdelen er moeten worden overgezet naar de test- / acceptatieomgeving. 
Het kost vaak veel tijd om alle werkzaamheden te bundelen en deze met de hand over te zetten. Bovendien is de kans op fouten tijdens dit proces groot, omdat de tijd tussen de verschillende releases soms lang kan zijn. Ook is het gewoon vreemd dat in deze tijd waarin alles geautomatiseerd wordt, wij als developers zelf nog dingen met de hand doen.

Enige tijd geleden heb ik samen met collega Rob tijdens de Sitecore User Group Nederland een presentatie gegeven over Automated Deployment & Continuous Integration. Hier hebben wij verteld hoe bij Estate is gezorgd dat ons ontwikkelproces beter dan voorheen aansluit op de verschillende vraagstukken in het bedrijfsproces. In het kort betekent Continuous Integration (afgekort CI) dat al het toegevoegde werk van developers, steeds weer met elkaar wordt geïntegreerd. 
Als wij functionaliteiten toevoegen aan applicaties, schrijven we code in een bepaalde programmeertaal. De code slaan wij simpel gezegd op in een zgn. repository (verzamelpunt), waardoor we als team in staat zijn elkaars wijzigingen te zien en werk met elkaar te delen. 

Op het moment dat een team aan verschillende functionaliteiten aan het werk is, en deze wijzigingen niet vaak genoeg op elkaar worden afgestemd, kan er een situatie ontstaan waarin werk van developer A, het werk van developer B kapot maakt. Om dit te voorkomen kun je het CI principe gebruiken, waarbij bij elke toevoeging aan de repository even wordt gecontroleerd of alles nog op elkaar aansluit. Het geheel zit nog iets ingewikkelder in elkaar, maar voor nu is dit genoeg om te weten. 

Bij Automated Deployment zorg je ervoor dat na een succesvolle integratie je werk kan worden neergezet op bijvoorbeeld een testomgeving. Dit proces kun je geheel automatisch laten verlopen en zorgt er ook voor dat de testomgeving altijd geüpdatet is. Je kunt er nog voor kiezen op welke omgevingen je dit proces automatisch wilt laten verlopen en waar je graag handmatig (wel middels een simpele druk op de knop) wilt deployen.

Sinds kort zijn wij bij Estate daarom begonnen met het opzetten van een proces, waarin we werken met CI & Automated Deployment. Wij gebruiken hiervoor verschillende tools die ervoor zorgen dat het werk steeds wordt gecontroleerd op kwaliteit en automatisch wordt overgezet naar onze interne testomgeving. 

Dit is goed, omdat wij zelf bij vrijwel alle projecten werken met het SCRUM principe. In een scrum sprint is het noodzakelijk dat het werk van developers tijdens de meetings (DSU’s) altijd up to date is. Onze klanten waarbij wij met dit principe werken, merken dat de testomgeving de locatie is waarop ze de laatste status van het traject kunnen bewonderen.
 

Younes van Ruth

Younes is een gepassioneerde Sitecore ontwikkelaar met gevoel voor humor en geen uitdaging is voor hem te groot!

Reacties ()