Design met de experts – ooPSLA

 
22 oktober 2007

Elk jaar heeft ooPSLA (www.oopsla.org) aan het begin van het congres een dag waarop mensen bezig gaan met een design opdracht. De Design Fest leiders waren dit jaar Don Roberts en John Brant, beiden bekend als de grondleggers van refactoring. De groep waarin ik deel kon nemen bestond uit Travis Giggs (moderator), Michael Lukas-Smith, Martin Kobetic en Ralph Johnson.

Door de drie groepen werden drie verschillende benaderingen gekozen. De eerste groep werkte het design uit met behulp van index kaarten die gebruikt werden voor een CRC sessie. De sessies van deze groep werden getimeboxed uitgevoerd. De resultaten werden uitgewerkt in user interface mockups. Deze groep werkte het meest met wat over het algemeen wordt verstaan onder de term design.

De tweede groep koos ervoor de opdracht uit te werken door te DD’en. Dit is niet DDD–, maar een afkorting voor Dumpster Diving. Men probeerde een antwoord op de vraag te vinden met behulp van het zoeken naar oplossingen die kant en klaar beschikbaar zijn op de markt of in het public domain.

De groep waaraan ik deelnam koos voor een snel prototyping in een Smalltalk omgeving. Hier was design en implementatie moeilijk te scheiden, en werd al bouwend bijvoorbeeld gekozen voor een fundamenteel ander design.

De drie benaderingen leverden aanzienlijk verschillende uiteindelijke producten. De eerste groep een schetsmatig design, in de vorm van een class diagram, enkele schermen, en een klein beetje Ruby code. De tweede groep alleen een aantal mogelijke producten die de gevraagde functionaliteit zouden kunnen leveren. De derde groep een werkend prototype maar nog zonder user interface. Van de negen functionaliteiten die gevraagd werden waren wij ook nog maar net begonnen met nummer drie…

Interessant was te zien dat ook ervaren en in sommige gevallen zéér ervaren ontwerpers, niet eenvoudig in staat waren snel de juiste keuzes te maken. Het inwerken in het domein kostte gewoon tijd en een tijdlang modderen.

Bij de discussie na afloop over wat men onder design zou kunnen verstaan, was ook te merken dat hier geen vastomlijnde en stabiele definities aanwezig waren. Ralph Johnson maakte duidelijk onderscheid tussen design en bouw, waar ikzelf dat onderscheid eigenlijk probeerde weg te krijgen — wat ook een beetje de aanpak was van onze groep. Bij ons werk liepen die twee aspecten zo in elkaar over dat het moeilijk was om te zeggen wanneer we aan het designen waren en wanneer aan het bouwen.

Een aspect waar wij tegenaan liepen was het feit dat in de probleemdefinitie een groot aantal gegevens stonden. Het betrof een online applicatie waar auto’s geconfigureerd moesten kunnnen worden met een groot aantal opties, waarbij sommige opties elkaar uitsloten, en ook een verzameling opties in een package deal gegoten konden worden. Ook moesten deze automodellen kunnen aangeven wat de inkoopkosten waren om snel een verkoopprijs te kunnen bepalen. Om dit snel te prototypen is niet makkelijk, want je weet eigenlijk niet of je oplossing goed werkt wanneer je niet de objecten als automodel, optie en package daadwerkelijk maakt (instantieert) en probeert te combineren. Toch werkte dit wonderwel in Smalltalk, afgezien van de hoge mate van handwerk bij het invullen van die objecten, want wij waren in staat eenmaal gemaakte instanties te kunnen bewaren ondanks dat wij de classes van die objecten bijna fundamenteel anders maakten.


Werken met ?
Kijk dan bij onze mogelijkheden voor starters en/of ervaren IT'ers.


Categorieën: Development

Tags: ,