I18n extrem - mai bine rămânem la „lingua franca”
October 6th, 2008 Alex
Link …

După selecție, presupunând că ai selectat din greșeală Chineza, și vrei să reselectezi Engleza …

Off, off.
Posted in design, rant | 1 Comment »
October 6th, 2008 Alex
Link …

După selecție, presupunând că ai selectat din greșeală Chineza, și vrei să reselectezi Engleza …

Off, off.
Posted in design, rant | 1 Comment »
July 4th, 2008 Alex
Vorbeam data trecută despre optimizări. Utilizatorii chiar vor performanță. Personal îmi place Adobe Acrobat, și folosesc versiunea Pro, dar are mici probleme de performanță.
„And lo and behold” utilizatorii se plâng de performanța proastă, mai ales că există alternative, PDF fiind un standard … asta ca să vedeți ca performanța contează.
Dar trecând peste asta … stăteam și mă gândeam la un trend ce-l observ peste tot, și de care sunt în mod egal vinovat … idea că utilizatorii sunt idioți și trebuie îndrumați ca niște copii mici.
Noi, programatorii, suntem o specie aparte de homo-sapiens. Fiind concetrați pe munca noastră, poate prea concentrați, și datorită intensității cu care operăm, să recunoaștem, abilitățile noastre sociale nu reprezintă un punct forte. Poate de aceea ne-am dezvoltat un groaznic complex de superioritate care se manifestă în interacțiunea cu oamenii normali și se vede în ura ce transpiră din unele interfețe la care lucrăm.
Această ură față de oamenii normali vine deasemenea din rivalitatea extremă dintre “tocilari” și vedetele liceului, sau mai târziu dintre programatori și marketroizi. Iar unele motive sunt valide, deoarece nu există glorie în a participa la olimpiade școlare (dar există glorie în a participa la meciuri de fotbal), și profesioniștii în ale marketing-ului se preocupă întotdeauna cu “dorințe” și nu de “nevoi” reale (chiar poți compara șervețelele umede cu Internetul ?), asta ca să nu mai pomenim despre atitudinea urâtă a managerilor față de programatori în companiile ale căror principală sursă de venit nu o reprezintă software-ul.
Programatorii sunt suficient de deștepți și detașați de un status-quo pentru a pune nevoile în fața dorințelor imediate ale utilizatorilor, dar problema este că programatorii sunt suficient de anti-sociali încât să nu cunoască cu adevărat nici dorințele și nici nevoile oamenilor normali. Astfel, cele mai de succes design-uri create vreodată de informaticieni au fost concepute pentru nevoile personale ale creatorilor, și a face presupuneri despre nevoile altor oameni este o aventură periculoasă. Apple este un exemplu perfect, deoarece ei se consideră utilizatorii principali, și produsele reflectă nevoile personale ale designerilor (sau poate doar ale lui Steve Jobs
).
Și ce se întâmplă când arhitecții fac presupuneri despre nevoile altor oameni? Dezastru.
Aș putea vorbi despre Linux, dar este atât de plin de ură față de oamenii normali că nu este nici măcar amuzant. Să luăm ca exemplu sistemul de privilegii din Windows Vista (UAC), care face presupunerea că utilizatorii chiar citesc mesajele de avertizare date la fiecare acțiune potențial periculoasă și că dacă se comportă cum trebuie, UAC îi protejează de mallware. Astfel, dacă utilizatorul nu citește avertismentul și nu se gândește la consecințele acțiunilor sale, apăsând pe “Yes, Allow” … atunci este vina utilizatorului care este doar o maimuță proastă, nu?
Greșit. Creierul uman gândește în șabloane, având o logică inductivă. Doar cu o disciplină extremă și cu efort judicios suntem capabili să gândim deductiv și să formulăm adevăruri absolute în științele formale. Dar pentru nimicuri creierului uman nu prea-i pasă, și orice-ți stă în cale atunci când vrei să-ți termini treaba este doar un surplus ce se vrea a fi automatizat. Astfel că dacă apare un șablon (cum ar fi ferestrele de confirmare) poți extrapola și mai devreme sau mai târziu sistemul nervos autonom intră în acțiune și ajungi să execuți acțiuni în mod mecanic. Sistemul nervos autonom nu este specific uman, el permițând unei creaturi să execute acțiuni fără un control conștient, cum ar fi respirația (vă închipuiți ce s-ar întâmpla dacă nu ar fi așa și ați uita să respirați?).
Ce este specific uman este posibitatea de reprogramare a acestui sistem cum vrem și când vrem (cu un oarecare efort ce-i drept). Astfel suntem născuți cu o frică naturală față de lei care ne determină să fugim în mod automat când vedem unul, dar în același timp ne putem reprograma sistemul nervos pentru a putea tasta eficient, sau pentru a conduce mașini în mod mecanic … și mi se pare minunat. Asta ne face ingenioși … deoarece ne putem depăși limitele.

Orice design de aplicație ce nu ia în calcul acest factor NU este uman.
Cu alte cuvinte, așa cum s-a mai spus, oamenii nu sunt proști, pur și simplu nu au răbdarea și timpul necesar să ocolească problemele unui design prost. Și majoritatea interfețelor au fost create pentru idioți (Google fiind cel mai modern și popular contra-exemplu).
Cu privire la Vista UAC interfața pare bună probabil pe hârtie, deoarece pare OK să reamintești utilizatorului că este mai bine să reflecte asupra acțiunilor sale înainte de a instala BonziBUDDY pe calculator. Dar design-ul este eronat pentru toți utilizatorii, deoarece profesioniștii oricum știu ce fac, dialogul fiind redundant, iar pentru oamenii normali calculatorul este doar o unealtă cu care-ți faci treaba sau cu care te distrezi. Și ce dacă BonziBUDDY va avea acces la proiectele tale și la colecția de fotografii strânsă de 5 ani de zile? … la naiba, ai dat aceleași drepturi și aplicației Adobe Photoshop, care-i problema?!? Da, instalează.

Stricăciunile vor fi vizibile doar după ce ai dat acces, și ghici … sistemul tău nu are un buton de UNDO decât în editoarele de text.
Dacă este ceva de învățat din eșecurile altor oameni ar fi asta … nu paria niciodată împotriva automatizării de care oamenii sunt capabili. Mai departe de atât din punct de vedere al umanității … ne putem imagina o interfață căreia să-i putem vorbi … “computer, fă-mi programare la dentist, miercuri cred, pardon joia viitoare, și trimite-mi o notificare cu două ore înainte, pe mobil, nu pe email“.
Star Trek nu a fost popular degeaba. Într-adevăr se spune că singura interfață intuitivă cu care te naști ar fi țâța mamei, dar dacă analizăm mai atent observăm că limbajul natural ne este întipărit în ADN și copiii învață cu o ușurință fabuloasă limbajul părinților (trebuie doar să vorbești normal prin apropiere, și pot deduce automat semnificația cuvintelor).
Mouse-ul nu este popular degeaba … primul lucru pe care-l învață un copil este să indice cu mâinile către jucăria pe care o vrea. Problema este că nu este scalabil la dorințe mai complexe … și ca să continuăm analogia, ar trebui să lipești hârti cu dorințe posibile către care copilul să indice, problema fiind că suntem oameni și zilnic ne putem gândi la lucruri noi pe care-am vrea să le facem. Mouse-ul este depășit, și am avea nevoie să evoluăm către cuvinte.
Posted in design | 4 Comments »
June 18th, 2008 Alex
Care sunt calitățile elementare ale unei aplicații de succes? Care sunt acele elemente care nu trebuie în nici un caz să lipsească?
Cu siguranță nu poți alcătui o listă completă deoarece nu există rețete tehnice ale succesului bătute în cuie, de multe ori contând enorm și factori externi, și se știe că este nevoie de o atingere de geniu pentru un design reușit. Iar momentan nu pot vorbi de design, deoarece nu am suficientă experiență, deși este un domeniu ce mă interesează. Dar există o temă recurentă … oamenii nu au suficient timp și sunt și leneși, motiv pentru care interfața trebuie gândită pentru a minimiza timpul de folosire a funcționalităților iar timpul de răspuns la interogări trebuie să fie instant.
Premature optimization is the root of all evil.
Donald Knuth a spus asta. Și în general are dreptate, deoarece optimizând local are de suferit calitatea codului și mai mult, arhitectura proiectului. Ori cu o arhitectură bună ai posibilitatea de a observa optimizări globale. Polul opus afirmației respective este la fel de periculos. Nu trebuie să optimizezi prematur, dar trebuie să ai în vedere optimizări pe care le-ai putea face în timp.
În general se poate observa că … dacă aplicația nu este suficient de rapidă, oamenii nu o vor folosi, mai ales în cazul existenței unei alternative mai bune.
Există și un exemplu foarte interesant ce susține această afirmație … Google a făcut acum ceva timp ”a/b testing” cu numărul de rezultate afișate. Practic jumătate din utilizatori primeau zece rezultate afișate pe pagină, în timp ce cealaltă jumătatea primea 30. Și asta deoarece existau clienți ce cereau mai mult de zece rezultate pe pagină. Statisticile au arătat însă că lotul ce primea zece rezultate era mai fericit deoarece calcularea și afișarea a zece rezultate durează cu o fracțiune de secundă mai puțin. Iar pagina de afișare a rezultatelor din Google chiar este optimizată la extrem.
Cine are impresia că performanța aplicațiilor nu mai contează în zilele noastre deoarece procesoarele sunt suficient de rapide … se înșală. Mai ales că în cazul poveștilor de succes în care sunt folosite limbaje de scripting lente … se întâmplă ca gâtuirea performanței să se afle în altă parte (la nivelul SGBD-ului, sau la asamblarea rezultatelor în cazul aplicațiilor distribuite, etc…).
Ca un exemplu de eșec pe partea de desktop ar fi Windows Vista. Cu toate că Vista va fi oricum popular din motive externe, mai ales după al 2-lea sau al 3-lea service pack, unul din defectele principale este performanța proastă, chiar și pe calculatoare foarte bune. Iar efectele grafice accentuează problema, deoarece în loc de un răspuns rapid primești efecte grafice de tranziție care practic nu ajută la nimic. Un alt exemplu de cealaltă parte a baricadei este OpenOffice … sorry, dar atâta timp cât Microsoft Office are un timp de răspuns mai bun (și are), OpenOffice nu are nici o șansă decât pe piața foarte low-end. Când am fost la conferința MySQL am vorbit cu un individ de la SUN despre OpenOffice 3, și sunt oarecum dezamăgit deoarece au îmbunătățit ei un pic arhitectura, fiind mai modulară, dar performanța nu este pe lista priorităților.
Am un proiect personal, și drept calități mi-am propus următoarele:
N-ar trebui să fie greu, nu?
Va urma …
Posted in design, technology | 8 Comments »