Prototype van een website: visueel en testbaar

Bij Marlon starten we elk project, groot of klein, met het maken van een prototype. Een prototype (of mock-up) is een voorstel van een site of applicatie, dat dienst doet als basis om samen met de klant en eindgebruiker de functionaliteit te bespreken, bepalen en te testen.

De Saaie Specificatie

Het gebruik van prototypes is voor ons gegroeid uit een frustratie: documenten met specificaties zijn saai, worden niet grondig genoeg gelezen en worden dan toch gevalideerd. Je zal me niet horen zeggen dat een specs-document geen nut heeft, maar ze hebben twee fundamentele gebreken:

  • een document met specificaties verlangt verbeeldingsvermogen van de klant of de eindgebruiker, iets dat weinigen gegeven is
  • een document met specificaties kan je niet testen

Prototype van de homepagina van www.planbelgie.be

Een prototype daarentegen is visueel, en je kan jouw ideeën testen.

Wat is een prototype?

En vooral: wat doe je er mee? Wat zit er in een prototype? Wat moet de conclusie zijn als het prototype af is?

Welke pagina’s, wat staat er op en hoe staat het er op

De essentie van het prototype is: het bepalen van elke pagina (type-pagina), welke elementen er op staat (pagina-elementen), waaruit elk element bestaat (content-componenten), waar die elementen staan (organisatie) en hoe die elementen zich tegenover elkaar verhouden (hiërarchie).

Versies van pagina’s

Mandje als pagina element in zijn twee versiesDaarnaast maak je voor sommige pagina’s of elementen verschillende versies (states): hoe ziet de pagina er uit als je niet bent aangemeld, en hoe ziet ze er uit als je wel bent aangemeld. Het mandje van je e-commerce site: hoe ziet het er uit als je mandje leeg is, of als er één item in zit, of als er 10 items in zitten? Hoe zit het formulier er uit voor en na validatie?

Waar ben ik, waar kan ik naartoe, en hoe

Als je daar stopt, dan heb je te maken met een wireframe: je bepaalt de bladspiegel, en niets meer (zie ook later: terminologie).

Het prototype gaat verder: je voegt aan dat wireframe interactie toe. Eenmaal de pagina’s en pagina elementen bepaald, kan je links leggen tussen de pagina’s. Dit laat toe te testen of het navigatiepad duidelijk is, of de bezoeker steeds weet waar hij zich bevindt, en of die bezoeker telkens weet wat zijn verdere opties zijn.

De dynamiek

Validatie in een formulier

Maar je kan met een prototype nog verder gaan. Je kan op alle pagina’s ook alle interactiviteit toevoegen die binnen je website of applicatie zal gebruikt worden. Je beperkt je dus niet alleen tot de navigatie van pagina naar pagina. Een voorbeeld: voor een e-commerce website kan je bepalen wat er gebeurt als iemand een product aan het mandje toevoegt. In een formulier dat mensen gebruiken om zich in te schrijven, kan je afhankelijk van een bepaalde keuze (keuze van het land bijvoorbeeld), extra velden laten verschijnen, boodschappen tevoorschijn toveren, enz…

Met als doel: het bepalen van de scope

Een greep uit de pagina's van het prototype voor www.planbelgie.beEn zo eindig je bij een prototype dat de scope van het project bepaalt. Wij beschouwen een prototype volledig als het alle type-pagina’s bevat; alle mogelijke unieke soorten pagina’s zitten er in vervat, in al hun versies. We beperken ons bijvoorbeeld niet tot een formulier, maar tonen met het prototype ook hoe het formulier er uit ziet als je niet alles correct hebt ingevuld, en we voegen daar alle mogelijke bevestigingspagina’s achter. Zo zaten er in het prototype van de site van Plan België meer dan 120 pagina’s of pagina versies.

Als je de wil hebt om je prototype volledig te maken, is het resultaat dat je een perfect idee krijgt van de omvang van wat gebouwd moet worden. Tot in de kleinste details zal bepaald zijn welke acties waar nodig zijn, welke onderdelen er op elke pagina staan, hoeveel soorten pagina’s er moeten ontworpen worden en ook welke templates er moeten gemaakt worden.

Goede afspraken maken goede vrienden

Het prototype, eenmaal afgewerkt en gevalideerd door klant en eindgebruiker, zorgt ervoor dat iedereen weet wat er zal gebouwd worden, en wat niet:

  • de klant heeft het eindproduct al gezien, en heeft het kunnen testen
  • de designer weet welke pagina’s er gemaakt moeten worden, weet van elke pagina welke versies en uitzondering er bestaan, en weet exact wat er waar komt
  • de ontwikkelaar weet exact wat hij zal moeten bouwen.

Zowaar: management of expectations!

Conclusie

Een prototype heeft dus veel voordelen:

  • het is visueel
  • het is testbaar (best in een browser, de natuurlijke biotoop van de website)
  • het zorgt voor duidelijke afspraken

Hoe maakt u het?

Een prototype (of wireframe) maakt zichzelf niet. We hebben in de loop der jaren al verschillende technieken en software pakketten getest. De voorkeur voor een pakket is bij iedereen verschillend, maar hou toch deze basiseisen voor ogen:

  • testbaar in een browser: het software pakket moet in staat zijn een prototype af te leveren dat in een browser kan worden bekeken; de browser is de natuurlijke habitat van de website;
  • genoeg middelen voor het visueel aspect: het pakket mag je geen beperkingen opleggen: je moet een pagina kunnen opbouwen met de elementen die XHTML ook aanbiedt;
  • testbare interacties, en niet enkel de navigatie flow: het pakket moet niet alleen in staat zijn je van pagina A naar B te brengen, je moet ook alle andere interacties kunnen uitbouwen.

Op grootmoeders wijze: met de hand (throwaway prototyping)

whiteboard-prototypingOnderschat de voordelen (snelheid, kostprijs) van een met de hand getekend prototype niet. Op papier, op een tafel, op een whiteboard: je kan snel verschillende modellen aftoetsen.

Maar is dat dan geen wireframe? Ja, als je je beperkt tot het tekenen van de pagina en zijn elementen. Maar met paper prototyping kan je verder gaan: elementen uitknippen, de pagina’s nabootsen door de uitgeknipte elementen te rangschikken, enz…

Een prototype tekenen met de hand is vandaag nog altijd mijn eerste stap, en een zeer valabele werkwijze.

Je favoriete HTML-editor

De eerste prototypes die we maakten werden in Dreamweaver gebouwd. Een software pakket dat nuttig is voor een heleboel mensen, maar om een prototype te maken was dit verre van de ideale oplossing. Het prototype dat in zo gemaakt werd was natuurlijk perfect testbaar in een browser, maar (veel) links leggen, hergebruik van bepaalde elementen, rijke interactiviteit of versies van bepaalde pagina elementen zorgden ervoor dat het maken van een dergelijk prototype veel te arbeidsintensief was.

En een strikte, perfect afgemeten layout maken was ook al geen sinecure.

Een prototype gemaakt in Visio met de GUUUI Templates en StencilsVisio, Illustrator, Photoshop

De volgende stap in onze evolutie was Visio, samen met de GUUUI Prototyping tools voor Visio, een set templates en stencils. Visio, samen met die templates, had als voordeel, net als Illustrator (of Photoshop) dat elementen makkelijk en snel te plaatsen of verplaatsen zijn. Maar het resultaat was niet testbaar in een browser, je kon er weinig tot geen rijke interacties aan toevoegen en vooral: je kan er helemaal geen navigatiepad mee simuleren. En ik zwijg nog over het feit dat Visio in centimeters denkt, de meest gehate eenheid bij webdesigners.

Axure, degelijk gereedschap

Wij werken al een paar jaar met Axure. Axure heeft alle voordelen waar we naar op zoek waren:

  • drag ‘n’ drop plaatsen van grafische elementen, tot op de pixel perfect
  • hergebruik van elementen doorheen het prototype
  • leggen van links tussen pagina’s
  • rijke interactiviteit toevoegen
  • versies van pagina’s of pagina elementen kunnen bepalen
  • resultaat testbaar in een browser

Screenshot van Axure

Axure evolueert vrij snel en krijgt er bij elke release een pak – al dan niet exotische – features bij. Maar het pakket heeft één nadeel: je maakt uiteindelijk een throwaway prototype. De HTML die Axure uitspuwt als resultaat is een diaree van absoluut gepositioneerde elementen, waardoor er met dat resultaat in een volgende stap – ontwikkeling of templating – niks kan aangevangen worden.

Alles kan beter

Onlangs hebben we onze aanpak voor het analyseren en ontwerpen van een website kunnen bespreken samen met een aantal mensen van het Expertise Centre for Digital Media aan de universiteit van Hasselt. De conclusie was daar dezelfde als die waartoe we kwamen tijdens een informele samenkomst met gelijkgezinde mensen: vandaag bestaat er nog geen tool of werkwijze die van prototyping een integraal deel maakt van de ontwikkeling van een website. Een prototype wordt vaak ‘over het muurtje’ gegooid naar designers en ontwikkelaars.

De ideale wereld zal ons toelaten een prototype te maken waar alle elementen in een grafisch pakket als Photoshop worden getrokken en als basis dienen voor het ontwerpen; waar de HTML van het prototype als basis dient voor de templating; waar de opbouw van alle elementen in een pagina de datastructuur wordt van je applicatie: in je prototype bepaal je data componenten, de eigenschappen van die data, en de views op die data.

En was het nu wireframe, mock-up of prototype?

Voor ons ligt het verschil hierin: een wireframe is een alleenstaande “tekening” die illustreert hoe een pagina (of scherm) er uit ziet, door te bepalen welke elementen er waar op een pagina staan. Een wireframe legt niet zozeer links tussen de pagina’s (of schermen), maar geeft enkel aan welke elementen de pagina of het scherm zal bevatten.

Een protoype is dan een geavanceerde wireframe, waar er interactiviteit is aan toegevoegd: links tussen verschillende pagina’s zodat de flow in de website of de applicatie kan getest worden; functionaliteit op die pagina’s zoals knoppen, dropdowns; de state van een pagina kan verschillen door in het prototype een actie uit te voeren, niet door een ander wireframe te bekijken.

Zowel een wireframe als een prototype bevat echter zo weinig mogelijk design. Uiteindelijk ontwerp je wel al de pagina of het scherm, door elementen een bepaalde plaats te geven, woorden een bepaalde lettergrootte, een bepaalde tint grijs te gebruiken, of een bepaalde lijndikte. Maar toevoegen van kleur, grafische elementen zoals afgeronde kaders, verlooptinten, echte afbeeldingen, etc… komen een wireframe of prototype niet ten goede, want dan wordt er eerder gekeken naar het ontwerp, en niet naar het pure functionele en de organisatie.

Bezint eer ge begint

Enthousiasme om aan een nieuw project te beginnen is begrijpelijk. Toch is het belangrijk om de start van een project – en zelfs de voorafgaande offerte – goed voor te bereiden. Head-first in een project rushen heeft vaak tot gevolg dat belangrijke zaken worden vergeten. Dat kan tijdens de ontwikkeling voor serieuze kopbrekers zorgen. Hieronder geven we enkele tips om dergelijke valkuilen te vermijden.

Luisteren

Het is gemakkelijk om een prospect te overdonderen met allerlei knappe projecten en technische hoogstandjes die je al realiseerde. Maar wie doe je daar het meeste plezier mee, de prospect of jezelf? Het is veel productiever om eerst goed te luisteren en om aansluitend enkele relevante realisaties te tonen. Luisteren, een schijnbaar eenvoudige taak, maar vaak een verwaarloosde vaardigheid. Het volstaat immers niet om maar half naar het verhaal van een prospect te luisteren en hem of haar meteen te onderbreken met allerlei mogelijke oplossingen en denkpistes. Laat je prospect het hele verhaal doen, stel bijkomende vragen, maak een onderscheid tussen de grote lijnen van het project en de details en vooral geef jezelf de tijd om na te denken over het project van de prospect.

De juiste vragen stellen

Sommige prospects komen met een goed doordacht project en een plan, andere prospects hebben een basisidee dat verder uitgewerkt dient te worden. In beide gevallen loont het om zoveel mogelijk informatie rond het project op te nemen. Om de juiste oplossing voor het project te kunnen voorstellen is het enorm belangrijk de juiste vragen te stellen. Wat is het beoogde doelpubliek of de sector? Wat zijn de doelstellingen van het project en op welke manier dienen deze gerealiseerd te worden? Wie zijn de stakeholders in dit project? Hoe wil de prospect werken met de site? Wat zijn de verwachtingen naar budget en doorlooptijd? Kan het project worden ontwikkeld in om het even welke technologie of wordt deze bepaald door de integratie van bestaande systemen? Dit zijn maar enkele van de vragen die een webbouwer helpen om vorm te geven aan een project.

Inlevingsvermogen

Web designers en developers worden vaak verweten in een eigen wereldje, zeg maar een internetcocon, te leven. Ze zouden zich vergalopperen in grafische en technische hoogstandjes en nieuwigheden met weinig toegevoegde waarde. Het is inderdaad belangrijk om steeds voor ogen te houden dat een toepassing goed moet werken in de ‘echte wereld’. Bovendien mag de toepassing niet enkel voor de ontwikkelaar te begrijpen zijn. Integendeel, ze moet perfect aansluiten bij de manier van werken van de klant. Hierbij is een gezond inlevingsvermogen en een goede kennis van het product en de sector cruciaal. Het loont om mee te denken met de klant, zelfs over de grenzen van het web heen. Zo kan je bij de ontwikkeling van een shop bijvoorbeeld ook mee nadenken over het versturen van artikelen. Welke documenten worden meegestuurd en moeten bijgevolg afgedrukt kunnen worden? Wat als een product beschadigd raakt en terugkomt? Hoe vang je dat op in het systeem? Hoe hou je de stock van de fysieke winkel en de webshop up-to-date? De antwoorden op deze vragen hebben vaak een weerslag op de bouw van de applicatie. Hou je geen rekening met deze zaken, dan zal het allicht niet lang duren vooraleer je klant wordt geconfronteerd met situaties die niet in het stramien van je applicatie passen. En dan is het vaak ‘back to the drawing board’.

Meer weten over onze aanpak? Overloop onze 7 stappen voor een succesvol webproject of contacteer ons.