Blog #100!

Een minimijlpaal: dit is mijn honderste blog! In krap een jaar heb ik 80.168 woorden over softwareontwikkeling geschreven, gecategoriseerd onder 112 tags. Het leek me een mooi moment voor een knap staaltje navelstaren, met hier en daar een snuifje zelfpijperij. Bij dezen: tien blogs waar ik met iets van plezier op terugkijk.

1. Domain-Driven Design en Ludwig Wittgenstein

Mijn filosofievrienden kunnen het bevestigen: ik ben een liefhebber van de Oostenrijkse filosoof Ludwig Wittgenstein, de man die niet één maar twee keer een revolutie introduceerde in het twintigste-eeuwse denken.1 Ik ging daarin zelfs zo ver, dat mijn medestudenten op een gegeven moment weigerden nog discussies met me te voeren, omdat ik alles binnen drie zinnen toch doodsloeg met een opmerking over taalspelen. Je had daar een uitstekend drankspel omheen kunnen bouwen - en dat is wat we volgens mij, bewust of onbewust, ook maar gedaan hebben.

Hoe dan ook, ik had niet verwacht dat ik in de rol van softwareontwikkelaar ooit nog wat met Wittgenstein van doen zou hebben. Maar daar heb ik mezelf maar mooi ongelijk in gegeven. Mijn blog over de manier waarop Wittgensteins latere filosofie terug te lezen is in Eric Evans' Domain-Driven Design (DDD), is wat mij betreft nog steeds het beste wat ik ooit op deze blog heb neergepend. Het biedt zowel een filosofische verdieping als rechtvaardiging van een populaire opvatting van hoe we software dienen te ontwikkelen - met de notie van taalspel in het hart. Proost!

2. Poëzie

Mijn haiku’s over software ontwikkelen begonnen op de grens van de grap. Maar na verloop van tijd kreeg ik meer en meer plezier in dit spel met taal. Zo erg zelfs, dat ik het tijdens een ontspannen kerstvakantie de stap zette naar sonnetten en liefdesgedichten.

Poëzie en code zijn geen natuurlijke bondgenoten2 - op het eerste gezicht niet, althans. Maar: code is niet alleen of zelfs hoofdzakelijk een logisch-analytische aangelegenheid. Het is net zozeer een creatieve onderneming. Een goede ontwikkelaar moet, net als een dichter, in staat zijn buiten de gestelde kaders te kunnen denken. - Wie weet, misschien is het schrijven van poëzie wel een manier om buiten de gestelde kaders van de softwareontwikkeling te kunnen denken. Maar het is vooral een leuk tijdverdrijf - voor de lezer hopelijk net zozeer als voor de schrijver.

3. Mijn loopbaanwending

Het voelt wat vreemd om een blog te promoten die enkel en alleen over je eigen persoontje, dat botst met mijn overtuiging dat bescheidenheid een deugd is. Maar de tekst is niet van mezelf, maar van Radboud Magazine (en dat maakt het geheel wat minder ongemakkelijk), op basis van een gezellig interview over mijn studiekeuze en -ervaring, en hoe een komische overdrijving op mijn CV me uiteindelijk een baan als ICT’er bezorgde.

(Een officieus vervolg op dat interview vind je overigens hier. In die blog beschrijf ik mijn worsteling met het leren programmeren, nadat ik eenmaal was aangenomen.)

4. Lezen, lezen, lezen

De beste tip die ik mezelf ooit gaf, was: lees elke dag twee kwartier over je vak. Dat ik die tip ter harte genomen heb, blijkt wel uit het feit dat zo’n twintig procent van mijn blogs over vakliteratuur gaan. Feit is dat ik zowel in 2020 als in 2021 een heleboel fantastische boeken heb gelezen die mijn professionel leven hebben verdiept en verrijkt. Daarom: lees elke dag twee kwartier over je vak!

5. Testbare code

Eén van de beste boeken dit ik het afgelopen jaar las, was Unit Testing van Vladimir Khorikov. Ik maak nog steeds bijna dagelijks gebruik van zijn classificatie in vier kwadranten als middel om mijn code testbaar op te zetten. De blog die ik erover schreef zou ik elke testminnende softwareontwikkelaar aan willen raden - en misschien nog wel meer aan elke ontwikkelaar die nog steeds niet overtuigd is van de waarde van geautomatiseerde tests.

6. De Kwestie Autorisatie

Naast boeken zijn filmpjes op YouTube een prima manier om je kennispeil te verhogen. In mijn blog over het verschil tussen incrementele en iteratieve ontwikkeling probeer ik in mijn eigen woorden de ideeën van softwarearchitect George Fairbanks weer te geven.

Kennis is echter blind zonder toepassing - en die liet in dit geval niet lang op zich wachten. In een blog over de worsteling van mijn team met onze uit de kluiten gewassen autorisatiecode vinden Fairbanks ideeën grond in de praktijk.

Het leuke aan het bijhouden van een blog, is dat bepaalde ideeën en hun toepassing in een volgende blog op een andere manier terug kunnen komen. In een derde blog kom ik terug op onze autorisatieperikelen, en presenteer de oplossing waar het team mee aankwam. Ditmaal zonder Fairbanks, waardoor deze drie blogs als het ware een ketting vormen: aan de ene kant theorie en aan de andere kant de praktijk, en in het midden het schakelpunt.

7. Agile ontwikkeling

De Kwestie Autorisatie is op zijn beurt eigenlijk weer een concrete toepassing, ingebed in het vraagstuk van Agile ontwikkeling. Hoewel Agile al een hele tijd mainstream is in softwareontwikkelland, blijft het een uitdaging dit in de praktijk te brengen. Dit is geen technisch vraagstuk, en daarom ontsnapt deze dimensie van software ontwikkelen - helaas! - aan het gros van de ontwikkelaars.

Eigenlijk is Agile in belangrijke mate een politiek vraagstuk, in die zin dat het gaat om de juiste mensen te verleiden zich een bepaalde filosofie eigen te maken.

Ik schreef er bijvoorbeeld over in mijn recensie van Robert C. Martins Clean Agile. Ik hanteer hier Agile argumenten om de vraag te beslechten hoe je je werk structureert. - En spreek hier, ietwat ironisch, mijn frustatie uit over niet-Agile stakeholders.

8. Cultuur

Elke goede ontwikkelaar is tegenwoordig wel overtuigd van de waarde van geautomatiseerde tests - maar dat was niet altijd het geval. Zelfs bij een gigant als Google was ongeteste code ooit schering en inslag. In Software Engineering at Google staat een interessant verhaal over de cultuuromslag die ervoor nodig was testen de norm te maken. In deze blog contrasteer ik dat verhaal met een vergelijkbare maar minder succesvolle cultuurverandering uit De Cultuurladder.

9. Bugs, bugs, bugs

Hoewel ik graag mag schrijven over zaken die de dagelijkse praktijk overstijgen, is het nu eenmaal een feit dat je als softwareontwikkelaar vaak met je poten in de klei staat. En met “klei” bedoel ik “bugs”.

Mijn favoriet in dit genre blogs is Hoe mijn punthoofd me een punthoofd bezorgde. Dat komt deels omdat het probleem heerlijk klein en toegespitst is, en er toch een algemene conclusie uit kan worden getrokken. Maar het ligt vooral aan de titel, waar ik zelf nog steeds om kan gniffelen.

10. Het begin

Het eind is het begin is het eind.3 Nee, ik heb het niet over de eerste 36 woorden die ik de ether in slingerde. Ik heb het over mijn eerste indrukken van het bloggen met Hugo. Denk je er over na een blog te beginnen over je werk in het algemeen, of softwareontwikkeling in het bijzonder? Wellicht dat Karl anno april 2020 je op weg kan helpen. (En anders kun je misschien bij Karl anno augustus of december 2021 terecht.)

Enfin, dat was blog nummer 100! Dat er nog vele moge volgen! *champagne ontkurken doet*


  1. Onlangs verscheen bij Uitgeverij Boom een herdruk van Bert Keizers vlotte introductie in diens leven en werk. Ik schreef er hier een recensie over. Ook Wittgensteins Tractatus en Filosofische Onderzoekingen verschenen opnieuw, en ook dáár schreef ik recensies over: hier en hier. ↩︎

  2. Al denkt Felienne Hermans daar waarschijnlijk anders over. ↩︎

  3. Niet te verwarren met The Beginning Is the End Is the Beginning, da’s een liedje van Smashing Pumpkins. ↩︎

agile ontwikkeling · bedrijfscultuur · bloggen · boeken · carrièrepad · dotkarl · filosofie · poëzie · testen