Joel on Software

Joel on Software Joel despre Software

 

Designul interfetei utilizator pentru programatori
Capitolul 1
Capitolul 2
Capitolul 3
Capitolul 4
Capitolul 5
Capitolul 6
Capitolul 7
Capitolul 8
Capitolul 9

Alte articole din "Joel on Software" in Romaneste

Alte articole din "Joel on Software" in engleza

Scrie-i autorului (numai in engleza)

 

Designul interfetei utilizator pentru programatori
Capitolul 3: Optiuni


De Joel Spolsky
Tradus de catre Cosmin Calian
Aprilie 12, 2000

Cand mergi intr-un restaurant si vezi un semn care zice "Interzis accesul cainilor," te-ai putea gandi ca acel semn este pur prohibitiv: Dl.-ui Restaurant nu ii plac cainii prin preajma, deci cand a construit restaurantul a pus acel semn.

Daca ar fi doar asta, ar fi si un semn "Interzis serpi"; pana la urma, nimanui nu-i plac serpii. Si un semn "Interzis elefanti", pentru ca rup scaunele cand se aseaza.

Adevaratul motiv pentru care semnul e acolo este istoric: e un marcaj istoric care indica faptul ca oamenii incercau sa isi aduca cainii in restaurant.

Cele mai multe semne de interzicere exista pentru ca proprietarii unui local s-au saturat ca lumea sa faca X, si atunci au facut un semn rugandu-i sa nu. Daca mergi intr-unul din acele restaurante vechi de acum cincizeci de ani, ca Yankee Doodle in New Haven, peretii sunt acoperiti cu semne care zic lucruri de genul "Va rugam nu va puneti ruxacul pe tejghea," o dovada antropologica a faptului ca oamenii obisnuiau sa isi puna des ruxacele pe tejghea. Dupa vechimea semnului iti poti da seama cand ruxacele erau la moda in randul studentilor locali. 

Uneori sunt mai greu de descifrat. "Va rugam nu aduceti butelii de sticla in parc" trebuie sa insemne ca cineva s-a taiat vreodata calcand pe sticla sparta in timp ce umbla descult prin iarba, si mai mult ca sigur a dat in judecata primaria.

Software-ul de asemenea are o astfel de urma arheologica: se numeste dialogul Options. Intra in meniul Tools | dialogul Options si vei vedea o istorie a neintelegerilor pe care designerii software le-au avut despre designul produsului. Ar trebui sa deschidem automat ultimul fisier la care utilizatorul a lucrat? Da! Nu! Urmeaza o dezbatere de doua saptamani, nimeni nu vrea sa supere pe nimeni, programatorul pune un #ifdef pentru autoaparare in timp ce designerii se lupta. Pana la urma decid sa faca o optiune.

Nici macar nu trebuie sa fie o discutie intre doi oameni: poate fi o dilema interna. Nicicum nu pot decide daca ar trebui sa optimizam baza de date pentru marime sau pentru viteza. In orice caz, lucrurile se sfarsesc in ceea ce este unechivoc cel mai tampit dialog "wizard" din istoria sistemului de operare Windows. Dialogul acesta este atat de prost incat merita un fel de premiu. O noua categorie de premiu. Este dialogul care apare cand incerci sa gasesti ceva in Help:

Prima problema cu acest dialog este ca iti distrage atentia. Tu incerci sa gasesti ajutor in fisierul Help. Nu-ti pasa nici cat negru sub unghie, in acel moment, daca baza de date este mica, mare, optimizata sau glazurata cu ciocolata. Intre timp, acest dialog pacatos iti da tie mici lectii pedante despre faptul ca el trebuie sa creeze o lista (sau o baza de date). Sunt cam trei paragrafe acolo, din care cea mai mare parte sunt complet confuze. E expresia dureros de inutila "fisierul(ele) tale de ajutor". Vezi tu, s-ar putea sa ai unul sau mai multe fisiere. De parca iti pasa in acel moment ca ar putea exista mai mult de unul. Ca si cum ar face cea mai mica diferenta. Dar programatorul care a lucrat la acel dialog era evident extrem de preocupat de posibilitatea de a exista mai mult de un fisier de help si ar fi incorect sa spuna fisierul de help. Nu-i asa?

Nici macar nu ma face sa incep sa vorbesc, despre cum, cei mai multi oameni care vor sa ajute, nu sunt tipul de oameni care inteleg aceste feluri de subtilitati. Sau chiar despre faptul ca utilizatori avansati, programatori cu doctorat in stiinta calculatoarelor care stiu totul despre indecsi text, nu ar fi in capabili sa inteleaga de fapt ce li se cere sa aleaga.  

Pentru a face situatia si mai neplacuta, acesta nici macar nu e un dialog... e un  wizard (a carui pagina secunda doar spune ceva de genul "multumesc ca te-ai supus singur la aceasta pierdere de timp inutila," ca sa parafrazez). Si e destul de evident ca designerii aveau oarecare idei despre care alegere ar fi cea mai buna; pana la urma, au ajuns la tampenia de a recomand una din acele optiuni.

Ceea ce ne conduce la a doua regula majora a designului interfetelor utilizator:

De fiecare data cand furnizezi o optiune, ii ceri utilizatorului sa ia o decizie.

Cerindu-i utilizatorului sa ia o decizie nu este in sine un lucru rau. Libertatea de alegere poate fi minunata. Oamenilor le place sa comande bauturi bazate pe espresso la Starbucks pentru ca trebuie sa faca multe alegeri. O mocha-mare-jumatate-cofeinizata-dietetica-Valencia-cu-frisca. Extra fierbinte!

Problema apare cand le ceri sa faca o alegere despre care nu le pasa . In cazul fisierelor de help, oamenii se uita in help pentru ca au probleme in a finaliza ceva ce intr-adevar vreau sa finalizeze, cum ar fi crearea unei invitatii la o zi de nastere. Sarcina invitatiei la ziua de nastere a fost din pacate intrerupta pentru ca nu isi pot da seama cum sa tipareasca baloanele cu capul in jos, sau ceva de genul, si vor deschide fisierul de help.  Acum, un oarecare programator-de-help-index-engine enervant de la Microsoft cu o idee exagerat de buna despre importanta sa in intreaga schema de lucruri are  tupeul, the neobrazarea, sa intrerupa utilizatorul inca odata si sa inceapa sa il invete lucruri despre crearea listelor(sau a bazelor de date). Acest nivel de intrerupere secund nu tine deloc de invitatii la ziua de nastere, si e doar garantat ca va nedumeri si pana la urma enerva utilizatorul.

Si crede-ma, utilizatorilor le pasa despre mult mai putine lucruri decat ai putea crede. Ei folosesc software-ul tau pentru a finaliza o sarcina. Lor le pasa de sarcina. Daca e un program grafic, probabil doresc sa poata controla fiecare pixel la cel mai fin nivel de detaliu. Daca e un program pentru crearea unui web site, poti fi sigur ca sunt obsedati in a face web site-ul sa arate exact cum vor ei sa arate.

In orice caz, nu le pasa catusi de putin daca toolbar-ul programului este in partea de sus sau in partea de jos a ferestrei. Nu le pasa cum sunt indexate fisierele de help. Nu le pasa despre o multime de lucruri, si este responsabilitatea designerilor sa faca aceste alegeri, astfel incat utilizatorii sa nu mai trebuiasca sa le faca. E culmea arogantei pentru un designer software sa impuna o alegere ca aceasta utilizatorului doar pentru ca designerul software nu a putut gandi suficient pentru a decide ce optiune e intr-adevar mai buna. (E si mai rau cand incerci sa ascunzi faptul ca ii oferi utilizatorul o alegerea dificila, convertind dialogul intr-un wizard, cum au facut oamenii de la WinHelp. Ca si cum utilizatorul ar fi un tampit care ar fi avut nevoie sa ia un mini-curs in doi pasi pentru optiunile care ei le ofera, astfel pot lua o decizie competenta.)

Se zice ca designul este arta de a  face alegeri. Cand proiectezi un cos de gunoi pentru un colt de strada, trebuie sa faci alegeri intre cerinte conflictuale. E nevoie sa fie greu incat vantul sa nu il duca. E nevoie sa fie usor incat gunoierul sa il poata goli. E nevoie sa fie mare incat sa poata tine mult gunoi. E nevoie sa fie mic incat sa nu incurce circulatia oamenilor pe trotuar. Cand proiectezi si renunti la responsabilitatea ta fortandu-l pe utilizator sa decida ceva, probabil ca nu iti faci treaba. Altcineva va face un program mai simplu care face acelasi lucru cu mai putine intreruperi, si cei mai multi utilizatori il vor indragi.

Cand Microsoft Excel 3.0 a aparut in 1990, era prima aplicatie care avea o noua functionalitate numita toolbar. Era o functionalitate practica, oamenilor le-a placut, si toata lumea a copiat-o -- in asa masura incat e neobisnuit sa mai vezi o aplicatie fara toolbar.

Toolbar-ul a avut un asemenea succes incat echipa Excel a facut cercetare in acest domeniu folosind o versine speciala de Excel pe care au distribuit-o la cativa oameni; aceasta versiune mentinea statistici despre care erau cele mai frecvent folosite comenzi si erau raportate inapoi la Microsoft. Pentru urmatoarea versiune, au adaugat  inca un rand de butoane in toolbar, de aceasta data continand cele mai frecvent folosite comenzi. Foarte bine.

Problema a fost, ca nu s-a ajuns niciodata la desfintarea echipei toolbar, care nu parea sa stie ca un lucru bine facut trebuie lasat in pace. Vroiau sa poti configura toolbarul. Vroiau sa poti muta toolbarul oriunde pe ecran. Apoi, au inceput sa se gandeasca cum de fapt meniul e doar un toolbar glorificat cu cuvinte in loc de icoane, astfel te lasa sa muti si meniul oriunde pe ecran. Configurabilitate cu steroizi. Problema: nimanui nu-i pasa! N-am intalnit niciodata pe cineva care ar vrea sa aiba meniul in alt loc decat in partea de sus a ferestrei. Dar aici e poanta (proasta): daca incerci sa accesezi meniul File, si il prinzi accidental putintel mai departe la stanga, disloci meniul, tragandu-l in singurul loc in care nu ai vrea sa fie: blocand documentul la care lucrezi.

De cate ori ai vazut  asta? Si odata ce ai facut-o din greseala, nu e clar ce ai facut sau cum s-o repari. Astfel, aici avem o optiune (mutatul meniului) care nimeni nu o doreste (ok, poate 0.1% din toti oamenii o doresc) dar care incurca aproape pe toata lumea.

Intr-o zi o prietena m-a sunat. Avea dificultati la trimiterea emailului. Jumatate de ecran era gri, zicea ea. 

Jumatate de ecran era gri?

Mi-a luat cinci minute la telefon sa imi dau seama ce s-a intamplat. Accidental, a tras de toolbarul Windows spre partea dreapta a ecranului, apoi accidental l-a latit:

Asta e genul de lucru pe care nimeni nu il face intentionat. Si exista o multime de utilizatori care nu pot iesi din astfel de incurcaturi; prin definitie, cand reconfigurezi accidental una din optiunile programului tau, nu stii cum sa o re-reconfigurezi. E destul de socant cati oameni isi dezinstaleaza si apoi reinstaleaza software-ul cand lucrurile incep sa se comporte eronat, pentru ca cel putin asta o stiu face. (Au invatat sa dezinstaleze mai intai, deoarece altfel, configurarile gresite vor fi restaurate probabil).

"Dar stai!" zici. "E important sa ai optiunile pentru utilizatori avansati care doresc sa isi ajusteze mediul!" In realitate, nu-i atat de important pe cat ai crede. Asta imi aminteste de cand am incercat sa folosesc o tastatura Dvorak. Problema a fost ca nu utilizez un calculator. Folosesc tot felul de calculatoare. Folosesc calculatoarele altor oameni. Folosesc destul de regulat trei calculatoare acasa si trei la servici. Folosesc calculatoarele in laboratorul de testare la servici. Problema cu configurarea mediului este ca nu se propaga, deci nici macar nu merita osteneala.

Cei mai multi din utilizatorii avansati folosesc in mod regulat cateva calculatoare; isi fac upgrade la calculator odata la cativa ani, isi reinstaleaza sistemul de operare din trei in trei saptamani. E adevarat ca prima data cand si-au dat seama ca poti sa iti remapezi complet tastatura in Word, au schimbat totul pentru a le fi aproape de preferinte, dar deindata ce au facut upgrade la Windows 95, acele setari s-au pierdut si nu erau la fel cu cele de la servici, iar in cele din urma au renuntat sa reconfigureze lucrurile. Am intrebat pe o multime de prieteni, utilizatori avansati despre asta; cu greu isi face vre-unul din ei vreo alta configurare decat minimul necesar pentru a-si face sistemul sa se comporte rezonabil.

De fiecare data cand furnizezi o optiune, ceri utilizatorului sa ia o decizie. Asta inseamna ca vor trebui sa se gandeasca la ceva si sa ia o decizie in legatura cu asta. Nu-i neaparat un lucru rau, dar, in general, ar trebui intodeauna sa incerci sa minimizezi numarul de decizii pe care oamenii trebuie sa le ia.

Asta nu inseamna eliminarea tuturor optiunilor. Sunt destule alegeri care utilizatorii vor fi nevoiti sa le faca oricum: felul cum va arata documentul lor, felul cum site-ul lor de web se va comporta, sau orice altceva ce e strans legat de ce face utilizatorul. In zona asta, fa-ti de cap:  e minunat sa le dai optiuni oamenilor: in toate modurile posibile, cu cat mai multe cu atat mai bine. Si mai exista inca o categorie de optiuni care place oamenilor: posibilitatea de a schimba aspectul vizual al lucrurilor, fara a schimba in vre-un fel comportamentul. Tuturor le plac skin-urile WinAmp-ului; toata lumea isi seteaza pe background-ul monitorului o imagine. Din moment ce optiunea afecteaza aspectul vizual fara a afecta nimic din functionalitate, si din moment ce utilizatorii sunt liberi sa ignore aceasta optiune si sa isi faca oricum treaba, asta este o buna utilizare a optiunilor.



> Capitolul 4

Acest articol a aparut initial in engleza cu numele User Interface Design for Programmers Chapter 3: Choices  

Joel Spolsky este fondatorul Fog Creek Software, o mica firma de software din New York City. El a absolvit Universitatea Yale si a lucrat ca programator si manager la Microsoft, Viacom si Juno.


Continutul acestor pagini reprezinta opinia unei singure persoane.
Tot continutul Copyright ©1999-2005 de Joel Spolsky. Toate Drepturile Rezervate.

FogBUGZ | CityDesk | Fog Creek Software | Joel Spolsky