Tag Archives: usability

Over foute (web-)applicaties

Omdat Jakob Nielsen een slimme mens is, omdat hij een nieuw artikel geschreven heeft over web-applicatie design en omdat gratis kwalitatieve content alle aandacht verdient; “Top-10 Application-Design Mistakes“. Wat die tien design-fouten dan wel zijn moet ge zelf maar lezen, maar de bonus wil ik U hier niet onthouden:

“It’s almost always wrong to have a Reset button on a Web form. The reset button clears the user’s entire input and returns the form to its pristine state. Users would want that only if they’re repeatedly completing the same form with completely different data, which almost never happens on websites. Making it easy for users to destroy their work in a single click violates one of the most basic usability principles, which is to respect and protect the user’s work at almost any cost.”

Dat de man gelijk heeft!

Nog over web usability

web app usability posterGewoon een paar links naar interessante usability-related dingen die ik de laatste dagen feed-gewijs las:

De NMBS wilt mijn e-mail-adres, maar…

nmbs smile promoVandaag als pendelaar-met-treinabonnement van de NMBS een brief in de bus gekregen. Ze hebben mijn mailadres niet, schreven ze en dat ze me daarom wel een papieren brief moésten sturen. En dat er niet minder dan 4 goede redenen waren voor een smile (“Reden 3: Als U snel reageert, wint U misschien wel 2 weekendbiljetten”). Ook al ontving ik nog nooit papieren post van de NMBS, toch vind ik het geen slecht idee om “de papierberg te beperken”. Ik heb het als super-pendelaar daarenboven ook nogal voor de trein en ik smile ook al eens graag, dus trok ik naar e-perron www.nmbs.be om daar mijn mail-adres achter te laten. Maar toen liep één en ander toch een beetje mis …

Op de nmbs-site moest je, zo schreef ir. Sabin S’heeren, Directeur-Generaal Reizigers Nationaal, op de banner met het lachende gezichtje klikken. Dat lachende gezichtje ziet er op de site overigens maar triestig uit; heeft iemand die mooie brief van de Directeur-Generaal op de scanner gelegd en het resultaat op de site gegooid? Maar alleszins, er zit geen link onder die corny smilies. De tekst eronder is vetjes en donkerblauw, daar misschien? Nee, ook geen link achter de titel. Ah, een “Meer”-knop. Klik!

Alzo kwam ik een paar kliks later op de eigenlijke applicatie-pagina. Spijtig genoeg met de mededeling dat de toepassing niet beschikbaar is. Vreemd. Te veel volk die hun mailadres willen weggeven? Niet op tijd klaar geraakt met deployen? Of is de load op de backends te hoog?

Hoedanook, 10 minuten later opnieuw geprobeerd en ik kwam daadwerkelijk op een eerste invulscherm. Treinkaartnummer en geboortedatum. Abo erbij gehaald voor dat 12-cijferige nummer, geboortedatum ging zo wel lukken. Of niet? 10-12-1968 is niet juist, 10/12/1968 wel. Dat schreven ze ook mooi zag ik daarna, maar hoe moeilijk is het om een datumveld met wat javascript te normaliseren?

Submitten en een goeie minuut of zo wachten en ier seh daar seh, het tweede scherm staat daar toch wel te blinken zekers! Mijn adresgegevens staan mooi vooraf ingevuld, synchrone connectie naar mainframe moeten doen, afgaande op de traagheid der applicatie?. Maar kom, een mens moet niet altijd klagen, vooruit met de geit! Mijn mailadres toevoegen, enkele checkboxes uitvinken (want nee, ik wil geen mails over promoties en nee, ik wil niet deelnemen aan enquêtes), submitten en … Halt, stop, eeks; bij submit zie ik dat die checkboxes allemaal terug aan staan!!! WTF! Cancel. Uitvinken. Opnieuw submit en die checkboxen flitsen terug aan, brrr … Doorbijten dan maar, ik zal die opties straks nog wel kunnen wijzigen veronderstel ik?

Even later, ik moest deze keer zelfs geen minuut wachten, een bevestigingsscherm. En wonder boven wonder, ze hebben mijn checkbox-vinkjes toch mooi verwerkt, geen spam van de NMBS voor Goossens. Jeuij! Maar er is blijkbaar nog een probleempje met het postcode-veld (dat uit die stoffige mainframe kwam). Of ik dat manueel wil verbeteren? Off course, we passen ‘9160 Eksaarde’ aan naar ‘9160 Lokeren’ en proberen opnieuw.

Twintig minuten en een half grof brood later (een mens leeft niet van internet alleen, maar van elke boterham die uit zijn vrouw haar pollen komt) kijken of er op dat nmbs-scherm al iets staat over het te winnen weekendbiljet. Auw. Nééééééééééé! Boel kapot. Een monsterachtige null-pointer-exception (de eigenlijke stacktrace liet ik weg);

The servlet at /updateAddr.do in WAR /cartetrain/SilverStream/Objectstore/Jars/addronline generated an exception

The error occurred on a ‘POST’ request to URL http://cartetrain.b-rail.be/cartetrain//addronline/updateAddr.do.

Aug 29, 2007 1:02:03 PM


Exception Information
com.sssw.shr.http.AgoServletException
The servlet at /updateAddr.do in WAR /cartetrain/SilverStream/Objectstore/Jars/addronline generated an exception
java.lang.NullPointerException

Niks aan te doen, ga terug naar start, u ontvangt geen geld? En terug naar start gaan, dat probeer ik nu alweer een kwartiertje, maar ik krijg na het invoeren van treinkaartnummer en geboortedatum steevast:

De toepassing die u wilt gebruiken is momenteel buiten dienst.
Wij verontschuldigen ons voor dit ongemak.

Pffff … Ik zal het straks even aan mijn vrouw vragen, maar ik denk echt niet dat ik nog steeds aan het smilen ben.

Persoonlijk bericht voor Directeur-Generaal Reizigers Nationaal Dhr. Ir. Sabin S’heeren: dit moet echt beter kunnen! Haal uw mainframe-mensen uit hun ivoren toren als het over ontsluiting van data op het web gaat. Laat de communicatie-ploeg, die uw sobere maar propere papieren brief schreven, meewerken aan de het online luik van de actie (op voorwaarde dat die mensen ook web ademen, natuurlijk). Betrek web-frontend-developers en usability-specialisten om de toepassing aangenaam in gebruik te maken (ook als het fout gaat, een woeste java stacktrace op argeloze bezoekers loslaten is tegenwoordig echt wel not done). En laat die dingen heel grondig testen, functioneel en technisch. Geef maar een seintje als het gerepareerd is. U kent mijn mailadres toch, niet?

5 tips voor succes op het web

Ik ben voor mijn werk aan een presentatie over functionele en technologische keuzes voor websites bezig. Als basis voor die keuzes, stel ik, moeten de redenen van het succes van het internet genomen worden, want die gelden even goed ook voor individuele websites. Zo voor de vuist weg (niet echt, ik ben hier al een tijdje over aan het prakkiseren) kan ik er een 5-tal bedenken:

  1. Geef de mensen informatie!
  2. Daar draait het op het web immers om, informatie. Dus niet over hoe leuk het er allemaal uit ziet (al is dat altijd mooi meegenomen), niet over een promootje op je webshop en ook niet over CPC van je Google Adwords campagne. Nee, het draait in eerste instantie echt gewoon over ‘kwalitatieve content’, over ‘inhoud’. De mensen willen internet om dezelfde redenen als waarom onze verre voorouders vroeger encyclopedieën kochten; omwille van de belofte dat je, als je dat wilt, informatie onmiddellijk ter beschikking hebt.

    tip 1: Zorg voor kwalitatieve informatie waar je doelgroep iets aan heeft.


  3. Gratis is nooit te duur
  4. Inhoud is koning, keizer, admiraal, maar verwacht niet dat gebruikers voor ‘gewone informatie’ zomaar geld zullen neertellen. De grote succesverhalen op het web zijn niet toevallig geheel of gedeeltelijk gratis. Google, Youtube, Wikipedia, die duizenden internet-fora … allemaal gratis inhoud.

    De truc voor wie toch geld wilt vragen voor zijn “content”, is een evenwicht te vinden tussen je gratis en je betalend aanbod. LinkedIn is een goed voorbeeld; iedereen kan zonder een eurocent uit te moeten geven lid worden en je kunt met zo’n gratis account perfect online netwerken. Maar terwijl je, blij als een kind met deze toffe gratis dienst, je online netwerk beetje bij beetje verder uitbouwt, voeg je zelf ook informatie (en nieuwe gebruikers) toe. Eenmaal je goed en wel op weg bent, schrijf je misschien ook een aanbeveling of beantwoord je vragen in de ‘answers’ sectie. Gratis informatie geven en nemen, in ieders voordeel. Alleen voor een klein een deel van de meest sexy functionaliteit tenslotte (de volledige lijst van wie je profiel bekeken heeft bv.), moet je wel betalend lid zijn. Online uitgevers zoals De Standaard en de muziek- en filmindustrie lijken overigens nog te worstelen met het vinden van de juiste verhouding tussen gratis en betalend.

    tip 2: Geef je bezoekers die informatie ten minste gedeeltelijk gratis.


  5. “Wie doet er mee, internetteke?”
  6. Internet drijft dus op gratis inhoud, maar wat meer is: iedereen mag meedoen! Wie toegang tot internet en een browser heeft, kan mee zoeken en lezen, maar kan vooral ook mee schrijven en linken. Het internet is op die manier vanzelf viraal; je leest, je reageert, je schrijft zelf, je stuurt linken door, … Het succes van internet en van succesverhalen als Youtube, Wikipedia, Facebook en dichter bij huis van bv. de Telenet Games-fora (nu geïntegreerd in 9lives.be) is dan ook mee te danken aan het feit dat iedereen mag meekijken, meespelen en mee promoten. Het internet, dat zijn de mensen. Vergeet die hippe marketeers en trendwatchers dus maar; het internet is vanaf de allereerste site (van Tim Berners-Lee aan de CERN in Genève, zie zijn oproep om zelf content te publiceren of software te schrijven in ‘How can I help‘) altijd al een viraal en sociaal medium geweest!

    Dat iedereen mag meedoen, gaat inderdaad verder dan het puur inhoudelijke: ge kunt, als ge na het lezen van dit artikel een geweldig idee hebt, onmiddellijk beginnen om nieuwe spannende software voor het web te schrijven. Internet en het www zijn immers gebaseerd op open, gestandaardiseerde technologie (tcp/ip, smtp, http, html, …) waar geen rechten op betaald moeten worden. Daarnaast heeft ook het succes van het open source ontwikkelmodel sterk bijgedragen tot de grote hoeveelheid beschikbare kwalitatieve software voor het internet (denk aan Bittorrent, Firefox, Apache, WordPress, Drupal, Mediawiki, …) en op die manier voor het succes van het web in zijn geheel.

    Voeg het idee van open communicatie en open software development tenslotte samen en “shake firmly” tot je een mashup hebt; web-applicaties (zoals Amazon en Google Maps), social-networking-sites (zoals het al vermeldde Facebook en binnenkort ook Linkedin) en andere web2.0-software projecten (opnieuw; Drupal, WordPress, Mediawiki, Joomla, …) laten ontwikkelaars toe om met behulp van een API (application programming interface) widgets, extensions en plugins te schrijven die extra functionaliteit in hun sites integreren of die informatie van hun site halen om ze in een andere context (bv. iGoogle of live.com of rechtstreeks in je browser) te publiceren. Het resultaat: gratis extra functionaliteit voor je bezoekers!

    tip 3: zet je website “wijd open”; een standaard browser moet voldoende zijn, moedig het linken naar je content en gebruik van je rss-feeds aan, bevorder communicatie op en/of over je site en overweeg de mogelijkheid van het openstellen van je applicaties voor “amateur-ontwikkelaars”.


  7. Uw grootmoeder kan het!
  8. Een oppervlakkige kennis van computers is voldoende om het internet op te trekken. Computer opstarten, icoontje van je browser klikken, naar Google, zoekterm intikken, à volonté op al die hyperlinks klikken, ge moet daar niet voor gestudeerd hebben mijnheer! Verkeerde pagina? Eén klik op de back-knop en je zit terug in je zoekresultaten (het web is sequentieel, ge gaat van pagina A naar B naar C terug naar B naar D, …) en als je een toffe pagina hebt gevonden; in de bookmarks ermee! Dat is het. Indien surfen niet zo eenvoudig zou zijn, hadden de webbouwers en -marketeers onder ons nu niet zo een fijne job.

    Om die drempel zo laag te houden, moeten sitebouwers zich wel een beetje aan de standaarden (html, css, …) en conventies (links zijn onderlijnd, elke pagina heeft zijn unieke URL zodat er kan gebookmarket en gelinkt worden, back-toets werkt, goeie navigatie en interne search …) houden. Wijk nooit af van webstandaarden en -conventies, zelfs niet als het nifty UI-alternatief van dat flashy webagency voor jou, doorwinterd webexpert die je bent, best eenvoudiger en vooral zo veel leuker lijkt.

    tip 4: laat je website volgens de regels van de kunst maken en hou het eenvoudig. Consistentie, eenvoud, usability, accessibility. Geloof me, ge kunt niet zonder en uw grootmoeder al zeker niet!


  9. Wie zoekt die surft (en surft en surft en …)
  10. Met die schier oneindige hoeveelheid aan gratis informatie zouden we niet veel zijn zonder tools om al die pagina’s makkelijk terug te vinden. Van Webcrawler en Lycos mid jaren ’90 over Altavista tot Google; search engines zijn de alfa en de omega van zowat elk internet-bezoek (bij hoeveel mensen zou een search-engine de homepage zijn?).

    Indien je wilt dat je site makkelijk te vinden is, zul je ervoor moeten zorgen dat de zoekrobotten van bv. Google je site makkelijk kunnen vinden en indexeren. En om goed geïndexeerd te kunnen worden, zul je ervoor moeten zorgen dat je site web-standaarden en -conventies volgt (zelfs niet als dat flashy webagency … ge weet wel).

    tip 5: Consistentie, eenvoud, usability, accessibility; ge kunt niet zonder en de Googles out there zeker niet! wees vriendelijk voor Google en de bezoekers zullen tot U komen.


Natuurlijk is dit lijstje niet volledig en vanzelfsprekend is er heel wat meer nodig om succesvol op het internet te ondernemen (een goed business-plan helpt). Maar als het op rauwe trafiek aankomt: zet gratis kwalitatieve informatie open en bloot voor iedereen online, zorg ervoor dat die volgens de standaarden en conventies ontsloten wordt en verwelkom search-engines met open armen. Hoe het geld dan moet binnenrollen, dat mag U zelf uitvissen.

Interessante links en inspiratie:

Integratie van externe content of applicaties

Hoe integreer je externe content (of applicaties) het beste? Ik ga hier de komende tijd even induiken met wat eenvoudige demo’s en lijstjes met pro’s en con’s, maar ik zie alvast volgende mogelijkheden:

  1. server-side binnenhalen en alles in 1 html-pagina naar de browser duwen
  2. in een popup steken
  3. in een iframe zetten
  4. in een div en die vullen met behulp van een stukje ajax

De keuze voor een bepaalde oplossing hangt ongetwijfeld af van een aantal factoren:

  • is de externe content statisch of dynamisch
  • wordt die externe content snel of traag ‘opgediend’
  • is de content echt extern (i.e. van een ander domein) of gaat het over een ‘lokale’ applicatie die los van de rest van de content staat
  • wat is de impact op usability
  • wat is de impact op “searchability”

Soit, veel vragen maar nog geen mooie antwoorden (wel vage ideeën en enkele vooroordelen). Iedereen die hier een mening over heeft of links naar goeie info kent: schieten in de comments graag (staan sinds kort open voor iedereen). Ik ben er U -zoals steeds- eeuwig dankbaar voor en in ruil mogen jullie dan binnenkort een samenvatting van mijn bevindingen verwachten :-)