Tag software ontwikkelen

Toevallige productieve ontmoetingen

Een collega van me omschreef de huidige, moderne functie van een kantoor als volgt: het faciliteren van toevallige productieve ontmoetingen. Ik viel bijna van mijn stoel toen ik dat hoorde (het was tijdens een borrel), zo’n mooie formulering vind ik het. Tegelijkertijd werpt het een licht op een gebeurtenis die voorheen zo alledaags en vanzelfsprekend was dat hij al die jaren aan mijn aandacht is ontsnapt: een collega tegen het lijf lopen bij de koffieautomaat.

Writer's block en programmer's block

Mensen zeggen nou nooit tegen me: “Karl, ik zou graag willen bloggen, maar ik weet niet waar ik moet beginnen.” Maar als ze dat zouden doen, dan zou ik zeggen: “Begin eens met wat je vandaag hebt gedaan.” Wat daarna volgt, zo stel ik me voor, is een stroom aan tegenwerpingen die iedereen bekend voor zou moeten komen die ooit meer dan één letter op papier heeft gezet. Die tegenwerpingen zijn uitdrukking van writer’s block.

Stap voor stap software testen

Software testen is een vak apart. Veel ontwikkelaars hebben wel een schetsmatige notie van hoe een goede test eruit dient te zien, maar ontberen een gedegen theoretisch fundament. Zulke ontwikkelaars zouden er goed aan doen om Essentials of Software Testing van Ralf Bierig, Stephen Brown, Edgar Galván en Joe Timoney te lezen.

Vijf+1 haiku's over software ontwikkelen

er is maar één ding / dat mijn code kan breken: / een eindgebruiker

Waarheid boven schoonheid

Anders dan Aristoteles, Kant en Wittgenstein, hebben we als softwareontwikkelaars de luxe ons niet bezig te hoeven houden met de metafysische grondstructuur van de werkelijkheid. Dat vereenvoudigt het ontwikkelen van onze applicaties aanzienlijk. Maar dezelfde hang naar schoonheid die ik bij filosofen zo amusant vind, duikt bij tijden ongemerkt in mijn eigen werk op.

Stapje voor stapje data migreren

Als er één constante is in softwareontwikkelland, dan is het wel dat software constant verandert. Nieuwe inzichten noodzaken ontwikkelaars om hun code aan te passen om bepaalde use cases (beter) te kunnen ondersteunen. Soms betekent dat dat er een aanpassing moet plaatsvinden in je model. Hoe ga daarbij om met data die nog is opgeslagen volgens het verouderd model?

Hoe technische schuld te monitoren én prioriteren

Software ontwikkelen is mensenwerk. Hoe goed de tooling tegenwoordig ook is, ze is niet meer dan een hulpmiddel voor ontwikkelaars om grip te krijgen op een codebase. De beste manier om technische schuld in beeld te krijgen, is dan ook niet door allerhande tools op je code los te laten, maar door erover te praten met je collega’s.

Check op permissies, niet op rollen

Op een gegeven moment begon onze autorisatiecode uit de hand te lopen. De code in onze front-end was haast onleesbaar geworden van alle rollenchecks die de logica vervuilde. Erop terugkijkend, hadden we twee fouten gemaakt in onze oorspronkelijke implementatie. Ten eerste hadden we gebruikers de mogelijkheid gegeven meerdere rollen te hebben, en ten tweede bevonden onze checks zich op een te grof niveau.

Werk en privé

Vergelijk de volgende twee zinnen eens met elkaar:

  1. “Ik ben een softwareontwikkelaar.”
  2. “Ik werk als softwareontwikkelaar.”

Zeggen ze hetzelfde?

De kwestie autorisatie

Onze Product Owner ging anderhalve week ondergronds met onze informatie-analist om een autorisatiematrix uit te tekenen. Toen hij het eindresultaat eindelijk presenteerde aan het team, leidde hij zijn verhaal in met de woorden: “We gaan jullie meenemen.” Dat was een slecht teken.