Anti-patternsMysteries of softwarePublicationsSAP

De bug als feature (in Dutch)

This column will be pulished in the September 2009 issue of Software Release Magazine (www.release.nl).

Eind augustus gleed er een opvallende leaflet in mijn gloednieuwe brievenbus. Een leaflet van McDonalds. Niet dat ik daar normaliter veel acht op sla, maar deze trok mijn onverdeelde aandacht. “Ook Utrecht Leidsche Rijn heeft nu een eigen McDonalds. Uniek in Nederland. het is de eerste McDrive ter wereld die dwars door een parkeergarage loopt!” Schijnbaar is dit een pre.

Nieuwsgierig geworden draai ik de leaflet om. “U neemt gewoon uw ticket voor de parkeergarage, en slaat dan in de parkeergarage rechtsaf naar de McDrive. Bij het afrekenen van uw bestelling krijgt u meteen een uitrijkaart voor de parkeergarage.” Even kraken mijn arme hersentjes. Lees ik dat goed? Over smaak valt natuurlijk te twisten, maar zonder twijfel is het afhalen van voer bij een McDrive een tamelijk efficiente procedure. Maar om daar nu extra voor door een parkeergarage heen te rijden?

image

De ontwerpfout als bonus

In mijn oren klinkt dat alsof de ontwerper van het winkelcentrum heeft zitten slapen, en voordat ie het in de gaten had, kon de McDrive niet anders meer worden aangelegd dan dwars door de parkeergarage heen. Nergens was nog plek. Zo moet het gegaan zijn. Maar de leaflet maakt alles goed. Die presenteert de ontwerpfout juist als een bonus. Wie wil er nu niet door een parkeergarage heen rijden om een hamburger te bestellen? Dat is handig! Uniek in Nederland!

Het is een bug vermommen als feature. Een fenomeen dat helaas in ons eigen kleine vakgebiedje maar al te vaak voorkomt. Applicaties die we ontwikkelen kennen allerhande bijverschijnselen, die ontstaan uit onpraktisch ontwerpen, onhandig programmeerwerk of uit tijdnood in het project. De bug is geboren.

Tijdelijke workarounds

Wat nu? Dan maar een workaround introduceren. Een tijdelijke workaround natuurlijk. Helaas raken de gebruikers van onze applicaties in no-time net zo gewend aan de goed opgezette features als aan de workarounds. De workarounds worden al snel als normaal beschouwd. Het hoort nu eenmaal zo. De bug als feature is geboren.

Een voorbeeld. Omdat ik ging verhuizen, wilde ik twee maanden geleden mijn adreswijziging doorgeven aan de telefoonmaatschappij. Nadat een overduidelijk Groningse mevrouw mijn gegevens had gevonden in het systeem, klonk een ontmoedigende toon. “Ah,” zei de mevrouw, “het spijt me. Ik kan uw adreswijziging nu niet in behandeling nemen. Uw heeft namelijk vorige maand internet-plus-bellen besteld.” Op mijn korte naar meer uitleg vragende respons volgt de besliste uiteenzetting. “U moet eerst internet-plus-bellen aansluiten. Het systeem voorkomt voor u dat u het installeert op een verkeerd adres.”

Mijn klomp brak. Als software developer weet je dat je op zo’n moment bent overgeleverd aan de goden. Dat de grijzende programmeurs van de telefoonmaatschappij het domweg niet voor elkaar hebben gekregen om beide zaken tegelijkertijd in de database te stoppen. De bug als feature. Uitermate frustrerend. Maar niemand die het nog opmerkt. Tot iemand een volgende versie van de software schrijft, waarin de bug alsnog is oplost. Dat werd tijd zou je zeggen. De kans is echter groot dat de gebruikers van de applicatie met z’n allen over de goedbedoeldende developer buitelen. “Eerst werkte dat veel beter. Kun je het weer terugzetten zoals het was?”

Heel handig

Vooruit dan. Nog een schrijnend voorbeeld. Eerder deze week had ik een gesprek met een manager van een welbekende Duitse onderneming in enterprise resource planning  software. Voor het uitvoeren van een belangrijk administratief proces moesten de secretaresses van deze onderneming in een eerste systeem een klantnummer opzoeken, om het daarna in een ander systeem over te typen. Van een geautomatiseerde koppeling tussen beide systemen was (vooralsnog?) geen sprake. “Maar,” zo zei een van de waarschijnlijke hoogblonde secretaresses, “er zit daar iets heel handigs voor in ons systeem hoor. Als je op het ene veld gaat staan en je doet Ctrl-C, en dan met de muis op het andere veld in het scherm van de andere applicatie klikt en Ctrl-V doet, kopieert ie het klantnummer vanzelf. Handig he?”

One thought on “De bug als feature (in Dutch)

Comments are closed.