Interfejs użytkownika „No matter how cool your interface is, less of it would be better”
3 rodzaje użytkowników Nowicjusze Zaawansowani Eksperci Optymalizuj dla zaawansowanych Model użytkownika <> Model implementacyjny
Projektowanie dla nowicjuszy Nikt nie chce pozostać nowicjuszem Nowicjusz – „Bardzo inteligentny lecz zajęty” – chcą znać cel oraz idiomy Przewodniki Menu Pytania: Jak wydrukować dokument ? Co robi ten program ? Jak zacząć ?
Projektowanie dla ekspertów Skróty klawiszowe Używają rzadko wykorzystywanych funkcji Pytania: Jak to zautomatyzować ? Czy jest do tego skrót ? Czy mogę to zmodyfikować ?
Projektowanie dla zaawansowanych Tooltips Pomoc Rzeczy często używane dobrze widoczne Pytania: Zapomniałem jak się importuje. Oops, czy można to cofnąć ? Przypomnij mi co „to” robi ?
Rodzaje aplikacji Suwerenna (samodzielna) Czasowa Deamoninc ? Pomocniczna
Aplikacja samodzielna Zajmuje cały ekran Często główne narzędzie użytkownika Głównie użytkownicy zaawansowani Wykorzystaj przestrzeń Duża ilość informacji zwrotnej
Aplikacja czasowa Widoczna tylko tymczasowo Prosta Instrukcje wbudowane w wygląd Można użyć jaśniejszych kolorów i większych ikon Zapamiętaj stan
Możliwość a prawdopodobieństwo Projektuj dla przypadków możliwych Wspieraj przypadki prawdopodobne
Reguły Użytkownik zakłada najprostszy możliwy model Nie pytaj użytkownika o rzeczy na których mu nie zależy Używaj metafor Desktop Briefcase ? (zła metafora) Spójność
Reguły cd Użytkownicy nie czytają instrukcji Użytkownicy w sumie w ogóle nie czytają Użytkownicy mają problem z obsługą myszki. Użytkownicy mają problemy z pamięcią
Reguły cd Nie zaczynaj z pustym ekranem Ludzie nie pamiętają znaczenia kolorów Grupuj powiązane ze sobą dane Reguła Millera 7 +/- 2 Program powinien pokazywać swój stan
Reguły cd Unikaj zbędnego raportowania Użytkownicy nie lubią pytań Dialog = pytanie Toolbar = możliwość wyboru Niebezpieczne funkcje powinny być dobrze zabezpieczone Nigdy nie używaj poziomego scrolla
Eliminując nadmiarowość Nie zatrzymuj przepływu z powodu głupot Zezwalaj na wprowadzanie danych w miejscu gdzie je wyświetlasz Nie zmuszaj użytkownika do przejścia do innego okna aby zmienić coś w istniejącym oknie Nie zmuszaj użytkownika do pamiętania gdzie zapisał pliki/dane
Eliminując nadmiarowość Jeśli coś jest warte wprowadzania przez użytkownika, jest warte zapamiętania przez program Zezwalaj na wycofanie się z akcji Okienko dialogowe to inny pokój, miej powód aby do niego iść
Wprowadzanie danych Używaj kontrolek z ograniczeniami Scrollbars Spinners Walidacja aktywna oraz pasywna Aktywna – weryfikacja podczas wprowadzania Pasywna – weryfikacja po zakończeniu wprowadzania Czy wprowadzanie „dziewieć” w kontrolce liczbowej to błąd ?
Komunikaty błędów Błędy zatrzymują działanie programu. Ludzie nie lubią komunikatu o błędach ? Czyją winą jest błąd: Jak ma się zachować program gdy podczas wprowadzania faktury są podane błędne (lub niepełne) dane klienta
Nie każ mi myśleć Ludzie nie czytają stron, oni je skanują Nie szukamy optymalnych rozwiązań, tylko satysfakcjonujących
Projektowanie stron Stwórz oczywistą hierarchię Podziel stronę na dobrze zdefiniowane obszary Rzeczy do kliknięcia powinny być oczywiste Usuń niepotrzebne słowa
Specyficzne cechy WWW Wolna reakcja Aplikacja zachowują się inaczej niż zwykłe strony (np. back) Linki