Często słyszymy w różnego rodzaju wypowiedziach na temat oprogramowania czy sprzętu, że są one "przyjazne dla użytkownika". Cóż to właściwie znaczy? Niestety, wszystko zależy od osoby, która te słowa wypowiada. Jeśli jest to ktoś z działu sprzedaży firmy, która ten produkt stworzyła, to niestety najczęściej nie znaczy to nic. Ale ja chciałbym użyć tego słowa, być może trochę wbrew obiegowemu znaczeniu, do opisania pewnej cechy środowiska pracy (już nie pojedynczego artefaktu, jak w przypadku użyteczności).
Środowisko przyjazne dla użytkownika to takie, w którym się dobrze czujemy. Na to samopoczucie składać się może wiele czynników, ale najważniejsze to:
- Bezpieczeństwo – bez poczucia bezpieczeństwa nie ma mowy o przyjaznym środowisku. Użytkownik nie powinien obawiać się przypadkowego uszkodzenia systemu lub swojej (albo nawet gorzej, nie swojej) pracy, odpowiedzialności finansowej czy społecznej (na przykład ośmieszenia), etc. Wbrew pozorom, potencjalne zagrożenia czają się wszędzie, zapobieganie im jest niełatwe. Poczucie bezpieczeństwa można w oprogramowaniu poprawić między innymi dzięki:
- Niezawodność, brak błędów (oczywiście);
- Możliwość łatwego (nie wymagającego dużo pracy) cofnięcia zmian;
- Łatwość przewidzenia efektów danej czynności;
- Eliminacja czynności wymagających zręczności;
- Unikanie ograniczeń czasowych;
- PokaYoke – takie zaprojektowanie systemu, aby stanów niepożądanych nie dało się nawet osiągnąć;
- Orientacja – wątpliwości, dezorientacja, zagubienie – powodują stres i uniemożliwiają normalne funkcjonowanie. Należy ich unikać, zawsze dostarczając użytkownikowi niezbędnych mu informacji w zrozumiałej i użytecznej dla niego formie. Zawsze powinien on wiedzieć w jakiej jest sytuacji i jakie ma możliwości działania. Orientację użytkownika można poprawić zapewniając:
- Precyzyjne informacje o obecnym stanie systemu;
- Ułatwienia w przewidywaniu jak stan systemu się zmieni;
- Zrozumiały dla użytkownika i widoczny sposób działania;
- Unikanie zbędnych informacji;
- Informowanie o automatycznie wygenerowanych lub zmienionych danych, jeśli są istotne;
- Kontrola – cóż z tego, że jesteśmy bezpiecznie izolowani od wszelkich zagrożeń, jeśli nie mamy nic do powiedzenia? Przyjazne środowisko powinno dawać użytkownikom duży stopień swobody i poczucie kontroli – to człowiek powinien kierować. Kontrolę poprawiają:
- Unikanie automatycznego zmieniania danych wprowadzonych przez użytkownika;
- Pozwolenie na zmianę dowolnych parametrów w dowolnym momencie;
- Elastyczność w zakresie akceptowanych wartości danych – na przykład akceptowanie dat w różnych formatach;
- Nie wymaganie podania wszystkich danych – użycie wartości domyślnych;
- Osiągnięcia – to nagrody dla użytkownika za interakcje z systemem, czy jest to jego praca czy zabawa. Odpowiednie prezentowanie wyników tej interakcji może znacznie zwiększyć satysfakcję użytkownika. Osiągnięcia mogą być zarówno związane z czynnościami, do jakich dane środowisko jest przystosowane (praca, zabawa) jak i z samym środowiskiem (odkrywanie, nauka).
- Wczesne pokazywanie szacowanego wyniku;
- Rozsądne wartości domyślne;
- Środowisko łatwe do odkrywania;
- Konsekwencja, tak by raz odkryte mechanizmy dało się stosować w wielu miejscach;
Należy zauważyć, że system przyjazny dla użytkownika nie zawsze jest bardziej użyteczny czy pożądany. Czasem zadania stawiane przed użytkownikiem zawierają w sobie nieuniknione elementy niebezpieczeństwa, dezorientacji, bezradności czy nudy, czasem też używa się ich dla zapewnienia innych elementów przyjazności, na przykład niebezpieczeństwo może zwiększać satysfakcję z jego przezwyciężenia (gra w której nie da się przegrać może być nudna), a zmniejszenie ilości parametrów kontrolowanych przez użytkownika może zmniejszyć jego dezorientację.
Jednakże zazwyczaj przyjazność pozytywnie wpływa na użyteczność: przyjazne środowisko mniej męczy, pozwala na wydajniejsze działanie, zapewnia lepszą motywację. Dlatego, jeśli tylko nie ma ważniejszych czynników, powinniśmy starać się czynić systemy przyjaznymi.