De Unix filosofie
software design open source inspiratie
3 mei 2021
Het ontwerpen van software kent, net als alle andere dingen die door mensen verzonnen en gemaakt worden, esthetische stromingen. Een van die filosofiën is de Unix filosofie. Daarbij staat simpliciteit van toepassingen centraal.
Op de Wikipedia pagina over Unix Filosofie wordt de oorspronkelijke filosofie als volgt omschreven:
- Zorg ervoor dat ieder programma één ding goed doet. Heb je iets anders nodig, bouw dan iets nieuws in plaats van oude programma’s compliceren met nieuwe features.
- Ga ervan uit dat de output van je programma input wordt van een ander, nog onbekend programma. Stop de output niet vol met overbodige informatie. Voorkom moeilijke input met strenge kolom-eisen of binaire formaten. Verplicht geen interactieve input.
- Ontwerp en maak software, zelfs operating systems, die snel kunnen worden uitgeprobeerd; liefst binnen een paar weken. Gooi onhandige stukjes gewoon weg en bouw ze opnieuw.
- Gebruik programmaatjes in plaats van ongeschoolde ondersteuning om het programmeren makkelijker te maken, zelfs als je daarvoor even moet uitwijken om ze te maken, en ga ervan uit dat je sommige van deze tooltjes daarna gewoon weer gaat weggooien.

Een mooiere formulering, die leest als een stukje poezie, komt van Mike Gancarz:
- Klein is prachtig.
- Zorg dat elk programma één ding goed doet.
- Bouw zo snel mogelijk een prototype.
- Kies voor herbruikbaarheid boven efficientie.
- Sla data op in platte tekst.
- Gebruik de hefboomwerking van software in je voordeel.
- Gebruik shell scripts om hefboomwerking en herbruikbaarheid te vergroten.
- Vermijd gebruikersinterfaces die constant aandacht vragen.
- Maak van ieder programma een filter.
Ik gebruik deze filosofie ook bij het maken van digitale tools die mensen ondersteunen op de werkvloer, maar nog altijd zie ik daar vaak de neiging tot “feature proliferation”: het toevoegen van telkens maar weer extra functionaliteit aan applicaties waar alles in zit en alles mee moet, met alle gevolgen van dien.
Andere aantekeningen
Design thinking: maatwerk is helemaal terug
1 maart 2018
Ontwikkelmethoden als agile development en lean startup onderschrijven het belang van de rol van de eindgebruiker, door deze vroeg en vaak te betrekken bij het ontwikkelen van software. Design thinking gaat daarin nog verder: de beoogde gebruikers worden niet alleen betrokken om gemaakte software te testen, maar ook om te bedenken wat voor software nodig is. Of zelfs om te beslissen óf er software nodig is.
Open Source voor Open Samenwerken
2 september 2019
In de praktijk blijkt de mentaliteit in overheids ICT-projecten vaak nog best wel ‘closed source’ te zijn: pas als het project is afgerond, wordt de code openbaar gemaakt. Vaak duurt het zelfs nóg een paar maanden, omdat de code geschikt moet worden gemaakt voor publicatie.
Public Code of Source Available
15 februari 2021
Onder de noemer open source wordt er gestreden voor het vrijgeven van software die door de overheid gebruikt wordt of gemaakt is. Dit gebruik maken en maken van zijn echter twee erg verschillende cases, waarbij open source ook niet per se de juiste noemer is.