Over deze aflevering
Deze aflevering hebben we Bart de Water te gast. Bart is werkzaam voor Shopify. En hij vertelt ons in deze aflevering wat zijn ervaringen bij zijn Canadese werkgever zijn. Verder gaan we het ook hebben over de Corona app en privacy & security.
Delen
// Gasten
// Luister op
Wat je leert#
- •Wat Shopify's kernwaarden zijn en hoe deze werken
- •Hoe je grote Ruby applicaties schaalt en onderhoudt
- •Wat PCI-compliance inhoudt bij creditcardopslag
- •Hoe tech-design reviews werken bij grote teams
- •Wat de privacy afwegingen zijn bij corona-apps
Transcript
Welkom bij CodeKlets aflevering zes. Deze aflevering gaat weer heel leuk worden en ook spannend,
want normaal gesproken doen we het in real life, maar dat gaat dit keer niet. De belangrijkste
reden is natuurlijk dat we een enorme lockdown hebben, maar tegelijkertijd komt het ook een
beetje goed uit, want deze gast is ook niet heel vaak in Nederland. Daar kom ik zo wel
op. Maar goed, vooral door die lockdown kunnen we niet bij elkaar zitten. Het zou een beetje
raar zijn als we nu met elkaar in één hokje gaan zitten en een podcast opnemen, maar dat
zul je bij alle podcasts van de laatste tijd wat horen hebben gekregen, want dan gaan
we niet al te veel bij stilstaan. We moeten gewoon met corona dealen en that's it. We
zijn vandaag met vier hosts, Pauline, Bernard, Johnny en ik. Hoe gaat het met jullie? Dat is
eigenlijk wel een goede vraag. Hoe gaat het in deze coronatijd? Johnny, bij jou? Ja,
ik moet zeggen, het was heel even een beetje wennen in het begin. Zeker thuis werken zorgde
er wel voor dat ik heel veel afleidingen had. Ik ben dat zeker niet gewend. Ik deed dat
af en toe één keertje per week. Maar dus het huis is echt spik en span. Dat is dan wel
weer fijn van alle tijd thuis. Maar ik moet zeggen, de laatste paar weken gaat het wel
steeds beter. Het wendt en verder alles gezond. Dus mag niet klaar. Ja, dat is wel
belangrijk. Dat is sowieso het belangrijkste. Pauline, bij jou? Ja, voor mij is het eigenlijk
alleen maar beter. Het is een soort, ja, ik moet nog wel werken natuurlijk. Het is
nog een soort vervoegde zwangerschapsverlof. En wat ik heel fijn aan vind, is dat ik natuurlijk
eerder voelde ik me een soort van verplicht om allerlei sociale dingen te doen die
vooral met waar dan vooral alcohol bij hoorde. Maar ja, dan forceerde ik mezelf, mezelf maar
een beetje om een uur erheen te gaan. En zo van jezus, ik moet er gewoon minimaal
een uur blijven, weet je wel. Dus dat is ook zo leuk. En nu kan ik gewoon schuldloos,
schuldgevoelloos kan gewoon thuisblijven. Ik vind het heerlijk. Ja, ideaal. Maar qua
zwangerschap, de controles enzo, hoe gaat dat? Nou, dat is eigenlijk voor mij een beetje hetzelfde.
Mijn vriend kan niet meer mee. Maar ja, dus ik moet wel alles, niet de bevalling of zo,
daar kan hij nog wel bij. Maar controles enzo niet, maar dat is niet zo'n groot issue. En voor
de rest, ja, als je iets eerder in de zwangerschap bent, dan doen ze ongeveer
drie kwart of zo van controles nu telefonisch. Maar omdat ik nu in de laatste trimester zit,
moet ik alles nog persoonlijk. Maar het gaat allemaal wel voorspoedig. Ja, precies. Het is
sowieso spannend. En dan dit erbij is natuurlijk wel, ja. Nou, we hebben wel ook een woning
gekocht nu. Dat is heel raar. Ja, wij ook. We hadden echt twee weken voordat een soort
lockdown was. Hadden we getekend voor een nieuw huis. En toen achteraf hadden ze zoiets
van crap. Dat is misschien echt niet de beste timing. Maar goed. Ja, volgende week getekend.
De vorige week getekend. En deze gaat nu de verkoop in. En ja, tot nu toe is er nog
weinig verschil. Maar dat komt allemaal nog wel. Maar hopelijk zijn we dat allemaal net voor.
Het is Amsterdam. Ja, de huizenmarkt in Amsterdam is echt, echt bananas. Ik zag straks een huis staan.
Een hoekhuis. Op zich leuk. Twee miljoen. Twee miljoen. Ja, dat moet wel een Zuid zijn.
Ja, dat was een oud Zuid inderdaad. Ja, we zien oud Zuid is echt, oud Zuid is echt gewoon.
Mensen betalen daar letterlijk alleen om bij oud geld te zetten. De huizen zijn totaal
niet interessant. Locatie is niet interessant. Dat is het. Domme investering.
Nee. Ja, goed. Misschien. Ze zullen het waarschijnlijk terug kunnen verdienen.
Maar ik vond het opvallend. Voor twee miljoen kun je heel mooi wonen ergens anders.
Ja, maar oud Zuid is ook een plek die niet meer gaat omhoog. Dus ik snap het sowieso niet.
Want dat is oud geld. Maar goed, development. Ja, precies. Dan maken we een makelaars podcast.
Ja, met mij gaat het op zich best verder goed. Ik heb eventjes in het ziekenhuis gelegen.
Dat is weer goed gekomen. Maar het blijft spannend. Ik heb een transportatie in Niro ooit ontvangen.
En daar moet je allerlei medicijnen voor slikken. En dan ja, dat maakt deze situatie iets
spannender dan voor anderen. Dus ik moet goed opletten. En dus dat maakt het dan wel wat
ingewikkelder dan bij de rest. Maar de rest gaat het dan wel. Nice. Oké. Maar we hebben ook een
gast gelukkig. En die hebben we eerder proberen uit te nodigen. Nou, die hebben we eerder
uitgenodigd. Maar helaas door zijn omstandigheden is dat niet gelukt. Want hij woont niet in
Nederland. Hij woont in Canada. Dus dat is een stukje uit de buurt. En als hij dan in Nederland
is, is het natuurlijk niet zo makkelijk om dan een geheelsagenda rondom CodeKlets te plannen.
Wat hij wel zou moeten doen natuurlijk. Ik bedoel, dat is natuurlijk de belangrijkste
podcast van Nederland. Dat is wel waar. Maar ja, de gast is Bart Water. En welkom Bart.
Goeiemorgen.
Oh ja, enorm tijdsverschil ja. Voor jou is het nu hoe laat?
Het is nu bijna negen uur sochtends.
Negen uur sochtends ja. Hier is het bijna drie uur. Dus dat scheelt wel ja.
Arme Bart, moet je helemaal vroeg opstaan voor ons?
Nou, ik heb mijn eerste kopje koffie op, dus komt goed.
Nou, jij liever dan ik.
Ben je een ochtendmens of een avondmens?
Ja, ik ben gewoon oud aan het worden en ik zit vast in mijn ritme.
En ben erachter gekomen dat ik niet zo goed ben in uitslapen.
Dus ik word gewoon uit mezelf.
Nou, in plaats van zeven uur word ik half acht wakker en heb ik uitgeslapen.
Cool. Lucky. Lucky. Uitslapen ken ik niet.
Bij mij is het. Je mag blij zijn als je langer dan zeven uur tot na zeven uur
sochtends nog in je bed mag liggen.
Dus dat is een uitdaging.
En dan moet je ook nog blij zijn dat er geen van je koters hier
is. Nog een keer wakker maken.
Dat gebeurt nog wel. Maar goed, daar gaat het nu niet over hebben.
Bart, jij werkt voor Shopify.
Ja, dat klopt.
En die zullen meer mensen kennen.
Dus zeker als je iets met e-commerce hebt gedaan.
Het lijkt het zou gek zijn als je niet weet of wie of wat Shopify is.
Maar dat komen we straks wel even op hoe we daar.
En ik heb geen bio trouwens.
Normaal sproken laten we altijd een bio.
Gaan we lezen we voor dit keer niet.
Dus we gaan je gewoon een aantal vragen stellen en dan gaan we op die
manier even erachter komen wat jij allemaal doet in het dagelijks leven.
Ja, even kijken.
Nou wil mijn laptop gewoon die vertikt het om te scrollen.
Goh echt.
Ik geef er echt zijn kaster de schuld.
Er gebeuren rare dingen mee, geloof ik.
Ja, volgens mij neemt hij alles over.
Toch maar zoemen.
De vorige keer zoen.
Anyway, ja, we laten us beginnen bij hoe je wat ik neem aan dat je
software ontwikkelaar bent.
Dat is natuurlijk de belangrijkste vraag, want anders is het wel een
heel rare rare start.
Nee, dat klopt.
Ik klopt nog steeds wel koden.
En maar hoe ben je zo?
Ja, hoe ben je er in gerold?
Ben je gewoon van jongs af aan?
Ben ik veel vanaf je acht of zo beginnen met software ontwikkeling of
op latere leeftijd?
Ik heb eigenlijk vanaf heel vroeg af aan altijd wel iets van
affiniteit met met computers gehad.
Dat was op de basisschool al zelfs is dat ik er af en toe al
bij gehaald werd als de leraar die dan een beetje handig was met
IT, maar dan weer niet achterkwam hoe dat dan moest.
Nou, dan wist ik dat wel.
Dus ik was op een gegeven moment al een soort van
systeembeheerder op de basisschool, als het ware.
En ook lopen, ja, een beetje lopen klooien, weet je wel.
Ik had op een gegeven moment wel zo'n aardrijkskunde oefen
programma.
Nou, daar was dan, had ik er achter gekomen.
Oh, dat slaat dan ergens de highscores op in een bestandje.
Nou, en dan open je dat bestandje in een klatblok.
Nou, dan komt er allemaal prut uit.
Maar nou, een beetje verder uitzoeken en rondvragen.
Ik had een oom die die IT manager was bij een grote
automatiseerder.
Nou, hoe werkt dat dan?
Nou, op een gegeven moment dan een ander programma waarmee die
die, ja, karakterbrei dan wel goed geïnterpreteerd kon worden.
En toen had ik opeens superkrachten, want ik kon
mezelf een highscore geven van 100.000 punten, terwijl je nog
niet eens op de 100 punten kwam als je normaal heel goed was
in aardrijkskunde.
Dus ik had dan de verantwoordelijkheid om na
na les tijd om dan alle computers netjes af te sluiten.
En nou, toen had ik even mezelf zeg maar de topografie god
gemaakt met 100.000 punten.
En daar maakte je vrienden mee.
Nou, ja, nou, iedereen wilde weten hoe je dat deed, want
je wilde een grote highscore hebben, natuurlijk.
Dus ja, dat iets met computers, dat was vanaf jongs
af aan wel duidelijk.
En toen het was een beetje in de tijd dat Dragon Ball Z en
Pokemon op tv kwamen.
Nou, oké, Dragon Ball Z website gemaakt met Frontpage 2000.
Oh, ja, maar dat is precies wat ik ook heb gedaan toen.
Dat is denk ik precies dezelfde tijd.
Ja, ja, ja, 100.000 Dragon Ball Z websites geweest zijn in die tijd.
Dat kan gewoon niet anders.
Iedereen deed dat.
Het was echt met al die kindjes die op zes waren met
met html en met Dragon Ball Z.
Die gingen gewoon Dragon Ball Z website maken, natuurlijk.
Ja, dus ja, gehoost op Geocities,
FTP en dan had ik op een gegeven moment nog via via een maatje en die zat
dan in het een beetje in het schimmigere wereldje met de FXP en dan.
Nou, ja, toen had ik natuurlijk de nieuwste computerspelletjes voor Nop.
Nou, daar nog allemaal een beetje mee rondgeklooid.
Maar dat was toen nog niet echt super die hard programmeren.
Dat was meer een beetje scripten en op op MIRC.
Nou, ja, eigenlijk is het echt het echt developen.
Developen is eigenlijk met mijn studie echt pas begonnen.
En ik heb ook heel lang aan de Haagsel school informatica gestudeerd en ook heel
lang wel een beetje met een gevoel rondgelopen met van nou ja, weet niet of dit het nou
echt het gaat zijn en eigenlijk na het afstuderen aan het werk gegaan en nou ja,
daar zijn op een gegeven moment een paar dingen echt een soort van gaan klikken.
Ik denk, oh ja, nee, dit, dit wil ik wel.
Ja, ja, na school kwam je erachter van, oké, dit is wel ja, wat ik wil.
Ja, ja, ja, dat vond je, vond je het ook zo'n groot verschil.
Zeg maar, kijk, de dingen die ik op school leerde, dacht oké, die hoor ik niet
gelukkig van als ik dit iedere dag moet doen.
En toen ik ging werken, dacht ik, oké, nou, dit is op zich relaxed.
Er is best wel een, althans het was HBO, zeg maar.
Dus in universiteit zal het misschien ook weer anders kunnen zijn, dat weet ik niet.
Maar dat vond ik best wel een verschil.
Maar wat was dat bij jullie dan?
Welke dingen waren dat?
Ja, je had het discreete wiskundhoud, dat soort, weet je, theoretische vakken.
Dat was vooral in het begin, je denkt van, oké, ja, moet dit nou?
Maar ja, dat is allemaal een soort van, in het curriculum, zeg maar, wat wij hadden,
was een soort, omdat het een, ja, er werd toen vooral de gedachte was dat
dat soort ontwikkeling heel erg dicht tegen wiskundhoud zat.
Ja, bij mij was het een heel ander soort curriculum, maar dus meer, had je dan,
hadden jullie dan meer het gevoel dat je niet echt iets aan het maken was,
maar gewoon echt hogere wiskunde, alleen maar een beetje theoretisch?
Ja, dat was vooral in het begin.
Kijk, later krijg je natuurlijk, ja, opdrachten en dus dan was het wel wat anders.
Dan denk ik, ja, dat was, dat kan wel in het begin iemand afschrikken,
dus zo ervaarde ik het.
Maar goed, dat zou zeker tegen aankijken.
Dat was bij ons ook zo.
Toen ik ging studeren, was de studie, heten toen technische wiskunde en informatica,
dus het was 50-50.
Nou ja, ja.
En Bart?
Ja, HBO Informatica is dan wel veel meer op echt, ja, software development,
software engineering in de praktijk toegespitst.
Eigenlijk achteraf vind ik het bijna jammer dat de hoeveelheid wiskunde in de opleiding
eigenlijk aan de vrij lichte kant was.
Ik denk dat het meest theoretische waar ik mee in aanraking ben gekomen,
dat was pathfinding in een van de eerste blokken,
omdat je dan een spelletje ging maken met java en later in de opleiding
databases en een theorie over consistency and durability en zo.
Databases waren echt, daten modelleren was echt mijn favoriete vak.
Het was de enige, ja, dat was zo leuk, normaliseren en zo van databases.
Ja, dat was misschien wel leuk, maar wij kregen toen, voor mij was,
het was, ja, het ligt ook heel vaak aan wat Valera het uitlegt hoor,
dat moet ik wel erbij zeggen, alleen, goed, hoe heet die gast nou,
CJ Date was een soort van database god van heel post geleden.
Maar dat was echt in het begin van SQL, er werd uitgelegd waarom SQL en zo.
En ik zat echt van oké, big freaking deal, maar dit land bij mij nog niet.
En pas later, zeg maar, had ik zoiets van, oh ja, dit is wel logisch.
Ja, dat normaliseren slaat wel eens op.
Dus het maakt ook echt uit hoe het gebracht wordt met je notebook.
SQL zelf vond ik ook niet zo interessant.
Ik vond vooral het te modelleren van de database zelf, vond ik veel leuker.
Maar Bart, wat jij zegt van dat wiskundige vond je eigenlijk te licht bij jullie,
maar wat zijn dan, dus een beetje andersom, maar wat waren dan de dingen die bij jou met werken
opeens wel klikten?
Nou, waar ik ook een beetje mee worstelde was in die tijd.
Nou, je denkt dat je PHP, we kregen vooral een Java les.
Dat was Java 5 nog, ook al was Java 6 al een tijd uit, want het onderwijs loopt
daar dan toch een beetje achteraan voordat het lesmateriaal en de boeken en dat soort
dingen up to date zijn. En hebben we ergens ook nog een verloren kwartaal even dan
architectuur.net gehad en wat mij toen wel aansprak, omdat dan dat blok tot net werd dan
door een docent vanuit het bedrijfsleven gegeven.
Dus dat was dan wel meteen met de nieuwste versie en Java 5 in die tijd, waar ik een
beetje mee worstelde, was toen een enorme hoeveelheid ceremonie voor dat ik überhaupt
iets werkend kreeg. Was heel veel dingen van, nou import, weet je, 16 regels aan
aan imports, allemaal dit, allemaal dat. En we moesten elke keer weer een beetje opnieuw
dat wiel uitvinden om met de database aan te praten. En dan kan op een gegeven
moment, net zoals iedereen anders, een soort van foldertje met utility, PAP-faaltjes
voor mijn persoonlijke projecten die steeds maar weer hergebruikt en een beetje
uitbreiden. En toen ik eenmaal aan de slag ging bij mijn eerste werkgever,
daar begonnen we toen met Ruby on Rails. En dat was opeens een complete kant-en-klaar pakket
waar gewoon al dingen om op een bepaalde conventie gingen en je dus niet zozeer met
die ceremonie bezig was, maar meteen aan de slag kon met echt dingen bouwen,
waarvoor je eigenlijk überhaupt begonnen bent. En dat was een van die dingen dat ik dik
klikte van, hè, waarom hebben ze dat nou nooit voor Java gemaakt, of aan me uitgelegd,
of voor PHP bleek er toen ook wel Rails clones te zijn. Maar dat maakte opeens de hele
boel, dat klikte in mijn hoofd. Ik denk van, dit had het eigenlijk al moeten zijn en dit voelt
instinctief goed. Ik kon het alleen nog niet uitleggen omdat ik het nog niet eerder had
gezien. Maar dit was wel waar ik naar op zoek was. En toen, ja, we gingen ook echt producten
bouwen met echte gebruikers, dus dan zien het ook echt gebruikt worden. Je ziet dingen
verkeerd gaan op een manier die je nog niet had voorspeld, want gebruikers doen toch altijd
dingen weer net even anders zodra je het aan zich heeft. En opeens waren dat allemaal van
die dingen dat ik denk, ja, dat krijg je niet echt in die HBO of universiteiten projectwerk
bubbel. Weet je, alle problemen die je op je pad krijgt, dat zijn dan van die
gemaakt problemen die je docent dan naar je toe gooit terwijl die in de rol van de
kruikerkruid. Dan krijg je van die absurde eisen dat je echt al denkt van nou ja, donderop
weet je wel, het staat helemaal nergens op. Ik had het op een gegeven moment ook op de HBO springen als
een hondje. Je merkt op een gegeven moment heel erg dat een docent zoiets heeft van oké,
ik moet deze mensen een probleem voorleggen en dat probleem wat er dan verzonnen wordt,
dat ja, dan zit je echt zo van ja, maar dat gaat nooit gebeuren in de echte wereld.
Waarom moet ik dit nu oppakken in hemelsnaam? Een beetje dat soort dingen. En dat was voor
mij inderdaad na de studie, toen ik echt aan het werk ging, de grootste switch. Dat ik echt
zoiets had van oh, hier zijn allemaal mensen die ook gelijk gestemd zijn, die willen ook een
mooi product maken en geen medestudenten waarmee je de hele tijd loopt te bellen om half tien
ochtends van hey gast, kom je nog vandaag? Weet je wel? Een beetje, het is gewoon een hele
andere vibe en dat was wel echt heel gaaf. Ja, en dan is het elf uur ochtends dan bellen
hem, waar die is voor de afspraken naar jouw man, Bernard Walker, gister uitgegaan, zit nu te
blowen. Ik kan niet zeggen dat ik die jongen ook nooit geweest ben, uiteraard, maar goed,
ja. Nee, ik was dus er eentje die heel slecht was met groepsprojecten. Ik was die persoon,
ik was niet de persoon die zei van ik ben nu aan het blowen hoor, maar ik was wel,
als ik het over had kunnen doen, maar die zelfverzonnen problemen, wij hadden wel echt,
echt soort van tussen aanhalingstekens, klanten dan voor voor projecten. Dat was dan,
dat werd dan ook helemaal zo gepresenteerd van ja, dit is een echte klant en dit gaat ook
echt bla bla bla, dit gaat ook echt gemaakt worden en echt gebruikt worden. Maar alsnog was
het altijd zo half-assed, want niemand in the right mind, als ze echt iets nodig hebben,
gaat bij een hoge school aankloppen en zegt van hey, kunnen jullie studentjes iets voorstellen
en iets voor mij bouwen? Weet je al, dan weet je al gewoon dat het echt een soort van bijdik
wat toch nooit serieus genomen wordt. Dus het was altijd, ja het werd ook altijd helemaal
niet logisch en gewoon een half afgemaakt en ja, ik was ook niet zo van het schoolwerk,
pas met echtwerken, serieus, hoef ik het serieus te nemen ook. En het proces eromheen ook,
want Agile was toen nog een soort van vies woord, weet je, we kregen vooral, het was Rup en
kleine Prins 2, allemaal boekjes, processen en eindeloze documenten opleveren. Echt vreselijk.
En een diagramma tekenen. Ja. Maar ook de planningsfase. Ja, vreselijk was dat. De
planningsfase, de ontwerpfase, de implementatie. Het is al heel erg waterval, maar dat, ja,
liep ze zo mee achter. Ja, dat is echt, volgens mij is dat manier van les geven en
dat is ook, Veliene had het er volgens mij ook over, met Neus op tafel, over hoe leren
mensen programmeren en dat het eigenlijk best wel moeilijk is, want je krijgt natuurlijk,
er gaat iets mis en dan krijg je allerlei rare foutmeldingen en sommige mensen haken
dan gewoon meteen af, terwijl ze misschien best wel geschikt zijn om te programmeren.
Dus dat leren van programmeren en het moet, net als dit wat je op de hoogschool en universiteit
krijgt in het begin, dat zijn echt dingen waar je denkt van, oké, dit schrikt me gewoon af,
ik heb hier gewoon helemaal geen zin in, dit slaat echt nergens op. Dus volgens mij,
het opleiden en voorbereiden op het werk wat wij tenminste denk ik de meeste van ons doen,
ja dat matcht gewoon niet. Ik vind dat wel een heel goed punt van die foutmelding ook hoor,
want wat ik ook heel vaak merk als ik bijvoorbeeld met een junior aan het perren ben ofzo,
weet je wel, als we dan iets fout gaan, dan komen ze meteen bij je aan van wat gaat
hier fout en eigenlijk hoef je bijna altijd alleen maar te zeggen van lees wat de CLI output
is of lees wat. En dan hebben ze het nog niet gelezen omdat het gewoon te overwhelming is ofzo,
dat het allemaal tekst is. Terwijl als ze daadwerkelijk gewoon lezen wat de output is,
dan weten ze meestal gewoon wat aan de hand is. Ja dat ook, maar het is voor een leek,
is het best wel, ja, het schrikt gewoon af. Oké, nou is alles kapot. Het moet
zo gewoon verteld worden. Ja precies, nou goed ook, maar goed als de Verlinden zeg maar,
die daar ook van aankomt van ja er zijn wel programmeertalen waar ze aan werken,
waar die meldingen wat vriendelijker zijn zeg maar, zodat er in theorie dus meer
mensen aan kunnen haken die programmeren. Ja en het is natuurlijk zo dat die foutmeldingen,
die hebben het eigenlijk, die foutmeldingen hebben het nooit mis. Het is nooit zo dat die
foutmeldingen, je ziet een foutmelding op de scherm verschijning, ja dat kan niet,
maar het klopt altijd. Je moet het beter maar goed lezen. Maar ja, je kan het natuurlijk wel
altijd vriendelijker maken, want we hebben natuurlijk ook allemaal wel een keertje gehad
dat er staat error en dan een errorcode en verder niks. En ook nergens waar je dan die
errorcode kan opzoeken of wat dan ook. Ja je moet blij zijn dat je nu Google hebt,
van vroeger had je gewoon, dat was het zeg maar, dat je in ieder geval een vage hexcode en
dat was de error en succes. Wat ik ook heel chill vind is dat er dan staat, oops,
something went wrong. Ja bedankt voor deze leuke speelse tekst waar ik echt geen flik aan
heb. Ja dat weet ik wel, dat zou ik schrijven. Ja dat is ook wel een goede. Je hebt ook zo'n
meme toch, dat mensen werden op een gegeven moment een beetje gek van al die browsers en zo,
die allemaal zo, we did a oopsie whoopsie en dat soort dingen. Wij software ontwikkelaars zijn
super serieus, altijd. Eigenlijk moet je dan de error message gamification op toepassen ofzo,
als je een kindvriendelijke programmeertal aan het ontwikkelen bent. Dus elke keer als je
een error hebt dan krijg je eerst een spelletje en dan pas de stacktrade. Ja dan ga je wel error's.
Ik weet niet of je dan minder bugs gaat creëren of meer of meer fouten, dat wordt wel.
Of meer of minder frustratie. Ja maar goed op school, wat voor taal heb je,
wat voor ontwikkeltaal heb je geraakt en welke vond je leuker dan de andere?
Nou het was voornamelijk Java.Net. Dat was denk ik Java 5.Net 4 uit mijn hoofd.
En waar ik wel gecharmeerd van was die two-way data binding wat je daarin had.
En dat was toen in Java moest je dan al je hele UI en de state management
moest je hem allemaal met de hand aan elkaar knopen. Dat was wederom heel veel van die
ceremonie waar ik denk, waarom ben ik dit allemaal aan het doen? Dit voelt gewoon alsof
dit makkelijker moet kunnen. En een paar kleine website's in PHP en dat was dan gewoon snel
en makkelijk en eigenlijk om terug te komen op die vorige discussie ook. Zeker in die
tijd viel er heel veel PHP aan te merken qua taal en weet je dat dingen niet altijd
logisch of in elkaar zaten. Was het toen al OOP? Dat was PHP 4, dus de eerste verschijnselen van
4 of 5. 5 was volgens mij voor het eerst. Maar wat PHP wel heel goed voor elkaar heeft was die
instantaan feedback cycle. Geen compilen, geen niks. Je verandert je safe, je F5 en je ziet het.
Zelfs in productie als het moest, want weet je wel, Ferzie Beer was in die tijd, weet je,
Git was er nog niet of net aan. We kregen toen nog Subversion. Nou, dat was ook niet echt een
pretje, dus dat deed je toen niet echt. Dus weet je, je maakte gewoon een, je FTP'd je PHP
servertje in, je copieerde de fout die je aan ging passen voor het geval dat het echt
fout ging en dan ging je er gewoon een beetje in rommelen en je F5'd en je zag meteen het
en dat was wel gewoon een beetje waar ik toch wel naar zocht, gewoon van geen gedoe,
het moet gewoon werken, ik moet gewoon snel zien wat het doet, want dan ben ik gewoon bezig met
wat ik leuk vind, iets maken voor iets of iemand en niet een hele berg code of andere onzin,
zoals ik het toen vooral ervaarde, om iemand anders vooral te plezen, maar wat dus niet
leidde direct tot iets maken. Maar ben je dan, want dit gevoel snap ik,
maar het begint een beetje de kant op te gaan van ik hou ook niet van testschrijven en ik
hou ook niet van CI en dat soort dingen. Nou in die zin, in die tijd was het wel van,
we kregen wel wat over unit testen, maar u zag in die tijd, de waarde was ik een
veel van de dingen die ik schreef waren vrij klein, vrij simpel en moet ook denk ik,
als ik zo even terugkijk en John ben benieuwd of jij dat kan beamen,
ik vond dat de toegevoegde van waarde van testen niet echt goed werd uitgelegd op die
opleiding. Ook dat was pas een dingetje dat eigenlijk op mijn eerste stage een beetje
begon te klikken waar ik gewoon, ja weet je, er was een team van nou wat was het,
team developers ofzo, pasten niet meer met elkaar in een kamer. Mensen werkte echt op
verschillende onderdelen die wel van elkaar afhankelijk waren. De business cases die gesupport
moesten worden waren ook complexer en ja weet je, dan opeens testen en ook de
waarop die testen werden geschreven. Meer met een voorbeeld cucumber specs, echt met een focus op
de use case. Denk oh wacht ja dat is wel logisch en ja met CI en ja dat was toen nog een beetje
nieuwig in plaats van dat er werd niet een dagelijkse, een nachtelijkse beeld gedraaid
maar er werd continu op pull requests werden er beelds gedraaid en als daar master werd
gemurtsd werd er weer een beeld gedraaid, continu. Ja wacht, ook van die dingen die toen
pas een beetje begonnen te klikken vanuit de theorie toen ik het in de praktijk zag.
Ja, ja we kregen een we kregen een boek J-unit testing geloof ik op daagsel gescholden bij en ja
dat ging echt alleen over over de unit tests en er werd, ja ik kan beamen inderdaad wat je
zei, er werd heel weinig uitgelegd over het soort grotere plaatje. Waarom is testen nuttig?
Waarom moet je testen? Op welke plek in de volledige development cycle is testen handig en
wanneer komt het ook echt van pas en ja het werd alleen uitgelegd als ja hier heb je code en
je moet zeker weten dat het werkt. Punt. En veel plezier ermee, succes, ga het maar maken en ja
daar word je er ook niet heel erg warm van inderdaad. Dat voelt alleen al heel snel als
overhead. En de unit testjes waren dan ook wel een beetje van de kwaliteit zoals hoe
sommige beginnende developers dan hun code commentariseren op de manier met van ja
nou code is 1 en 1 plus 2 en hier berekenen we wat de waarde is van tweebe weet je al dat het
was en het was niet op van nou ja weet je je wil eigenlijk het gedrag testen er gaan dingen in
er komen dingen uit maar de interne implementatie daar bemoei je dan niet mee maar je gaat erom
dat het gedrag van dit stuk code aan de buitenkant goed is. Nou allemaal van dat soort
dingen die gaande weg ja weet je er werden heel veel dingen zegt van ja dit moet je doen
maar dan was ik weer zo vervelend met ja maar om dan waarom moet dat zo dit voelt een beetje
raar dit die antwoorden bleven dan een beetje uit tot tot op de werkvloer later ja daar bleed ik
dan ook wel en daar kwamen die twijfels dus vandaan met van nou ben ik nou zo'n gekke
hankie dat ik steeds zo'n gevoel heb van nou dit dit dit vind ik vreemd of dit voelt niet
juist je hebt in het onderwijs denk ik ook best wel weinig mensen die dat goed kunnen
We hebben een aantal mensen die ons hebben gegeven om ons te uitleggen. Ze hebben stof. Ze weten dat ze die moeten uitleggen.
Net zoals dat boek waar je het over hebt. We leggen uit wat unit testing is en hoe het moet.
Maar echt die opinionated dingen waar je het over hebt. Waarom is dit zo? Wat zijn de consequenties als je het niet doet?
Dat zijn dingen die je echt alleen maar op conferenties en zo tegenkomt van mensen die daadwerkelijk met het werken bezig zijn.
En dan zijn er nog heel veel verdeelde meningen en weet ik het allemaal. Die mensen krijg je gewoon niet in het onderwijs.
Dus dat ga je nooit goed krijgen, denk ik.
Bart, mag ik dan vragen hoe dat was toen je bij Shopify terechtkwam?
Kwam je toen in een hele nieuwe omgeving waar dat ook werd gebruikt en kende je dat?
Ja, nou even kijken. Na mijn opleiding ben ik bij Digidentity in Den Haag begonnen.
En daar werkte we dan aan een single sign-on service voor de Britse overheid.
En dat is waar ze waren ook. Ze zijn ook een certificaatautoriteit.
Dat is natuurlijk security, staat daar heel hoog in het vaandel.
Dingen moeten gewoon getest worden, punt.
Weet je al, regelmatige security pen testen, maar ook unit testen.
Weet je ook allemaal code-kwaliteits-tools, code-coverage-tools.
Dat stond daar heel hoog in het vaandel.
Dus daar heb ik een hoop van dat soort dingen geleerd, maar dat ook inderdaad in de praktijk het klikte.
Wat vooral voor mij het verschil was...
Even kijken, daarna heb ik ongeveer anderhalf jaar lang freelance gewerkt.
Maar wat voor mij echt nieuw was toen ik naar Shopify ging, was de gigantische schaal.
Ik ging van apps met een paar honderden tot duizenden gebruikers...
naar honderdduizenden merchants die dan elk nog eens een keer misschien wel eend tot honderdduizenden klanten hebben.
En ja, software at scale heb ik daar wel echt geleerd, zou ik zeggen.
Heb je daar dan ook veel meer DevOps die dingen geleerd?
Want dan moet je eigenlijk ook breder gaan denken.
Eigenlijk minder juist.
Want als je op een gegeven moment een bedrijf hebt dat zo groot is, heb je meer specialisatie.
Dus we hebben een team dat dus...
We draaien tegenwoordig op Google Cloud, maar daarvoor op Bare Metal.
En er is gewoon een team dat ervoor zorgt dat de nitty-gritty van deployments...
en meer of minder servers, dat is gewoon al weggeabstrayerd.
We hebben eigenlijk een soort van interne cloud-infrastructuur.
En dan kan ik gewoon zeggen, over deze applicatie, die draait nu op vijf replica's...
maak er maar even tien van, want ik verwacht de topdrukte.
Oh, maar daar heb je dus wel controle over.
Want wat ik me dan afvraag, in zo'n grote organisatie...
en die stokkelen daar nog weleens mee met hoe het werk van de teams is verdeeld...
en die bouwen het context en zo.
Dat je dan als team bijvoorbeeld moet kunnen beslissen van...
hey, ik wil hier een microservice van maken.
Ik wil daar de infrastructuur voor hebben.
En hoe organiseren jullie dan dat dat kan gebeuren?
Moet je dan eerst naar dat andere team toe om dat aan te vragen...
en dan weer wachten tot zij tijd hebben en dat soort dingen?
Het is Shopify, wat dat betreft, best wel georganiseerde chaos.
En daar moet je wel een beetje mee om kunnen gaan.
We hebben bijvoorbeeld een aantal teams, Developer Acceleration...
die dus de developer tooling bouwt, zoals een shared CI-infrastructure...
en een cloud-infrastructure-team...
die eigenlijk dus een soort van internet-platform-as-a-service-achtige dingen aan kan bieden.
En stel je voor dat wij besluiten...
geloof dat ik nog niet gezegd heb dat ik op payments werk...
maar ja, ik verzorg dus betaaldingen bij Shopify.
Stel dat wij zeggen, we hebben een nieuwe applicatie nodig...
omdat we iets nieuws gaan bouwen...
en dat gaan we niet in de grote monolithische Shopify-app bouwen...
maar dat gaat in een losse app, want om reden A, B en C.
Nou, dat documenteren we dan in een zogenaamde tech-design.
Dat is één GitHub-repo en daar worden al jarenlang...
alle tech-designs daarin als issue geopend.
En dan is het van, wat ga je bouwen?
Waarom ga je dit bouwen?
Welke designkeuzes heb je gemaakt?
Wat waren daarin de afwegingen?
En wie zijn de stakeholders die jij moet betrekken bij je tech-design-review?
Nou ja, goed, payments gerelateerd.
Ik wil waarschijnlijk wel iemand van security erbij hebben...
voor een extra paar ogen.
Ik wil waarschijnlijk, nou, als ik dingen moet scalen...
Nou, we hebben al bestaande, natuurlijk die bestaande interne paas oplossing.
Maar als ik echt hele rare dingen wil, buiten wat ze standaard aanbieden...
dan kan ik er ook iemand van hun bij trekken...
om te kijken van, nou, hoe feasible is dat?
En dan, ja, die tech...
Iedereen kan er ook gewoon een commentaar geven op je tech-design-review.
Mochten mensen iets voorbij zien komen dat ze denken, dat raakt mij ook.
Nou, dan kunnen ze gewoon een mening daarbij geven.
En, nou, daarna gaan we het gewoon bouwen.
Mits je, zeg maar, binnen in je afdeling de leads...
en dat soort dingen daar goedkeuring voor hebben gegeven...
dat je het project doorgaan kan vinden.
Maar verder is daar niet echt een onwijze strakke procedure voor...
behalve een aantal vuistregels...
die ook de interne bedrijfscultuur ondersteunen.
We hebben interne default to open internally.
Dus ja, alle tech-designs zijn daarom over het hele bedrijf heen gewoon openbaar.
Dat is wel cool. Ik was gemute.
En kan je nog een paar vuistregels noemen?
Dat vind ik wel leuk om te horen.
Ja, een andere waar ze ook heel erg mee bezig zijn is Build for the Long Term.
De CEO zegt vaak van, we willen dat dit een bedrijf is dat 100 jaar oud wordt.
Dus...
Toby.
Ja, Toby inderdaad.
Dus weet je, maak beslissingen die in de lange termijn goed zijn voor het bedrijf...
en niet alleen maar voor de korte termijn winst.
Get shit done.
Dat is heel kort samengevat met van...
ja, weet je, niet te veel ouwehoeren vergaderen of dat soort dingen.
Uiteindelijk moeten er gewoon dingen opgeleverd worden.
En dat is natuurlijk dan wel een beetje een afweging tussen die twee.
Want get shit done, tuurlijk.
Maar dan niet op een manier dat je er over een jaar al spijt van krijgt...
dat je het net zo hebt gedaan.
Ja, dat is een balans die er heel veel niet helemaal goed krijgt, natuurlijk.
En dan kan de ene kant naar de andere vuistreigelregel wijzen...
en dan kun je nergens.
Ja, maar oké.
Maar het is wel goed dat de CEO in ieder geval zegt van...
doe het voor de lange termijn.
Dan krijg je daar een soort van rust, zeg maar.
Ja, en er zijn ook zeker gewoon...
Kijk, de main Shopify applicatie...
dus als je een Shopify winkel bezoekt...
de Storefront, maar ook de Merchant Admin...
en wat interne beheersdingen voor medewerkers...
dat is één grote Ruby on Wheels applicatie die al...
Nou, het is begonnen in 2006, dus...
al 14 jaar wordt doorontwikkeld.
Er zit legacy code in, er zitten dingen die niet zo mooi zijn...
dingen zijn die haastig zijn gebouwd...
omdat er dan soms wel eens externe deadlines zijn...
waarin get shit done dan toch de prioriteit krijgt...
over build for the long term.
En soms zie je opeens een stuk code dat je denkt...
en dan kijk je git blame.
Oké, ja, dit is in 2010 geschreven.
Oké, ja, als het al sinds 2010 draait...
ja, oké, misschien, ja, is dat dan inderdaad...
aan de andere kant, als het op tien jaar zo draait...


