post-header-photo

Bezoek aan Coolblue in Rotterdam

Donderdag 12 november vertrokken Jeldert, Matthijs en ik ‘s middags in de auto naar Rotterdam. Onze collega Dirk Jan van TRES link was online een bericht tegen gekomen dat je je aan kon melden voor een Behind de Scenes event. Drie presentaties én een rondleiding door het pand van Coolblue. Daar is eigenlijk mijn parttime-donderdagmiddag ook voor bedoeld. Studie en zulke events bezoeken. Jammer genoeg kan dat vaak niet omdat er andere klussen gedaan moeten worden (boodschappen, schoonmaken), maar vandaag dus wel! In de buurt van Utrecht was al wat filevorming, dichterbij Rotterdam konden we soms stapvoets rijden, om 18.00 uur stond de auto in de parkeergarage. Mooi op tijd. De inloop startte om 18.15 uur, de presentaties beginnen om 19.00 uur.

Eerst naar de MC Donalds aan de Coolsingel om die rammelende maag stil te krijgen, daarna door naar het hoofdkantoor van Coolblue. In de lift naar de achtste verdieping. Als we uit de lift stappen worden we welkom geheten door 2 medewerkers (en de dame achter de balie) en krijgen we een naambadge. Daarop kun je zien aan welke tafel je zit. We splitsen op en maken kennis met de andere bezoekers die aanwezig zijn. Zo zit aan mijn tafel Pat Hermens, een Australiër die bij Coolblue werkt en ook een presentatie gaat geven. Omdat we zo internationaal zijn worden de conversaties in het Engels gehouden.

Coolblue heeft 332 webshops en 7 fysieke winkels. De fysieke winkels zijn er zodat klanten het product eens vast kunnen houden, maar vooral “om een steen door de winkelruit” te kunnen gooien.
Klanten willen een adres waar ze bij problemen heen kunnen gaan. Erg herkenbaar. Op dit moment heeft CB 115 developers.

cb_twitterscherm.jpg – het Twitterscherm bij de receptie, ja ik sta ook in het lijstje. Ook is er een ipad voor de bezoekers voor het snel aanmelden.

We beginnen met de presentatie door Niels Abels, lead C# Developer.
Bij het backoffice-development zijn 24 .NET C# programmeurs werkzaam. Er wordt gewerkt met continuous delivery. Tools hierbij zijn Github, Teamcity en Octopus Deploy.
De automatische testen omvatten unit-testing, integration-testing, regession-testing en enduser-testing.
In een shared library worden custom controls bijbehouden (bv upload/download van documenten).
Na review van de code wordt er geen menselijke interactie meer uitgevoerd. Codes software testing, selfdocumenting het complete proces.
Met behulp van Application Insights wordt het systeem zichtbaar gemaakt voor monitoring (hier ligt meer de nadruk op dan testen).
Meer genoemde tools: NCrunch, CodedUI, ClickOnce. Zaken draaien intern op eigen hardware, er is wel de wens om dit ooit naar een externe provider (bv Azure) over te zetten.

De tweede presentatie wordt door Pat Hermens gedaan.
De presentatie van Pat gaat over legacy-systemen. Bij Coolblue wordt er gewerkt aan het herbouwen van de back office systemen. Maar hoe hou je 1200+ gebruikers tevreden? In den beginne was er een Oracle-database welke de naam Vanessa kreeg. Hé… het ligt toch in de aard van de programmeur om een systeem een vrouwennaam te geven. Ik herinner me nu spontaan “Carla” van Coolminds. Om de processen soepeler te laten verlopen zijn er allemaal losse api’s/ C# micro services gemaakt. Onder andere met Rabbit MQ kun je berichten tussen de systemen verzenden.
In het begin was er alleen mp3man.nl. In 2005 kwamen daar 350 orders uit het systeem. De Oracle-database had 250 tabellen. Momenteel zitten we met alle shops op 12.000 orders per dag. Toename van 3500%. In de applicatie zijn 1.150 schermen. In de database hebben we inmiddels 1.600 tabellen, 3.800 stored procedures en 2.800 triggers.
Vanessa wordt nu nog gebruikt om historische data aan te leveren.
De aanpak wordt uitgevoerd op basis van Agile/Reliable + Testable/Maintainable.
Het zijn nu taskbased workflows, gebaseerd op .NET WPF/UW.
Rabbit MQ is een messaging framework wat met lokale datastores werkt.
Interessant was dat gezegd werd dat dit gebruikt wordt om van tevoren data in andere tabellen op te slaan/bij te werken, zodat er niet na de tijd zware query’s op de huidige data uitgevoerd hoeven te worden.

De laatste presentatie werd door Jeff gegeven.
Deze presentatie ging over het beter laten samenwerken van de developers en de designers.
Voorkom technisch jargon. CYMK, ASP, LIFO, het vertroebelt de communicatie.
Als je deze termen wel nodig hebt, zorg dat je op je netwerk een lexicon hebt waar deze termen opgezocht kunnen worden.
Als zaken abstract zijn, leg ze dan uit met metaphors. Een inlogscherm met knopjes, leg het uit op basis van een uitsmijter die je tegen houdt en na 5 foutieve pogingen het pand uitslaat. Deze presentatie kon mij minder boeien. In plaats hiervan had ik dan graag een demo gezien van hoe het deployment uitgevoerd wordt, of hoe het testproces gaat. Of wat shots uit de code. Of misschien wat meer frontend gerelateerd, dus hoe die je dat met al die styling/onderhoud van de shops?

cb_mobieltjes.jpg – elk mobieltje toont je data anders. Daarom flink wat test-examplaren.

Als afsluiting krijgen we een rondleiding. Onze groep bevat een paar Engelstalige personen, maar die kunnen ook Nederlands praten/verstaan, dus onze “gids” kan gewoon Nederlands spreken.
Verdieping 6, 7 en 8 zijn in hun handen. Alles in huisstijl (blauw + oranje), besprekingskamers met thema’s (apenkooi, gebaseerd op Bokito, Pacman-kamer n.a.v. een prijsvraag). Tevens kamer met allemaal foto’s van poezen in Coolblue-dozen. Als je een doos met je pakket ontvangt, kun je er een foto van maken en opsturen en daar 100 euro mee winnen. Maar een poes in een doos is  (te) vaak ingestuurd, dus daar ga je het niet mee winnen. Ook de kamer van “de baas” Pieter gezien. Met uitzicht op het Centraal Station en op de deur “Pieter. Eindbaas.”.

cb_pietereindbaas.jpg

Geweldig hoe alles “af” is. Een wand met allemaal mobieltjes waarmee getest kan worden. Je hebt de verschillende afdelingen. Hangt er een bordje “Gereedschap”. Onderschrift: “Stop. Hammertime”.  Een deur: “Development”. Onderschrift: “99 problems but a bit ain’t one”. De Bokito-vergaderruimte. Onderschrift: “Gaan met die banaan”. Een deur: “Opslag”. Onderschrift: “CTRL S”. Onze groep doet de volledige tour, dus Matthijs en Jeldert staan al aan een biertje te lurken als onze groep nog een laatste rondje maakt.

cb_apenkooi.jpg

Mooi om zo eens bij een ander “in de keuken” te kunnen kijken. Niet directe uitleg over wat er nu in C# gedaan wordt, maar wel een lijst met tools die gebruikt wordt (altijd goed om daar zelf ook eens naar te kijken). Tevens de term “micro-services” hier opgepikt, waar we zelf (nog) geen ervaring mee hebben, maar wat door CB als zeer positief wordt ervaren.

Mocht je ook developer zijn en denken, ik wil nog wel wat meer informatie, de slides zijn door Coolblue online gezet: http://www.slideshare.net/CBbehindthescenes