<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>dotkarl</title><link>https://www.karlvanheijster.com/</link><description>Recent content on dotkarl</description><generator>Hugo</generator><language>nl-NL</language><atom:link href="https://www.karlvanheijster.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Overzicht</title><link>https://www.karlvanheijster.com/talks/overview/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.karlvanheijster.com/talks/overview/</guid><description>Een beknopt overzicht van alle praatjes die ik de afgelopen tijd heb gehouden.</description></item><item><title>De edele kunst van het pull request, Redux</title><link>https://www.karlvanheijster.com/blog/26/07/de-edele-kunst-van-het-pull-request-redux/</link><pubDate>Fri, 17 Jul 2026 07:48:34 +0200</pubDate><guid>https://www.karlvanheijster.com/blog/26/07/de-edele-kunst-van-het-pull-request-redux/</guid><description>Het praatje dat ik in 2024 op T-DOSE gaf, &lt;em>The art of the pull request&lt;/em>, is onlangs op YouTube verschenen. Gezien mijn houding naar &lt;em>pull requests&lt;/em> de afgelopen twee jaar is veranderd, leek het me een mooie gelegenheid om die ideeën nog eens te overdenken.</description></item><item><title>AI vs. ontwikkelaars</title><link>https://www.karlvanheijster.com/blog/26/07/ai-vs-ontwikkelaars/</link><pubDate>Fri, 10 Jul 2026 09:28:24 +0200</pubDate><guid>https://www.karlvanheijster.com/blog/26/07/ai-vs-ontwikkelaars/</guid><description>Kijk uit, merkte mijn manager op: een groot deel van haar sollicitanten was aan het solliciteren geslagen precies &lt;em>omdat&lt;/em> hun huidige werkgever vol op AI had ingezet. De ontwikkelaars voelden zich niet meer thuis in die nieuwe wereld. Ze hadden er een hekel aan enkel nog code te reviewen, ze wilden weer terug code met de hand te schrijven. Hebben die ontwikkelaars het mis? Blijven zij achter?</description></item><item><title>De geschiedenis van programme(ercultu)ren</title><link>https://www.karlvanheijster.com/blog/26/07/de-geschiedenis-van-programmeerculturen/</link><pubDate>Fri, 03 Jul 2026 09:28:09 +0200</pubDate><guid>https://www.karlvanheijster.com/blog/26/07/de-geschiedenis-van-programmeerculturen/</guid><description>Vraag tien programmeurs naar de beste manier om een probleem op te lossen, en je krijgt tien verschillende antwoorden. Conclusie: &amp;lsquo;&lt;em>It depends&lt;/em>.&amp;rsquo; Maar stel tien programmeurs de vraag wat programmeren precies inhoudt, en je krijgt waarschijnlijk óók tien verschillende antwoorden. Bij de geboorte van softwareontwikkeling, in de jaren &amp;lsquo;50, kon het gebrek aan consensus nog worden geweten aan de onvolwassenheid van het vakgebied. Maar anno 2026 liggen de visies op de aard van programmeren nog steeds even ver uit elkaar. &lt;em>It depends&lt;/em>, blijkbaar &amp;ndash; maar waarvan dan?</description></item><item><title>Twee soorten verantwoordelijkheid</title><link>https://www.karlvanheijster.com/blog/26/06/twee-soorten-verantwoordelijkheid/</link><pubDate>Fri, 26 Jun 2026 07:05:31 +0200</pubDate><guid>https://www.karlvanheijster.com/blog/26/06/twee-soorten-verantwoordelijkheid/</guid><description>Programmeren en testen horen bij elkaar, het zijn twee kanten van dezelfde munt &amp;ndash; en die munt is: productierijpe software opleveren. Daaruit volgt dat de activiteiten van het programmeren en testen verenigd moeten worden in één persoon &amp;ndash; en die persoon is de ontwikkelaar. Dit wijkt af van de traditionele rolverdeling, waarin programmeurs programmeren en testers testen. Wat is dan nog de verantwoordelijkheid van de tester?</description></item><item><title>Genericiteit, specificiteit, complexiteit</title><link>https://www.karlvanheijster.com/blog/26/06/genericiteit-specificiteit-complexiteit/</link><pubDate>Fri, 19 Jun 2026 06:15:32 +0200</pubDate><guid>https://www.karlvanheijster.com/blog/26/06/genericiteit-specificiteit-complexiteit/</guid><description>Je zegt, alsof instinctief: een generieke component is beter dan een specifieke component, want een generieke component is herbruikbaar. Maar dat veronderstelt dat je weet welk deel van de verantwoordelijkheden generiek is en welke specifiek, en dat je deze netjes van elkaar kunt scheiden. Een specifieke component is eenvoudiger dan een generieke component, want een specifieke component hoeft alleen maar in specifieke omstandigheden te werken. Over het algemeen geldt: eenvoudig is beter dan complex. Dus is een specifieke component dan niet beter dan een generieke?</description></item><item><title>De woestijn en het bos</title><link>https://www.karlvanheijster.com/blog/26/06/de-woestijn-en-het-bos/</link><pubDate>Fri, 12 Jun 2026 07:45:11 +0200</pubDate><guid>https://www.karlvanheijster.com/blog/26/06/de-woestijn-en-het-bos/</guid><description>Bevinden we ons in een woestijn of in een bos? &amp;ndash; Het antwoord op die vraag zal ons handelen bepalen. Woestijnnomaden begrijpen bosbewoners niet, en andersom. Woestijnnomaden wuiven afwerend: &amp;ldquo;Dat kan nooit!&amp;rdquo; Bosbewoners krabben aan hun hoofd: &amp;ldquo;Waarom zou je het ooit &lt;em>zo&lt;/em> aanpakken?&amp;rdquo; Maar het kan wél, en het is logisch om het zó te doen, als de omgeving er naar is. Dat moeten we begrijpen van elkaar.</description></item><item><title>Twee doelen van een ontwikkelteam</title><link>https://www.karlvanheijster.com/blog/26/06/twee-doelen-van-een-ontwikkelteam/</link><pubDate>Fri, 05 Jun 2026 07:52:16 +0200</pubDate><guid>https://www.karlvanheijster.com/blog/26/06/twee-doelen-van-een-ontwikkelteam/</guid><description>Een softwareontwikkelteam heeft, &lt;em>in abstracto&lt;/em>, twee doelen: vernieuwing en veiligheid. Een team bestaat daarom, zou je kunnen stellen, uit twee delen: ontwikkelaars en testers. Deze conceptualisatie van een ontwikkelteam is het gevolg van een vorm van reductionisme. Maar een team valt niet te reduceren tot haar samenstellende delen. Ze bestaat uit haar samenstellende delen &lt;em>plus hun vormen van interactie&lt;/em>.</description></item><item><title>Conservatieve verandering</title><link>https://www.karlvanheijster.com/blog/26/05/conservatieve-verandering/</link><pubDate>Fri, 29 May 2026 07:30:24 +0200</pubDate><guid>https://www.karlvanheijster.com/blog/26/05/conservatieve-verandering/</guid><description>Hoe weet je of je het goed doet? Dat het niet beter kan? Ik ben van mening dat het onze professionele plicht is om van tijd tot tijd onze manieren van werken om te gooien. Omdat ik denk dat er betere manieren zijn, maar ook en vooral omdat we niet weten of de huidige manier van werken de beste is, als we deze niet regelmatig in vraag stellen. &amp;ndash; Maar dan: &lt;em>de anderen&lt;/em>.</description></item><item><title>Een tester of praten</title><link>https://www.karlvanheijster.com/blog/26/05/een-tester-of-praten/</link><pubDate>Fri, 22 May 2026 07:37:34 +0200</pubDate><guid>https://www.karlvanheijster.com/blog/26/05/een-tester-of-praten/</guid><description>Wij hebben geen tester in ons team. Niet omdat ik niet van testers hou (ik hou van testers), maar omdat het verkeerd gebruik van een tester dysfunctionele patronen in een team verbergt en in stand houdt.</description></item><item><title>Postmoderne code</title><link>https://www.karlvanheijster.com/blog/26/05/postmoderne-code/</link><pubDate>Fri, 15 May 2026 10:50:50 +0200</pubDate><guid>https://www.karlvanheijster.com/blog/26/05/postmoderne-code/</guid><description>Een collega stuurde me een code-snippet door met de vraag: Karl, hoe zit het met de &lt;em>nullability&lt;/em> van deze property? Ik moest er enorm om lachen, want het antwoord op die vraag verschoof al naar gelang mijn ogen over die ene regel gleden. Alsof ik naar een postmodern kunstwerk keek, bedoeld om op interessante manieren te verwarren.</description></item><item><title>Worsteling</title><link>https://www.karlvanheijster.com/blog/26/05/worsteling/</link><pubDate>Fri, 08 May 2026 07:51:41 +0200</pubDate><guid>https://www.karlvanheijster.com/blog/26/05/worsteling/</guid><description>We betoogden tegen verschillende omgevingen voor ontwikkel, test, acceptatie en productie: dat is duur en bovendien nodeloos complex. Er is maar één omgeving die ertoe doet: productie. Maar om de wijzigingen naar productie klein en veilig te houden, kunnen we functionaliteit verbergen. &amp;ndash; &amp;ldquo;Dat is valsspelen!&amp;rdquo; riep iemand in het publiek, de wanhoop nabij. &amp;ldquo;Je hebt nu alsnog een testomgeving, alleen dan op productie!&amp;rdquo;</description></item><item><title>De vergeten tester</title><link>https://www.karlvanheijster.com/talks/de-vergeten-tester/</link><pubDate>Wed, 06 May 2026 07:50:09 +0200</pubDate><guid>https://www.karlvanheijster.com/talks/de-vergeten-tester/</guid><description>Testen is cruciaal voor softwarekwaliteit. En toch, toen ik de kans kreeg een nieuw agile softwareteam samen te stellen, &amp;ldquo;vergat&amp;rdquo; ik de tester. Hoe verklaren we deze paradox? Hoe kan een tester tegelijkertijd zó belangrijk en toch ongewenst zijn?</description></item><item><title>Een tip voor testers</title><link>https://www.karlvanheijster.com/blog/26/05/een-tip-voor-testers/</link><pubDate>Fri, 01 May 2026 07:40:07 +0200</pubDate><guid>https://www.karlvanheijster.com/blog/26/05/een-tip-voor-testers/</guid><description>Elke softwareontwikkelaar weet dat hij zijn werk goed moet testen. Waarom glippen de meest voor de hand liggende bugs er dan toch doorheen? Omdat testen bij testers is belegd. Dat klinkt voor programmeurs verleidelijk efficiënt: waarom tijd besteden aan het schrijven van tests als iemand het werk toch nog naloopt? Deze taakverdeling nodigt uit tot lagere codekwaliteit en legt de pijn daarvan bij testers.</description></item><item><title>Behoefte aan een testlane</title><link>https://www.karlvanheijster.com/blog/26/04/een-testlane-is-een-pleister/</link><pubDate>Fri, 24 Apr 2026 07:36:29 +0200</pubDate><guid>https://www.karlvanheijster.com/blog/26/04/een-testlane-is-een-pleister/</guid><description>Als we met z&amp;rsquo;n allen met één ding bezig zijn, dan is onmiddellijk, voor iedereen, zichtbaar wat er al getest is en wat niet. Een &lt;em>testlane&lt;/em> is een lapmiddel voor het eigenlijke probleem: dat we onvoldoende samenwerken. Daardoor weten we niet wie wat al heeft gedaan. Dáárom heb je behoefte aan een middel om daar inzicht in te verkrijgen.</description></item><item><title>Bezwaren tegen continuous deployment</title><link>https://www.karlvanheijster.com/blog/26/04/bezwaren-tegen-continuous-deployment/</link><pubDate>Fri, 17 Apr 2026 08:30:38 +0200</pubDate><guid>https://www.karlvanheijster.com/blog/26/04/bezwaren-tegen-continuous-deployment/</guid><description>&lt;em>Continuous deployment&lt;/em> is: elke commit gaat meteen naar productie. Er is geen testomgeving, er is geen acceptatieomgeving; er zijn geen lang levende branches behalve de &lt;em>main&lt;/em> branch, en die is gelijk met productie. &amp;ndash; Waanzin! wil je roepen, dat kan nooit werken! &amp;ndash; Oké. Waarom niet?</description></item><item><title>Uitrollen, vlak voor de demo</title><link>https://www.karlvanheijster.com/blog/26/04/uitrollen-vlak-voor-de-demo/</link><pubDate>Fri, 10 Apr 2026 08:05:41 +0200</pubDate><guid>https://www.karlvanheijster.com/blog/26/04/uitrollen-vlak-voor-de-demo/</guid><description>&amp;ldquo;Ik vind dat we niet meer uit moeten rollen vlak voor een demo,&amp;rdquo; zei een collega, &amp;ldquo;dat vond ik nogal spannend.&amp;rdquo; Liever had hij zichzelf nog wat extra tijd gegeven om zekerheid te krijgen dat de wijziging niet onbedoeld dingen stuk had gemaakt. Ik begrijp het sentiment van waaruit deze opmerking ontspringt. Maar het is in mijn beleving de verkeerde diagnose van de situatie.</description></item><item><title>Entity services en het contextprincipe</title><link>https://www.karlvanheijster.com/blog/26/04/entity-services-en-het-contextprincipe/</link><pubDate>Fri, 03 Apr 2026 09:06:12 +0200</pubDate><guid>https://www.karlvanheijster.com/blog/26/04/entity-services-en-het-contextprincipe/</guid><description>Een domein bestaat uit een aantal entiteiten. Voor een webwinkel zijn dat dingen als &lt;em>product&lt;/em>, &lt;em>winkelwagentje&lt;/em> en &lt;em>bestelling&lt;/em>. Zulke entiteiten verwachten we terug te vinden in onze code: &lt;code>Product&lt;/code>, &lt;code>ShoppingCart&lt;/code> en &lt;code>Order&lt;/code>. In veel codebases vinden we, naast deze entiteiten, corresponderende objecten: services. De logica rondom een &lt;em>product&lt;/em> wordt afgehandeld in de &lt;code>ProductService&lt;/code>, die van een &lt;em>winkelwagentje&lt;/em> in een &lt;code>ShoppingCartService&lt;/code> &amp;ndash; en waar je de logica voor een &lt;em>bestelling&lt;/em> kunt vinden, kun je vast wel raden. Het gedachteloos introduceren van dit soort &lt;em>entity services&lt;/em> is me een doorn in het oog.</description></item><item><title>TDD en de testpiramide</title><link>https://www.karlvanheijster.com/blog/26/03/tdd-en-de-testpiramide/</link><pubDate>Fri, 27 Mar 2026 08:03:21 +0100</pubDate><guid>https://www.karlvanheijster.com/blog/26/03/tdd-en-de-testpiramide/</guid><description>Ik ruimde een boekenkast in op het werk, toen een collega me vroeg of ik wist hoe je een call naar een &lt;em>keyed service&lt;/em> uit de &lt;code>IServiceProvider&lt;/code> mockt. Nee, niet direct, zei ik. Maar waarom zou je dat überhaupt willen? Vanaf daar ontspon er een gesprek over Test-Driven Development, het ontwerp van code en de verschillende delen van de testpiramide.</description></item><item><title>Moeten refactorings ook gereviewd worden?</title><link>https://www.karlvanheijster.com/blog/26/03/moeten-refactorings-ook-gereviewd-worden/</link><pubDate>Fri, 20 Mar 2026 07:16:24 +0100</pubDate><guid>https://www.karlvanheijster.com/blog/26/03/moeten-refactorings-ook-gereviewd-worden/</guid><description>Niet elke codewijziging is gelijk. Sommige wijzigingen veranderen het gedrag van een systeem. Andere wijzigingen, refactorings, veranderen alleen de structuur en laten het gedrag gelijk. Zoals de meeste teams hun werk inrichten, met &lt;em>pull requests&lt;/em> en formele code reviews, wordt elke wijziging door twee paar ogen bekeken. Maar is dat wel nodig?</description></item></channel></rss>