Fout: Datamodelgedreven interactie

May 30th, 2009 auteur: Felix Ogg | onderwerp: Rare knoppen, bedrijfsproces, requirements, verkeerde conventies.
923406_shirtpockettie

Jan, gebruiker

In softwaremaatwerkland lijdt Jan-op-de-werkvloer onder conventionele wijsheid van zijn manager, die een IT systeem laat bouwen voor Jans afdeling. Het meest storende gevolg vind ik de datamodelgedreven interactie waarmee Jan opgezadeld wordt.

Laat ik eerst uitleggen wat datamodellen zijn.

Datamodellen

Tegenwoordig slaan vrijwel alle zakelijke applicaties hun gegevens op in SQL databases. Het principe daarvan is niets meer dan een verzameling tabellen, bestaande uit kolommen met ruwe data (je geboortedatum, je naam, de productcode) en speciale kolommen met regelnummers uit andere,soortgelijke tabellen.

IT managers met een opleiding in de jaren 70/80 (of autodidact) hebben geleerd om databases te ‘modelleren‘. Dat is het zo handig mogelijk opdelen van bedrijfsgegevens in tabellen. Modelleren is een truucje: als je het doorhebt is het eigenlijk heel simpel.

De opdrachtspecificatie van maatwerk bestaat, omdat dat dat nu immers het domein is van voornoemde demografische groep, dan ook meestal vooral uit database-velden: de kolommen van de tabellen. Daar wordt lang en zwaarwichtig over gediscussieerd. Daar voelt men zich veilig en gezaghebbend bij. En dat vindt iedereen tenslotte prettig!

Datamodelgedreven interactie

De inhoud van de SQL tabellen zit diep verborgen onder de motorkap van de applicatie. Echter, door de grote nadruk die managers/klanten leggen op het opslagformaat (de kolommen en tabellen) zetten zij software-ontwikkelaars impliciet onder druk om, op het scherm, te tonen dat de applicatie inderdaad voldoet aan een datamodel.  Zo wordt elk scherm een afspiegeling van de tabelvorm van zijn onderliggende gegevens.  Daarom zien bijna alle schermen eruit als een Excel-blad: een schermvullende tabel.

De knoppen waarop je klikt en de invoervelden zijn later toegevoegd, volgens conventies. Het gevolg is dat de applicatie de acties wel uitvoert zoals gespecificeerd, maar op een hele saaie, inefficiënte en bovenal verwarrende manier. Immers, het conceptueel model van de interactie is gebaseerd op machine-efficiënte gegevensopslag, niet op efficiënt applicatiegebruik of een prettige ervaring. Of om het anders te zeggen: Het is een chassis zonder interieur, zonder pedalen en vooral zonder een stuurwiel. Geen wonder dat het oncomfortabel voelt.

Herken datamodelgedreven interactie

Hoe herken je nu datamodelgedreven interactie? Welnu, ten eerste natuurlijk aan de overdaad aan tabellen, vooral met veel kolommen die je nu niet nodig hebt: je moet dus turen naar welke kolom de gegevens bevat die jij zoekt voor je taak. Als het niet op het scherm past maken we de letters gewoon wat kleiner…

Maar er is nog een teken aan de wand: Bij het uitvoeren van je taak doorkruis je meerdere schermen, waarbij je op elk scherm een ander stukje informatie aan het systeem moet voeren.

Voorbeeld:

Je systeem registreert de teams van de voetbalvereniging. Het datamodel bewaart leden en teams gescheiden, elk in hun eigen tabel. Elk seizoen wijzigt de teamindeling en de klasse van elk team. Dat levert je veel werk op, want je moet

  1. het bestaande team opzoeken (scherm 1) en dat “archiveren”
  2. een nieuw team aanmaken van de juiste speelklasse(scherm 2) en dat “starten”
  3. een teamlid opzoeken (scherm 3) op naam
  4. het teamlid toevoegen aan het nieuwe team (scherm 4)
  5. voor alle andere 10 spelers stap 3 en 4 herhalen (schermen 5..24)
  6. voor alle andere 6 teams stap 1/tm 5 herhalen (schermen 25..144)

Geen wonder dat je daar tegenop ziet!

NB. Ik laat het aan u over zelf een slimmere, gecombineerde manier te bedenken zodat de taak in 1 of 2 schermen klaar is. Hint: teams veranderen relatief weinig.

Datamodellen zijn een ’solution’

De datamodellen in de specificatie zijn zelf een ’solution’: een IT oplossing op zoek naar een probleem. Het probleem van gegevensopslag speelt namelijk nog helemaal niet tijdens de eerste vergaderingen over een mogelijk nieuw IT systeem. De wereld is veranderd sinds de jaren ‘80: het datamodel is meestal onbelangrijk.

In plaats van te vergaderen over datamodellen zou de IT manager moeten praten over

  1. welke acties de mensen op de werkvloer met de applicatie moeten uitvoeren en
  2. hoe de daarbij benodigde informatie gecondenseerd en in de juiste context aan hen gepresenteerd wordt.

En als je iemand betrapt op het voornemen vooral tabellen te gebruiken, “lekker makkelijk, zoals iedereen gewend is, van Excel”, bedenk dan dat dat eigenlijk zonde is van duur maatwerk: dat kan vrijwel gratis met gespecialiseerde tools en zelfs – hoe kan het ook anders – met Excel zelf!

Tags:

Share Your Thoughts