Profielfoto
Karl van Heijster

softwareontwikkelaar · blogger

Wat zijn eerlijke functies?

Uit Enrico Buonanno’s Functional Programming in C# (Second Edition) leerde het concept van een eerlijke functie kennen - en dat maakte me bewust van de oneerlijkheid van de code die ik doorgaans schrijf. Wat zijn eerlijke functies? Voordat we die vraag kunnen beantwoorden, moeten we eerst een antwoord geven op een onderliggende vraag, en dat is: wat is een functie überhaupt?

De Grote Successenretro was een groot succes

Onze Scrummaster was er niet, en dus kwam het organiseren van de Sprint Retrospective op mijn bordje terecht. Omdat ik iets spannenders wilde organiseren dan een wat-ging-er-goed-en-wat-kon-er-beter-Retro (dat is de officiële term, toch?), nam ik een middag de tijd om verschillende vormen te bekijken. Voor de uiteindelijke opzet, putte ik inspiratie uit de cursus begeleidend coachen die ik de afgelopen maanden heb gevolgd. Eén van de belangrijkste lessen die ik heb getrokken uit die cursus, is de waarde van het focussen op successen. Wie oog heeft voor zijn eigen successen (of de successen van zijn/haar team), wie zijn eigen successen erkent en viert, opent de weg naar meer succes.

Objectgeoriënteerd en functioneel BTW berekenen

In het eerste hoofdstuk van Enrico Buonanno’s Functional Programming in C# (Second Edition) demonstreert de auteur wat functionele features van C# aan de hand van een concreet voorbeeld: het berekenen van de BTW op een (lijst) product(en). Buonanno raadt de lezer aan om dezelfde functionaliteit ook op een objectgeoriënteerde manier te implementeren, om die oplossing te kunnen contrasteren met de zijne. Dus dat is precies wat ik heb gedaan.

Zelfs de testpiramide is niet meer heilig!

Ik ben altijd in de veronderstelling geweest dat mijn geautomatiseerde tests een piramidevormige verhouding tot elkaar zouden moeten hebben: aan de basis enorm veel unittests, in het midden een goede hoeveelheid integratietests, en aan de top een bescheiden aantal end to end (E2E) tests. Totdat ik Learning Domain-Driven Design van Vlad Khononov las. (Een aanrader, overigens!)

Edwin Wenink Appreciation Post

Ik danste onlangs bij een concert van Eefje de Visser en liep bij de uitgang Edwin Wenink tegen het lijf. Edwin is een oud-studiegenoot van me en de hoofdverantwoordelijke voor de RSS-link in het menu rechtsboven. “Ik krijg elke keer een mailtje als jij iets nieuws post!” bekende hij enthousiast. “Niet dat ik er ooit iets van lees, natuurlijk.” - Edwin is altijd eerlijk en dat waardeer ik soms. Tijdens ons gesprek kwam ik erachter dat hij ook een blog heeft en de ochtend erop zelfs dat er een heleboel interessants op staat ook nog. Bij dezen dus, een momentje om de gedachtewereld van Edwin te waarderen.

De ontdekking van strategische subdomeinen

Ik schreef één keer eerder over Domain-Driven Design - en in die blog gaf ik onmiddellijk toe niks van het onderwerp te weten. Precies daarom nam ik me voor om Learning Domain-Driven Design van Vlad Khononov op te pakken. En met succes, want al meteen in het eerste hoofdstuk leerde ik iets nieuws: het bestaan van strategische subdomeinen.

Vijf haiku's over software ontwikkelen - Vol. 5

Ik ben zó dichtbij / deze bug te fixen sinds / twee dagen of drie.

Het probleem met technische schuld op je backlog

Zo gaat mijn team om met het monitoren van technische schuld: we prikken elke Sprint een moment waarop we er met elkaar over praten, en als we het belangrijk genoeg vinden om er wat aan te doen, dan voeren we een Product Backlog Item op om die schuld weg te werken. Die aanpak werkt goed - goed genoeg, in elk geval. De technische schuld van onze huidige applicatie blijft grotendeels binnen de perken. En bovendien - dat is nog veel belangrijker - is iedereen in het team op de hoogte van het feit dat sommige plekken verbetering behoeven, en welke plekken dat zijn. Maar toch zit iets me niet helemaal lekker in die aanpak.

Het geweten aan het woord

Ik heb mijn huiswerk niet gemaakt voor de cursus coachend begeleiden. Ironisch genoeg moest dit natuurlijk gebeuren bij de reflectie op de hoofdstukken in Nicolette Kats Coachen met een leeg hoofd waarin de coach als geweten wordt behandeld. Het goede nieuws is dat ik, nu ik weken na dato alsnog een blog aan het onderwerp besteed, kan concluderen dat mijn eigen geweten toch nog enigszins functioneert.

Is kunstmatige intelligentie wel écht intelligent?

Kunstmatige intelligentie (ook wel artificiële intelligentie of kortweg AI genoemd) heeft de laatste jaren een enorme opmars gemaakt. AI neemt een steeds prominentere plek in in het dagelijks leven: van vertaalmachines tot gepersonaliseerde advertenties tot gerobotiseerde obers. Hoog tijd dus om filosofisch op dit fenomeen te reflecteren. Wat is AI? Kunnen computers echt denken? Wat is denken überhaupt? En wat zijn de ethische en politieke implicaties van de steeds grotere rol die AI in de samenleving speelt? Deze en andere vragen komen aan bod in Guido van der Knaaps Van Aristoteles tot algoritme: Filosofie van kunstmatige intelligentie.