Wat mot je

Als iemand die haar geld verdient met computeren ben ik voor veel mensen in mijn omgeving hét aanspreekpunt voor computerdingen. (Gek genoeg komen ze vervolgens nooit met decennia oude databases aanzetten, het computerding waar ik het beste in ben.)

Er zijn ruwweg twee soorten vragen wat betreft computerdingen: de praktische (hoe laat ik mijn computer X doen?) en de retorische (waarom doet dit programma X? / waarom kan dit programma niet Y?)

Die laatste is natuurlijk niet bedoeld om te beantwoorden (want retorisch). Maar dat kan wel, heel makkelijk zelfs. In alle gevallen is het antwoord omdat software maken verrekte moeilijk is.

Dat heeft niets te maken met programmeertalen die er onbegrijpelijk uitzien (programmeren is niet moeilijk namelijk).

Software maken is iets uit niets maken, en iets uit niets maken is vreselijk lastig (vraag maar aan God). Het is alleen al bijna onmogelijk om op te schrijven wat je nou eigenlijk wil dat de software gaat doen. Zie, bijvoorbeeld, brood:

Vanavond was ik fijn aan het multitasken: ik zat aan de keukentafel aan een requirements-document te werken (oftewel, een lijstje van dingen waaraan een nieuw programmaatje van ons moet gaan voldoen) en ondertussen bakte ik een brood, of eigenlijk de oven bakte een brood en ik zat ernaast. Toen dacht ik, goh, was ons programmaatje maar zo simpel als brood bakken (brood bakken is ook niet moeilijk namelijk).

Maar brood bakken is bepaald niet iets-uit-niets maken. Probeer maar eens terug naar de basis te bedenken waar een brood aan moet voldoen.

  • eetbaar zijn (niet-giftig)
  • voedzaam
  • lekker
  • te snijden met een mes
  • kan beleg bevatten
  • betaalbaar
  • valt niet uit elkaar
  • te kauwen
  • draagbaar (lood krijg je ook in broodjes maar dat is best zwaar in de lunchtrommel)
  • bewaarbaar

Nu heb ik al tien eisen voor iets simpels als een brood. En als iemand iets gaat produceren wat precies aan deze eisen voldoet missen er vast nog heel voordehandliggende dingen waardoor iemand gaat roepen “WAAROM kan dit ding niet gewoon X?”

Dus de volgende keer dat je je in wanhoop afvraagt hoe de ontwikkelaars van de tekstverwerker die je gebruikt in hemelsnaam niet zelf konden bedenken dat het voor iedereen fijner is als je met één klik wisselende konijntje-silhouetten als bulletpoint in kunt stellen, probeer dan eens een lijstje te maken van alles wat het ding verder moet kunnen. Dan weet je wel waarom.