Sunt lucruri la care mă şi sunt lucruri la care nu mă pricep. În această a doua categorie -- extrem de largă -- se înscrie şi domeniul care s-a consacrat sub numele de web design. Şi totuşi, faptul că îmi petrec o bună parte din timp prin web şi că zona mea actuală de competenţă de focalizează pe aplicaţii care folosesc tehnologiile web-ului, mi-a format o anumită competenţă în aprecierea ergonomiei paginilor pe care le văd în browser. Iar cum paginile sunt din ce în ce mai adesea interfeţe ale unor aplicaţii, am constatat că, inevitabil, experienţa acumulată prin nenumăratele ore de navigare îmi este de folos în propriile aplicaţii. Pentru că şi acestea trebuie să aibă o interfaţă (în browser) iar ceea ce aş îndrăzni să numesc "uzabilitate" este o calitate importantă. Până la urmă, utilizatorul nu vede nimic din frumuseţea frazelor SQL sau subtilităţile claselor Python, ci doar interfaţa. La modul ideal, aceasta ar trebui să fie intuitivă şi, eventual, frumoasă.
Cum am mărturisit deja că nu mă pricep la web design, am renunţat cu oarecare regret la frumuseţe şi m-am concentrat asupra uzabilităţii, ghidându-mă după o regulă pe care am reţinut-o din manualele limbajului Ruby sub acronimul POLS (Principle Of Least Surprise). Aceasta conduce către o simplitate vecină cu austeritatea, dar are avantajul că valorifică deprinderile simple ale navigării pe web. Link-ul trimite undeva, butonul declanşează o acţiune şi aşa mai departe. Pe urmă, utilizatorul trebuie să vadă dintr-o dată toată informaţia legată de un subiect de interes, dar să poată să o actualizeze punctual. În fine, utilizatorul trebuie să fie în orice moment conştient de ceea ce face, să vadă clar ce anume modifică şi să primească întotdeauna feedback-ul acţiunii sale. Dacă reuşesc să acopăr aceste cerinţe, mă pot declara mulţumit, chiar dacă pe butoane nu sunt iconuri colorate care să sară-n sus când utilizatorul trece cu mausul peste ele.
Aş fi trăit fericit dacă m-aş fi mulţumit cu atât. Dar n-a fost să fie, pentru că am acceptat cu prea multă uşurinţă să lucrez la o aplicaţie pentru care clientul a dorit cu tot dinadinsul o interfaţă fancy, proiectată de un profesionist. Aşa se face că am devenit robul unui web designer şi mi-am văzut cu tristeţe toate bunele mele principii călcate în picioare. Este poate cea mai frustrantă experienţă pe care o poate trăi un programator: să lucreze sub conducerea unui designer, cu interfaţa pe post de specificaţie. Pentru designer, orice fantezie e permisă, dar fiecare şmecherie de-a lui se traduce în zeci de ore de jonglerii Ajax pentru amărâţii care implementează. Şi cum ziceam, codul nu se vede, designerul se aşteaptă să implementezi la fel de repede cum desenează el iar clientul se indignează că treaba merge prea încet. Pe urmă, apar detalii în care back-end-ul are ceva de spus interfeţei iar designerul este de regulă surd la cerinţele programatorului şi te întreabă cu nonşalanţă de ce-ţi trebuie buton "Save" când adaugi un utilizator? Pentru că până când nu-i înscris în baza de date nu primeşte un cod unic şi nu pot să leg informaţiile conexe. Deh, butonul ăla nu dă bine în peisaj, aşa că trebuie să construieşti o structură complexă în nişte variabile de sesiune, pe care nu prea ştie nimeni când trebuie să o salvezi şi când să o abandonezi. Când utilizatorul părăseşte pagina -- vine soluţia genială a web-designerului. Peste toate astea, interfaţa trebuie să mimeze o interfaţă desktop, pentru că sigla arată cel mai bine lipită de marginea de jos a ecranului, aşa că scroll-ul ferestrei este interzis cu desăvârşire. În schimb toate informaţiile multiple sunt înghesuite în nişte zone meschine, care sunt derulate prin nişte frumoase săgeţi care arată în sus şi-n jos. Alte multe ore de bricolaj JavaScript până să constaţi în machetă toate zonele au acelaşi identificator, care este referit din CSS-ul de 5.000 de linii.
Până acum nu ştiam de ce-mi place atât de mult la Google. Pentru că e simplu, pentru că pe fiecare buton scrie ce trebuie şi pentru că nuanţele unei singure culori sunt suficiente pentru orice interfaţă, fie că este vorba de o simplă căutare, fie de aplicaţii complexe. Şi, culmea, arată foarte bine. Poate că prea puţină lume l-a luat în serios pe Jakob Nielsen, care încă din anii 90 face studii de uzabilitate în web şi constată de fiecare dată că utilizatorii se simt cu atât mai mine cu cât paginile sunt mai simple.