Proiectând pentru utilizatori - interfete
Proiectarea dirijata de scop
Putinul software care este proiectat constiincios este, de obicei, proiectat din punctul de vedere al programatorului, uneori si din punctul de vedere al departamentului de marketing si ocazional din punctul de vedere al utilizatorului. Dar nici unul dintre aceste puncte de vedere nu reflecta scopurile, tinta utilizatorului.
În timp ce job-ul utilizatorului este sa se focalizeze pe task-uri, jobul proiectantului este sa caute în functie de task, pentru a identifica scopurile utilizatorului. În aceasta consta cheia crearii celor mai eficiente solutii software.
Un bun proiectant software trebuie sa fie atent, sensibil la scopurile utilizatorului prevenind astfel haosul din procesul de dezvoltare software.
1.1.Scopurile utilizatorului
Scopurile utilizatorului sunt destul de diferite ce ceea ce am putea ghici noi ca sunt. Un functionar se concentreaza asupra unor scopuri ca: sa nu para stupid, sa nu faca greseli mari, sa efectueze un volm adecvat de munca, sa se amuze (sau cel putin sa nu para a fi prea plictisit). Daca unii au aspiratii mai înalte acestea 656e47g sunt mai mult personale: sa fiu cel mai bun în ceea ce fac, sa ajung repede pe lista si sa câstig marea promovare, sa învat tot ceea ce se cunoaste despre acest domeniu, sa fiu un monument de modestie, etica si încredere.
Multe dintre cartile despre interfetele utilizator presupun ca scopurile acestuia au de-a face cu scopul de business al programului. Însa un software proiectat pentru a îndeplici strict scopul business-ului va esua, daca este proiectat având în minte scopurile personale ale utilizatorului va atinge si scopurile sale de business. Daca examinam cel mai comercial software disponibil în prezent constatam ca interfetele utilizator sunt în particular adepte ale câtorva elemente: sa faca utilizatorul sa para stupid, sa provoace utilizatorul sa faca greseli mari, sa încetineasca ritmul utilizatorului astfel încât acesta sa nu poata obtine un volum de munca adecvat, sa previna veselia si sa plictiseasca utilizatorul.
Pentru a crea software care sa aiba succes, sa fie eficient, trebuie sa urmarim ca el sa îndeplineasca scopurile utilizatorului. Nu putem evident ignora tehnologia sau task-urile.În continuare vor fi date câteva exemple de rezultate focalizate pe tehnologie si task-uri în loc de utilizator si scopurile acestuia.
Frecvent software-ul presupune ca utilizatorul este as in domeniul calculatoarelor, ex. - utilizatorul termina de editat un document îl închide iar programul îl întreaba daca doreste sa îl salveze; tehnologia din spatele acestei solicitari tine de abilitatea CPU-ului de a adresa direct informatia stocata, cu schimbul, în memorie, dar de unde sa stie un utilizator novice aceasta
software-ul interogheaza utilizatorul si sunt întrebari la care acesta nu are nici înclinatia si nici nu este pregatit sa raspunda - De ce ai ascuns acest fisier ? Care linie de cerere de ntrerupere este libera? Pentru utilizator fiind foarte dificil sa se concentreze când este bombardat prin întreruperi de confirmare ex. - Esti sigur ? Chiar vrei sa stergi acel fisier sau ai alte motive pentru a apasa tasta <Delete>?
programele exprima un jargon care nu poate fi inteles de catre utilizatorii obisnuiti - How many stop bits? - iar uneori chiar de catre cei experti - Please specify IRQ.
caracteristicile sunt ascunse în spatele unui voal de meniuri, casete de dialog, ferestre, iar utilizatorul de unde sa stie ca raspunsurile se afla în help-ul sistem daca el nu stie sa ajunga la acest help
adesea programele contin la vedere" instructiuni periculoase putând fi actionate accidental si speriind utilizatorii nepreveniti
1.2.Esenta proiectarii interfetelor utilizator
Singurul test adevarat al calitatii unei interfete utilizator este în context. Cum va fi folosit software-ul Cine îl va utiliza ? Cât de frecvent ? Pentru cât timp ? Cât de importante sunt consideratiile privind integritatea datelor ? Ce-i cu învatarea ? Portabilitatea ? Raspunsurile variaza de la o aplicatie la alta.
Primul task al unui proiectant software este de a cauta si de a gasi raspunsurile la aceste întrebari la sau la alte întrebari centrate pe utilizator. Factorul principal pe care trebuie sa îl urmarim este reprezentat mereu de scopurile, tinta utilizatorului
Usurinta de învatare este de asemenea importanta, deoarece ea afecteaza starea de multumire si în final are efect asupra randamentului. Volumul procesului este solicitarea dominanta plasata în sistem si daca este necesar usurinta de învatare trece pe locul doi.
Ideea este ca o proiectare buna face utilizatorul mai eficient. Aceasta ia în considerare scopul universal de a nu fi stupid, precum si orice scop particular de business sau usurinta de utilizare care este relevanta. Ţine de proiectant sa determine modul în care se manifesta eficienta în functie de circumstante.
O mare parte din software-ul pe care îl utilizam în prezent pe PC-urile noastre este mai degraba centrat pe caracteristici (feature centered) si nu centrat pe scop (goal centered). Un program asa de raspândit ca Microsoft Word for Windows ne ofera sute de functii - formatare paragrafe, inserare câmpuri, vizualizare si previzualizare imagini, configurare toolbar-uri, dar nici una dintre ele nu este centrata pe scop. De exemplu daca dorim sa scriem o scrisoare programul vine cu un template tipic pentru o scrisoare de business dar ce ne facem daca dorim sa scriem o scrisoare personala . discutie.
Proiectarea dirijata de scop constrânge pe oricine si majoritatea tipurilor de programatori, au tendinta de a gândi în termeni de functii si caracteristici. Este cât se poate de natural dat fiind modul în care este construit software-ul functie cu functie. Elaboratorii sunt în mod frecvent frustati de aceasta din moment ce li se cere sa gândeasca într-un stil nefamiliar lor.
Totusi proiectarea dirijata de scop este un avantaj fiind un puternic instrument pentru a raspunde la majoritatea întrebarilor importante ce se ivesc în faza de proiectare:
care trebuie sa fie forma programului ?
cum va interactiona utilizatorul cu programul ?
cum pot fi organizate mai eficient functiile programului ?
cum se va prezenta programul pentru prima data utilizatorilor ?
cum poate programul sa rezolve problemele ?
cum va ajuta programul pe utilizatorii ocazionali sa devina experti ?
cum poate programul sa furnizeze suficienta profunzime pentru utilizatorii experti ?
Design Software - terminologie
Referitor la terminologia corecta pentru a face referire la cei care proiecteaza software exista o oarecare confuzie.
Termenul de arhitect
software este bun daca facem
analogia cu arhitectii de cladiri. Acest termen însa a fost
atribuit inginerilor software cei care construiesc interiorul sistemului de
calcul. Termenul de software designer este cel utilizat inclusiv de catre
Design-ul software este acea etapa din procesul de dezvoltare care este responsabila cu determinarea modului în care programul va realiza scopurile utilizatorului. Întrebarile la care trebuie sa raspunda în aceasta faza le include pe urmatoarele:
ce va face programul software
cum va arata el ?
cum va comunica cu utilizatorul ?
Un alt grup în continua crestere ai caror membrii se autointituleaza profesionisti ai abilitatii de utilizare si sunt persoane ce nu provin neaparat din rândul programatorilor, dar se specializeaza în a studia cum va reactiona lumea cu software-ul. Ei organizeaza interviuri si se centreza pe grupuri de utilizatori observându-i atent cum folosesc software-ul evaluând apoi calitatea interfetelor utilizator si facând recomandari.
O alta disciplina numita diversificat human factors engineering sau human computer interaction respectiv ergonomie vizeaza comportarea oamenilor în interactiunea cu calculatoarele si alte obiecte tehnologice.
O alta specialitate
academica în crestere este psihologia
cognitiva, popularizata la Universitatea din
Modele
Metoda curenta privind modalitatea în care lucreza un dispozitiv este ceea ce numim modelul de implementare.
Modelul mental al utilizatorului sau uneori modelul conceptual este diferit de cel de implementare si este reprezentat de modul în care îsi imagineaza utilizatorul functionarea unui dispozitiv.
Modelul manifest, el reprezentând modalitatea prin care programul îsi prezinta functionalitatea fata de utilizator.
Cu cât modelul manifest este mai aproape de modelul mental al utilizatorului, cu atât acestuia îi va fi mai usor sa afle cum sa utilizeze si sa înteleaga programul.Abilitatea de a croi modelul manifest este o puternica pârghie pe care proiectantul software o poate utiliza. Un model mental nu trebuie sa fie neaparat adevarat sau exact ci sa permita utilizatorului sa lucreze eficient cu procesul modelat.
Deoarece de multe ori interfetele software sunt proiectate de ingineri care stiu exact cum lucreaza acesta, rezultatul este un software cu un model manifest foarte consistent cu modelul sau de implementare.Este logic si adevarat dar nu si eficient. Întelegerea modului în care software-ul lucreaza îl va ajuta întotdeauna pe cel care îl utilizeaza doar ca aceasta întelegere are un cost semnificativ. Modelul manifest permite creatorilor de software sa rezolve problema simplificând modalitatea aparenta în care software-ul lucreaza. Interfetele utilizator care abandoneaza modelul de implementare pentru a urma cât mai îndeaproape modelele mentale sunt mult mai bune.
Proiectantul de interfete trebuie sa protejeze utilizatorul de modelele de implementare pe care inginerul software le utilizeaza pentru a rezolva problemele interne ale software-ului. Majoritatea structurilor de date si algoritmilor utilizati pentru a reprezenta si manipula informatii în software sunt instrumente logice bazate pe modele matematice. Toti programatorii sunt influentati în aceste modele ei rezolva probleme de programare gândind matematic, ca umare ei vad aceste modele matematice ca fiind termenii cei mai potriviti pentru inventarea interfetelor utilizator.
Utilizatorului nu îi pasa în mod curent de modul în care este implementat programul. Îi pasa însa de orice problema apare datorita diferentelor dintre modele însa diferenta în sine nu prezinta nici un interes în particular.
|