Niektórzy z nas mają trudności z bardziej miękkimi aspektami projektowania interfejsu użytkownika ( szczególnie ja ). Czy „kodery zaplecza” skazane są wyłącznie na projektowanie logiki biznesowej i warstw danych? Czy jest coś, co możemy zrobić, aby ponownie przeszkolić nasz mózg, aby był bardziej skuteczny w projektowaniu przyjemnych i użytecznych warstw prezentacji?
Koledzy polecili mi kilka książek, w tym Projektowanie witryn , Nie każ mi myśleć i Dlaczego oprogramowanie jest do kitu , ale zastanawiam się, co inni zrobili, aby usunąć swoje braki w tym obszarze?
user-interface
Chris Ballance
źródło
źródło
Odpowiedzi:
Pozwól, że powiem to bezpośrednio:
Poprawa tego nie zaczyna się od wytycznych. Zaczyna się od zmiany sposobu myślenia o oprogramowaniu.
Większość hardkorowych programistów praktycznie nie ma empatii wobec użytkowników swojego oprogramowania. Nie mają pojęcia, jak myślą użytkownicy, jak budują modele oprogramowania, z którego korzystają i jak ogólnie korzystają z komputera.
Jest to typowy problem, kiedy ekspert zderza się ze świeckimi: jak, u licha, normalna osoba może być tak głupia, aby nie rozumieć, co ekspert rozumiał 10 lat temu?
Jednym z pierwszych faktów, które potwierdzają, że jest niewiarygodnie trudne do zrozumienia dla prawie wszystkich doświadczonych programistów jest:
Normalni ludzie mają znacznie inną koncepcję oprogramowania niż ty. Nie mają pojęcia o programowaniu. Żaden. Zero. I nawet ich to nie obchodzi. Nawet nie myślą, że muszą się tym przejmować. Jeśli je zmusisz, usuną Twój program.
To jest niewiarygodnie trudne dla programisty. Jest dumny z oprogramowania, które produkuje. Uwielbia każdą funkcję. Może dokładnie powiedzieć, jak działa kod, który za tym stoi. Może nawet wynalazł niewiarygodny sprytny algorytm, dzięki któremu działał o 50% szybciej niż wcześniej.
A użytkownik nie dba o to.
Co za idiota.
Wielu programistów nie znosi pracy z normalnymi użytkownikami. Wpada w depresję z powodu nieistniejącej wiedzy na temat technologii. I dlatego większość programistów boi się i uważa, że użytkownicy muszą być idiotami.
Oni nie są.
Jeśli programista kupi samochód, oczekuje, że będzie on działał płynnie. Zazwyczaj nie dba o ciśnienie w oponach, o mechaniczne dostrajanie, które było ważne, aby działało w ten sposób. Oto on nie ekspert. A jeśli kupi samochód, który nie ma dostrojenia, oddaje go i kupuje taki, który robi to, co chce.
Wielu programistów lubi filmy. Dobrze wykonane filmy, które pobudzają ich wyobraźnię. Ale nie są ekspertami w produkcji filmów, w tworzeniu efektów wizualnych ani w pisaniu dobrych scenariuszy filmowych. Większość kujonów jest bardzo, bardzo, bardzo zła w działaniu, ponieważ chodzi tu o pokazanie złożonych emocji, a mało o analitykę. Jeśli deweloper ogląda zły film, po prostu zauważa, że jest on zły jako całość. Nerdowie nawet zbudowali IMDB, aby zbierać informacje o dobrych i złych filmach, aby wiedzieli, które oglądać, a których unikać. Ale nie są ekspertami w tworzeniu filmów. Jeśli film jest zły, nie przejdą do niego (lub nie pobiorą go z BitTorrent;)
Sprowadza się to więc do: unikanie zwykłych użytkowników jako ekspertów to ignorancja. Ponieważ w tych obszarach (a jest ich tak wiele), w których nie są ekspertami, oczekują, że eksperci z innych obszarów już pomyśleli o normalnych ludziach, którzy korzystają z ich produktów lub usług.
Co możesz zrobić, aby temu zaradzić? Im bardziej jesteś programistą, tym mniej będziesz otwarty na normalne myślenie użytkownika. Będzie wam obca i nieświadoma. Pomyślicie: nie wyobrażam sobie, jak ludzie mogliby kiedykolwiek korzystać z komputera z takim brakiem wiedzy. Ale mogą. Pomyśl o każdym elemencie interfejsu: czy jest to konieczne? Czy pasuje do koncepcji mojego narzędzia użytkownika? Jak sprawić, by zrozumiał? Przeczytaj o użyteczności do tego, istnieje wiele dobrych książek. To także cała dziedzina nauki.
Ach i zanim to powiesz, tak, jestem fanem Apple;)
źródło
Projektowanie interfejsu użytkownika jest trudne
Do pytania:
Spróbuj zadać odwrotne pytanie:
Kodowanie interfejsu użytkownika i projektowanie interfejsu wymaga różnych umiejętności i odmiennego sposobu myślenia. Projektowanie interfejsu użytkownika jest trudne dla większości programistów, a nie dla niektórych programistów, podobnie jak pisanie kodu jest trudne dla większości projektantów, a nie niektórych projektantów.
Kodowanie jest trudne. Projekt jest również trudny. Niewielu ludzi dobrze sobie radzi. Dobrzy projektanci interfejsu użytkownika rzadko piszą kod. Mogą nawet nie wiedzieć jak, ale nadal są dobrymi projektantami. Dlaczego więc dobrzy programiści czują się odpowiedzialni za projektowanie interfejsu użytkownika?
Wiedza na temat projektowania interfejsu użytkownika sprawi, że będziesz lepszym programistą, ale to nie znaczy, że powinieneś być odpowiedzialny za projektowanie interfejsu użytkownika. Odwrotna sytuacja dotyczy projektantów: umiejętność pisania kodu sprawi, że będą lepszymi projektantami, ale to nie znaczy, że powinni być odpowiedzialni za kodowanie interfejsu użytkownika.
Jak poprawić projektowanie interfejsu użytkownika
Dla programistów, którzy chcą ulepszyć projektowanie interfejsu, mam 3 podstawowe porady:
Oto kilka konkretnych rzeczy, których możesz się nauczyć. Nie próbuj się wszystkiego uczyć . Jeśli wiedziałeś wszystko poniżej, możesz nazwać się projektantem interakcji lub architektem informacji. Zacznij od rzeczy w górnej części listy . Skoncentruj się na konkretnych koncepcjach i umiejętnościach. Następnie zejdź na dół i rozgałęź się. Jeśli naprawdę lubisz te rzeczy, rozważ to jako ścieżkę kariery. Wielu programistów przechodzi do zarządzania, ale projektowanie UX to kolejna opcja.
Dlaczego projektowanie interfejsu użytkownika jest trudne
Dobry projekt interfejsu użytkownika jest trudny, ponieważ wymaga 2 bardzo różnych umiejętności:
To zasadnicza różnica między tymi 2 grupami - między programistami i projektantami:
Co więcej, programowanie i projektowanie wymagają różnych sposobów myślenia , a nie tylko innej wiedzy i różnych umiejętności. Dobry projekt interfejsu użytkownika wymaga obu sposobów myślenia, obu baz wiedzy, obu grup umiejętności. I opanowanie jednego z nich zajmuje lata.
Programiści powinni spodziewać się trudności w projektowaniu interfejsu użytkownika, podobnie jak projektanci interfejsu powinni mieć trudności z pisaniem kodu.
źródło
To, co naprawdę pomaga mi ulepszyć mój projekt, to złapanie innego programisty, jednego z kierowników ds. Kontroli jakości, premiera lub kogokolwiek, kto akurat przechodzi obok i każe im wypróbować określony widżet lub ekran.
To niesamowite, co uświadomisz sobie, gdy zobaczysz, jak ktoś inny używa Twojego oprogramowania po raz pierwszy
źródło
Ostatecznie tak naprawdę chodzi o empatię - czy możesz postawić się w sytuacji użytkownika?
Jedną rzeczą, która pomaga, oczywiście, jest „zjedzenie własnego jedzenia dla psów” - samodzielne korzystanie z aplikacji jako prawdziwy użytkownik i sprawdzanie, co jest denerwujące.
Innym dobrym pomysłem jest znalezienie sposobu na obejrzenie prawdziwego użytkownika za pomocą aplikacji, który może być tak skomplikowany jak laboratorium użyteczności z lustrami w jednym kierunku, przechwytywaniem wideo na ekranie, kamerami wideo na użytkownikach itp., Lub może być tak proste jako papierowe prototypowanie przy użyciu następnej osoby, która akurat idzie korytarzem.
Jeśli wszystko inne zawiedzie, pamiętaj, że prawie zawsze lepiej jest, aby interfejs użytkownika był zbyt prosty niż zbyt skomplikowany. Bardzo łatwo jest powiedzieć „och, wiem, jak to rozwiązać, po prostu dodam pole wyboru, aby użytkownik mógł zdecydować, który tryb woli”. Wkrótce twój interfejs użytkownika jest zbyt skomplikowany. Wybierz tryb domyślny i ustaw preferencje jako opcję zaawansowanej konfiguracji. Lub po prostu to pomiń.
Jeśli dużo czytasz o projektowaniu, możesz łatwo rozłączyć się z upuszczonymi cieniami i zaokrąglonymi narożnikami i tak dalej. To nie jest ważne. Ważna jest prostota i wykrywalność.
źródło
W przeciwieństwie do popularnego mitu, dosłownie nie ma żadnych miękkich aspektów w projektowaniu interfejsu użytkownika, a przynajmniej nie więcej niż jest to potrzebne do zaprojektowania dobrego zaplecza.
Rozważ następujące; dobry projekt zaplecza oparty jest na dość solidnych zasadach i elementach, które każdy dobry programista zna:
niskie sprzęgło
wysoka spójność
wzory architektoniczne
najlepsze praktyki branżowe
itp
Dobry projekt zaplecza zwykle powstaje w wyniku szeregu interakcji, w których na podstawie mierzalnych informacji zwrotnych uzyskanych podczas testów lub rzeczywistego użytkowania początkowy plan jest stopniowo ulepszany. Czasami trzeba prototypować mniejsze aspekty zaplecza i testować je w izolacji itp.
Dobry projekt interfejsu użytkownika opiera się na solidnych zasadach:
widoczność
afordancja
sprzężenie zwrotne
tolerancja
prostota
konsystencja
Struktura
Interfejs użytkownika rodzi się również poprzez testy i próby, poprzez iteracje, ale nie z kompilatorem + automatycznym zestawem testowym, ale z ludźmi. Podobnie jak zaplecze, istnieją najlepsze praktyki branżowe, techniki pomiaru i oceny, sposoby myślenia o interfejsie użytkownika i wyznaczania celów w zakresie modelu użytkownika, obrazu systemu, modelu projektanta, modelu strukturalnego, modelu funkcjonalnego itp.
Zestaw umiejętności potrzebnych do projektowania interfejsu użytkownika różni się znacznie od projektowania zaplecza i dlatego nie należy oczekiwać, że będzie w stanie zrobić dobry interfejs bez wcześniejszej nauki. Jednak oba te działania łączy wspólny proces projektowania. Uważam, że każdy, kto potrafi zaprojektować dobre oprogramowanie, jest w stanie zaprojektować dobry interfejs użytkownika, o ile poświęci trochę czasu na naukę tego.
Polecam wziąć udział w kursie interakcji człowiek-komputer, sprawdź na przykład MIT i witrynę Yale, aby znaleźć materiały online:
Model strukturalny a funkcjonalny w zrozumieniu i użyciu
Znakomity wcześniejszy post Thorsten79 porusza temat ekspertów tworzących oprogramowanie w porównaniu z użytkownikami oraz różnic w ich rozumieniu oprogramowania. Eksperci od uczenia się ludzi rozróżniają funkcjonalne i strukturalne modele mentalne. Znalezienie drogi do domu twojego przyjaciela może być doskonałym przykładem różnicy między nimi:
Pierwsze podejście obejmuje zestaw szczegółowych instrukcji: pierwszy zjazd z autostrady, a następnie po 100 metrach skręć w lewo itp. To jest przykład modelu funkcjonalnego: lista konkretnych kroków niezbędnych do osiągnięcia określonego celu. Modele funkcjonalne są łatwe w użyciu, nie wymagają wiele myślenia, a jedynie proste wykonanie. Oczywiście za prostotę grozi kara: może to nie być najbardziej wydajna trasa, a każda wyjątkowa sytuacja (np. Zmiana kierunku ruchu) może łatwo doprowadzić do całkowitej awarii.
Innym sposobem radzenia sobie z zadaniem jest zbudowanie strukturalnego modelu mentalnego. W naszym przykładzie byłaby to mapa, która przekazuje wiele informacji o wewnętrznej strukturze „obiektu zadania”. Ze zrozumienia mapy i względnych lokalizacji domu naszego i przyjaciela możemy wywnioskować model funkcjonalny (trasę). Oczywiście wymaga to większego wysiłku, ale o wiele bardziej niezawodny sposób wykonania zadania, pomimo możliwych odchyleń.
Wybór między przenoszeniem modelu funkcjonalnego lub strukturalnego za pośrednictwem interfejsu użytkownika (na przykład tryb kreator kontra tryb zaawansowany) nie jest tak prosty, jak mogłoby się wydawać z postu Thorsten79. Zaawansowani i częsti użytkownicy mogą preferować model strukturalny, podczas gdy użytkownicy okazjonalni lub mniej doświadczeni - funkcjonalni.
Mapy Google to świetny przykład: zawierają zarówno model funkcjonalny, jak i strukturalny, podobnie jak wiele nawigacji satelitarnych.
Innym wymiarem problemu jest to, że model strukturalny przedstawiony za pomocą interfejsu użytkownika nie może być odwzorowany na strukturę oprogramowania, ale raczej w naturalny sposób odwzorować na strukturę zadania użytkownika lub zaangażowanego obiektu zadania.
Trudność polega na tym, że wielu programistów będzie miało dobry model strukturalny oprogramowania wewnętrznego, ale tylko funkcjonalny model zadania użytkownika, w którym oprogramowanie ma pomóc. Aby zbudować dobry interfejs użytkownika, należy zrozumieć strukturę zadania / obiektu zadania i odwzorować interfejs użytkownika na tę strukturę.
W każdym razie nadal nie mogę zalecić wystarczająco formalnego kursu HCI. W grę wchodzi wiele rzeczy, takich jak heurystyka , zasady wywodzące się z fychologii Gestalt , sposoby uczenia się ludzi itp.
źródło
Radzę zacząć od zrobienia całego interfejsu użytkownika w taki sam sposób, jak teraz, bez skupiania się na użyteczności i innych rzeczach.
tekst alternatywny http://www.stricken.org/uploaded_images/WordToolbars-718376.jpg
Pomyśl o tym:
Projektant wie, że osiągnął doskonałość nie wtedy, gdy nie ma już nic do dodania, ale kiedy nie ma już nic do zabrania. - Saint-Exupéry
I zastosuj to w swoim projekcie.
źródło
Wielu programistów uważa, że ponieważ mogą pisać kod, mogą to wszystko zrobić. Projektowanie interfejsu to zupełnie inna umiejętność i nie uczyłem się jej wcale, kiedy studiowałem. To nie jest po prostu coś, co po prostu przychodzi naturalnie.
Kolejna dobra książka to „Design of Everyday Things” Donalda Normana.
źródło
Istnieje ogromna różnica między designem a estetyką i często są one zdezorientowane.
Piękny interfejs użytkownika wymaga umiejętności artystycznych lub przynajmniej estetycznych, których wielu, w tym ja, nie jestem w stanie wyprodukować. Niestety, to nie wystarczy i nie sprawia, że interfejs użytkownika jest użyteczny, jak widać w wielu interfejsach API opartych na technologii flash.
Tworzenie użytecznych interfejsów użytkownika wymaga zrozumienia, w jaki sposób ludzie wchodzą w interakcje z komputerami, niektórych zagadnień z psychologii (np. Prawa Fittta, prawa Hicka) i innych tematów. Trenuje do tego bardzo niewiele programów CS. Bardzo niewielu programistów, których znam, wybierze książkę testującą użytkownika zamiast książki JUnit itp.
Wielu z nas jest także „głównymi programistami”, którzy myślą o interfejsie użytkownika raczej o elewacji niż o czynnikach, które mogą odnieść sukces w naszym projekcie.
Ponadto większość doświadczeń związanych z programowaniem interfejsu użytkownika jest wyjątkowo frustrująca. Możemy albo używać zabawkowych konstruktorów GUI, jak stary VB i musimy radzić sobie z brzydkim kodem kleju, lub używamy interfejsów API, które frustrują nas bez końca, na przykład próbując uporządkować układy w Swing.
źródło
Przejdź do Slashdot i przeczytaj komentarze do każdego artykułu dotyczącego Apple. Znajdziesz wiele osób mówiących o tym, że produkty Apple nie są niczym specjalnym, i przypisuje sukces iPoda i iPhone'a osobom próbującym być modnym lub modnym. Zazwyczaj przeglądają listy funkcji i wskazują, że nic wcześniej nie robili odtwarzacze MP3 ani smartfony.
Są też ludzie, którzy lubią iPoda i iPhone'a, ponieważ robią to, czego chcą użytkownicy w prosty i łatwy sposób, bez odwoływania się do instrukcji. Interfejsy są tak intuicyjne, jak interfejsy, zapadają w pamięć i można je odkryć. Nie przepadam za interfejsem użytkownika w systemie MacOSX, tak jak w poprzednich wersjach, myślę, że zrezygnowali z pewnej użyteczności na rzecz blichtru, ale iPod i iPhone to przykłady doskonałego designu.
Jeśli jesteś w pierwszym obozie, nie myślisz tak, jak robi to przeciętny człowiek, dlatego prawdopodobnie stworzysz złe interfejsy użytkownika, ponieważ nie możesz odróżnić ich od dobrych. Nie oznacza to, że jesteś beznadziejny, a raczej, że musisz wyraźnie nauczyć się zasad dobrego projektowania interfejsu i tego, jak rozpoznać dobry interfejs użytkownika (podobnie jak ktoś z Aspergerem może wyraźnie nauczyć się umiejętności społecznych). Oczywiście posiadanie dobrego interfejsu użytkownika nie oznacza, że możesz go stworzyć; na przykład moje uznanie dla literatury nie wydaje się obejmować umiejętności (obecnie) pisania opowiadań, które można opublikować.
Spróbuj więc wypracować sens dobrego projektu interfejsu użytkownika. Dotyczy to nie tylko oprogramowania. „The Design of Everyday Things” Dona Normana to klasyk i są też inne książki. Uzyskaj przykłady udanych projektów interfejsu użytkownika i baw się nimi na tyle, aby poczuć różnicę. Uznaj, że być może musisz nauczyć się nowego sposobu myślenia o rzeczach i ciesz się tym.
źródło
Główną zasadą, którą trzymam, jest to, że nigdy nie próbuję robić obu naraz. Jeśli pracuję nad kodem zaplecza, skończę to, zrobię sobie przerwę i wrócę z włączonym kapeluszem interfejsu użytkownika. Jeśli spróbujesz go uruchomić podczas pisania kodu, podejdziesz do niego z niewłaściwym nastawieniem i skończysz z okropnymi interfejsami.
Myślę, że zdecydowanie można być zarówno dobrym programistą zaplecza, jak i dobrym projektantem interfejsu użytkownika, wystarczy popracować nad tym, poczytać i zbadać ten temat (od Millera nr 7 po archiwa Nielsena) i zrobić upewnij się, że rozumiesz, dlaczego projektowanie interfejsu użytkownika jest tak ważne.
Nie sądzę, że jest to potrzeba kreatywności, ale raczej, podobnie jak rozwój zaplecza, jest to bardzo metodyczna, bardzo uporządkowana rzecz, której należy się nauczyć. Ludzie stają się „kreatywni” dzięki interfejsom użytkownika, które tworzą jedne z największych potworności związanych z użytecznością ... Na początek spójrz na strony internetowe w 100% Flash ...
Edycja : Książka Kruga jest naprawdę dobra ... przeczytaj ją, szczególnie jeśli zamierzasz projektować dla sieci.
źródło
Jest wiele powodów.
(1) Deweloper nie widzi rzeczy z punktu widzenia użytkownika. Jest to zwykle podejrzany: brak empatii. Ale zwykle nie jest to prawdą, ponieważ programiści nie są tak obcy, jak ludzie to robią.
(2) Innym, bardziej powszechnym powodem jest to, że deweloper będąc tak blisko swoich rzeczy, pozostając z nimi tak długo, nie zdaje sobie sprawy, że jego rzeczy mogą nie być tak znane (termin lepszy niż intuicyjny) dla innych ludzi .
(3) Jeszcze innym powodem jest brak technik dewelopera.
MOJE DUŻE ROSZCZENIE: przeczytaj dowolny interfejs użytkownika, projekt interection człowieka, prototypową książkę. np. Projektowanie oczywistości: wspólne podejście do projektowania aplikacji internetowych, nie każ mi myśleć: wspólne podejście do użyteczności sieci, projektowanie chwili, cokolwiek.
Jak omawiają przepływy zadań? Jak opisują punkty decyzyjne? Oznacza to, że w każdym przypadku użycia istnieją co najmniej 3 ścieżki: sukces, niepowodzenie / wyjątek, alternatywa.
Zatem od punktu A możesz przejść do A.1, A.2, A.3. Z punktu A.1 można dostać się do A.1.1, A.1.2, A.1.3 i tak dalej.
Jak pokazują taki przebieg zadań drążenia w dół? Oni nie. Po prostu nad nim połyskują.
Ponieważ nawet ekspert interfejsu użytkownika nie ma techniki, programiści nie mają szans. On myśli, że to jest jasne w jego głowie. Ale nie jest to nawet jasne na papierze, nie mówiąc już o implementacji oprogramowania.
W tym celu muszę użyć własnych ręcznie wykonanych technik.
źródło
Staram się pozostać w kontakcie z witrynami i tekstami dotyczącymi określonego projektu. Bardzo interesująca w tych opracowaniach była także znakomita książka Robina Williamsa The Non-Designer's Design Book .
Uważam, że projektowanie i użyteczność jest bardzo ważną częścią inżynierii oprogramowania i powinniśmy się jej więcej uczyć i przestać tłumaczyć, że nie powinniśmy projektować.
Od czasu do czasu każdy może być projektantem, podobnie jak każdy programista.
źródło
Kiedy podchodzę do projektowania interfejsu użytkownika, oto kilka rzeczy, o których pamiętam (zdecydowanie nie jest to pełna lista):
Komunikowanie modelu . Interfejs użytkownika to narracja wyjaśniająca użytkownikowi model mentalny. Ten model może być obiektem biznesowym, zestawem relacji, co masz. Widoczność, umiejscowienie przestrzenne i porządek przepływu pracy odgrywają rolę w komunikowaniu tego modelu użytkownikowi. Na przykład pewien rodzaj listy w porównaniu z inną implikuje różne rzeczy, a także związek tego, co jest na liście z resztą modelu. Ogólnie uważam, że najlepiej jest upewnić się, że komunikowany jest tylko jeden model na raz. Programiści często próbują komunikować więcej niż jeden model lub jego kilka w tej samej przestrzeni interfejsu użytkownika.
Spójność . Ponowne użycie popularnych metafor interfejsu użytkownika bardzo pomaga. Bardzo ważna jest również spójność wewnętrzna.
Grupowanie zadań . Użytkownicy nie powinni przesuwać myszy do końca ekranu, aby zweryfikować lub wykonać odpowiednią sekwencję poleceń. Modalne okna dialogowe i wysuwane menu mogą być szczególnie złe w tym obszarze.
Znając twoją publiczność . Jeśli Twoi użytkownicy będą wykonywać te same czynności w kółko, szybko staną się zaawansowanymi użytkownikami tych zadań i będą sfrustrowani próbami obniżenia początkowej bariery wejścia. Jeśli użytkownicy rzadko wykonują wiele różnych czynności, najlepiej jest upewnić się, że interfejs użytkownika cały czas trzyma rękę.
źródło
Przeczytaj wytyczne Apple Human Interface .
źródło
Uważam, że najlepszym narzędziem w projektowaniu interfejsu użytkownika jest obejrzenie pierwszej próby użycia oprogramowania przez użytkownika. Rób mnóstwo notatek i zadawaj im pytania. Nigdy nie kieruj nimi ani nie próbuj wyjaśniać, jak działa oprogramowanie. To jest zadanie interfejsu użytkownika (i dobrze napisanej dokumentacji).
Konsekwentnie stosujemy to podejście we wszystkich projektach. Zawsze fascynujące jest obserwowanie, jak Użytkownik radzi sobie z oprogramowaniem w sposób, którego nigdy wcześniej nie rozważał.
Dlaczego projektowanie interfejsu użytkownika jest tak trudne? Cóż, ogólnie ponieważ programista i użytkownik nigdy się nie spotykają.
źródło
duffymo przypomniało mi tylko, dlaczego: Wielu programistów uważa, że „* Design” == „Art”.
Dobry projekt interfejsu użytkownika absolutnie nie jest artystyczny. Opiera się na solidnych zasadach, które można uzupełnić danymi, jeśli masz czas na przeprowadzenie badań.
Myślę, że wszyscy programiści muszą poświęcić czas na poznanie zasad. Myślę, że w naszej naturze leży stosowanie najlepszych praktyk, gdy tylko możemy, czy to w kodzie, czy w układzie. Wszystko, co musimy zrobić, to uświadomić sobie, jakie są najlepsze praktyki w tym aspekcie naszej pracy.
źródło
Co zrobiłem, aby stać się lepszym w projektowaniu interfejsu użytkownika?
Zwróć na to uwagę!
To tak, jak za każdym razem, gdy widzisz wykres w wiadomościach lub znak elektronicznego autobusu i zastanawiasz się: „Jak uzyskali te dane? Czy zrobili to z surowym SQL, czy używają LINQ? (lub wstaw tutaj swoją wspólną ciekawość maniaków).
Musisz zacząć to robić, ale z elementami wizualnymi wszelkiego rodzaju.
Ale tak jak nauka nowego języka, jeśli tak naprawdę nie jest się w niego nie angażujesz, nigdy go nie nauczysz.
Na podstawie innej odpowiedzi napisałem:
źródło
Jakkolwiek to robisz (a powyżej jest kilka świetnych punktów), to naprawdę mi pomogło, kiedy zaakceptowałem, że NIE MA TAKIEJ RZECZY INTUICYJNEJ ...
Słyszę kłótnie na horyzoncie ... pozwólcie, że wyjaśnię trochę.
Intuicyjny: korzystanie z tego, co wydaje się słuszne lub prawdziwe, w oparciu o nieświadomą metodę lub uczucie.
Jeśli (jak postulował Carl Sagan) akceptujesz fakt, że nie jesteś w stanie zrozumieć rzeczy, które są absolutnie niepodobne do niczego, z czym się kiedykolwiek spotkałeś, to jak mógłbyś „wiedzieć”, jak korzystać z czegoś, jeśli nigdy nie korzystałeś z czegoś podobnego?
Pomyśl o tym: dzieci starają się otwierać drzwi nie dlatego, że „wiedzą”, jak działa klamka, ale ponieważ widzieli, jak robi to ktoś inny… często przekręcają gałkę w niewłaściwym kierunku lub pociągają zbyt wcześnie. Muszą się UCZYĆ, jak działa klamka. Wiedza ta jest następnie stosowana w różnych, ale podobnych przypadkach: otwieranie okna, otwieranie szuflady, otwieranie prawie wszystkiego dużego za pomocą dużego, przypominającego gałkę uchwytu.
Nawet proste rzeczy, które wydają się nam intuicyjne, wcale nie będą intuicyjne dla ludzi z innych kultur. Jeśli ktoś wyciągnął przed siebie rękę i odłożył rękę w górę i w dół na nadgarstku, jednocześnie utrzymując rękę w bezruchu ... czy cię odsuwają? Prawdopodobnie, chyba że jesteś w Japonii. Tam ten sygnał ręczny może oznaczać „chodź tutaj”. Więc kto ma rację? Oba oczywiście we własnym kontekście. Ale jeśli podróżujesz do obu, musisz znać oba ... projekt interfejsu użytkownika.
Próbuję znaleźć rzeczy, które są już „znajome” dla potencjalnych użytkowników mojego projektu, a następnie zbudować wokół nich interfejs użytkownika: projektowanie zorientowane na użytkownika.
Spójrz na iPhone firmy Apple. Nawet jeśli tego nienawidzisz, musisz szanować ilość myśli, która się w to zaangażowała. Czy to jest idealne? Oczywiście nie. Z czasem postrzegana przez obiekt „intuicyjność” może rosnąć, a nawet całkowicie zanikać.
Na przykład. Większość wie, że czarny pasek z dwoma rzędami otworów u góry iu dołu wygląda jak pasek filmowy ... a może?
Zapytaj przeciętnego 9 lub 10-latka, co oni myślą. Możesz być zaskoczony, jak wielu dzieciom trudno będzie teraz rozpoznać film jako pasek filmowy, mimo że jest to coś, co wciąż jest używane do reprezentowania Hollywood lub czegoś związanego z filmem (filmem). Większość filmów z ostatnich 20 lat została nakręcona cyfrowo. A kiedy ostatni raz którykolwiek z nas trzymał jakiś JAKIKOLWIEK film, zdjęcia lub film?
Więc dla mnie wszystko sprowadza się do: Poznaj swoją publiczność i stale badaj, aby nadążać za trendami i zmianami w „intuicyjnych” rzeczach, celuj w głównych użytkowników i staraj się nie robić rzeczy, które karają niedoświadczonych na korzyść zaawansowani użytkownicy lub spowalniają zaawansowanych użytkowników, aby utrzymać nowicjuszy w ręku.
Ostatecznie każdy program będzie wymagał pewnego szkolenia ze strony użytkownika, aby z niego korzystać. Ile szkoleń i dla jakiego poziomu użytkownika jest częścią decyzji, które należy podjąć.
Niektóre rzeczy są mniej lub bardziej znane w oparciu o dotychczasowy poziom doświadczenia użytkownika docelowego jako człowieka, użytkownika komputera, studenta lub cokolwiek innego.
Po prostu strzelam w najgrubszą część krzywej dzwonowej i próbuję zdobyć jak najwięcej ludzi, ale zdając sobie sprawę, że nigdy nie zadowolę wszystkich ...
źródło
Wiem, że Microsoft jest raczej niespójny z własnymi wytycznymi, ale przekonałem się, że przeczytanie ich wytycznych dotyczących projektowania systemu Windows naprawdę mi pomogło. Mam kopię na mojej stronie tutaj , po prostu przewinąć trochę The UX Vista Guide. Pomógł mi w takich kwestiach jak kolory, odstępy, układy i wiele innych.
źródło
Uważam, że główny problem nie ma nic wspólnego z różnymi talentami i umiejętnościami. Główny problem polega na tym, że jako programista wiesz za dużo o tym, co robi aplikacja i jak to robi, i automatycznie projektujesz interfejs użytkownika z punktu widzenia kogoś, kto ma taką wiedzę.
Podczas gdy użytkownik zazwyczaj zaczyna od absolutnej wiedzy o aplikacji i nigdy nie powinien się uczyć o jej wewnętrznym działaniu.
Bardzo trudno jest, prawie niemożliwie, nie korzystać z posiadanej wiedzy - i dlatego interfejs użytkownika nie powinien być zaprojektowany przez kogoś, kto tworzy tę aplikację.
źródło
„Projektowanie z obu stron ekranu” przedstawia bardzo prosty, ale głęboki powód, dla którego programiści mają trudności z projektowaniem interfejsu użytkownika: programiści są przeszkoleni do myślenia w kategoriach przypadkowych przypadków, podczas gdy projektanci interfejsów są przeszkoleni do myślenia w kategoriach typowych przypadków lub zastosowań.
Przechodzenie z jednego świata do drugiego jest z pewnością trudne, jeśli domyślny trening w jednym z nich jest dokładnym przeciwieństwem drugiego.
źródło
Stwierdzenie, że programy są do bani w projektowaniu interfejsu użytkownika, nie ma sensu. Problem polega na tym, że formalne szkolenie większości programistów odbywa się niezależnie od technologii. Interakcja człowiek-komputer nie jest prostym tematem. Nie jest to coś, co mogę „połączyć” w myśl, podając proste oświadczenie w jednym wierszu, które uświadamia, że „och użytkownicy będą korzystać z tej aplikacji bardziej efektywnie, jeśli zrobię x zamiast y”.
Wynika to z faktu, że brakuje jednej części projektu interfejsu użytkownika. Ludzki mózg. Aby zrozumieć, jak zaprojektować interfejs użytkownika, musisz zrozumieć, w jaki sposób ludzki umysł wchodzi w interakcje z maszynerią. Jest doskonały kurs, który wziąłem na University of Minnesota na ten temat, prowadzony przez profesora psychologii. Nazywa się on „Interakcja człowiek-maszyna”. To opisuje wiele powodów, dla których projektowanie interfejsu użytkownika jest tak skomplikowane.
Ponieważ psychologia opiera się na korelacjach, a nie przyczynowości, nigdy nie możesz udowodnić, że metoda projektowania interfejsu użytkownika zawsze będzie działać w danej sytuacji. Możesz skorelować to, że wielu użytkowników uzna, że dany projekt interfejsu użytkownika jest atrakcyjny lub wydajny, ale nie możesz udowodnić, że zawsze się uogólnia.
Dodatkowo, są dwa elementy do projektowania interfejsu użytkownika, za którymi wielu ludzi tęskni. Jest estetyczny i funkcjonalny przepływ pracy. Jeśli zdecydujesz się na 100% estetyczny wygląd, na pewno ludzie będą tylko twój produkt. Wątpię jednak, aby estetyka kiedykolwiek zmniejszyła frustrację użytkowników.
Jest kilka dobrych książek na ten temat i kurs do wzięcia (np. Szkicowanie doświadczeń użytkownika Billa Buxtona i Cognition in the Wild autorstwa Edwina Hutchinsa). Na wielu uniwersytetach istnieją programy dla absolwentów dotyczące interakcji człowiek - komputer.
Ogólna odpowiedź na to pytanie leży jednak w sposobie uczenia się informatyki. Wszystko opiera się na matematyce, logice i nie opiera się na doświadczeniu użytkownika. Aby to osiągnąć, potrzebujesz ponad 4-letniego ogólnego stopnia informatyki (chyba że twój 4-letni stopień informatyki miał niewielkie wykształcenie psychologiczne i został podkreślony w Interakcji człowiek-komputer).
źródło
Odwróćmy twoje pytanie -
Czy „projektanci interfejsu” skazani są wyłącznie na projektowanie architektury informacji i warstw prezentacji? Czy jest coś, co mogą zrobić, aby ponownie przeszkolić swoje mózgi, aby skuteczniej projektować przyjemne i wydajne warstwy systemowe?
Wygląda na to, że „projektanci interfejsu” musieliby przyjąć zupełnie inną perspektywę - musieliby patrzeć od wewnątrz pudełka na zewnątrz; zamiast patrzeć z zewnątrz.
Według opinii Alana Coopera „Więźniowie uciekają z azylu” nie możemy z powodzeniem przyjąć obu perspektyw - możemy nauczyć się dobrze nosić jeden kapelusz, ale nie możemy po prostu zmieniać kapeluszy.
źródło
Myślę, że to dlatego, że dobry interfejs użytkownika nie jest logiczny. Dobry interfejs użytkownika jest intuicyjny.
Programiści zwykle źle sobie radzą z „intuicyjnością”
źródło
Przydatnym kadrowaniem jest aktywne rozważenie tego, co robisz, podczas projektowania procesu komunikacji. W bardzo realnym sensie interfejs jest językiem, którego użytkownik musi użyć, aby powiedzieć komputerowi, co ma robić. Prowadzi to do rozważenia szeregu punktów:
Naprawdę trudno jest ustalić, co programiści uważają za interakcję interfejsu za coś innego niż proces komunikacji, ale może problem polega na tym, że nie uważa się go za coś w ogóle.
źródło
Jest już wiele dobrych komentarzy, więc nie jestem pewien, czy mogę wiele dodać. Ale nadal ...
Nie oczekujemy, że losowy „hydraulik Joe” będzie w stanie napisać dobry kod. Dlaczego więc mielibyśmy oczekiwać, że losowy „programista Joe” zaprojektuje dobry interfejs użytkownika?
Empatia pomaga. Pomaga rozdzielenie projektu interfejsu użytkownika i programowania. Pomaga testowanie użyteczności.
Ale projektowanie interfejsu użytkownika jest rzemiosłem, którego należy się nauczyć i ćwiczyć, jak każdy inny.
źródło
Programiści nie są (koniecznie) dobrzy w projektowaniu interfejsu użytkownika z tego samego powodu, dla którego nie są (koniecznie) dobrzy w drutach; to trudne, wymaga praktyki i nie boli, że ktoś pokaże ci, jak to zrobić.
Większość programistów (łącznie ze mną) zaczęła „projektować” interfejsy użytkownika, ponieważ była to niezbędna część oprogramowania do pisania. Dopóki programista nie podejmie wysiłku, aby być w tym dobry, nie będzie.
źródło
Aby poprawić, wystarczy rozejrzeć się po istniejących witrynach. Oprócz książek już zasugerowanych, możesz zajrzeć do doskonałej książki Robina Williamsa „The Non-designers Design Book” ( zdezynfekowany link Amazon )
Zobacz, co jest możliwe w projektowaniu wizualnym, przeglądając różne zgłoszenia w The Zen Garden .
Projektowanie interfejsu użytkownika jest zdecydowanie sztuką, podobnie jak wskaźniki w C, niektórzy ludzie to rozumieją, a niektórzy nie.
Ale przynajmniej możemy się zaśmiać z ich prób . BTW Dziękuję OK / Anuluj za zabawny komiks i dziękuję Joelowi za umieszczenie go w książce „The Best Software Writing I” ( zdezynfekowany link do Amazon ).
źródło
Interfejs użytkownika nie jest czymś, co można zastosować po fakcie, jak cienką warstwę farby. Jest to coś, co musi być na początku i oparte na prawdziwych badaniach. Oczywiście dostępnych jest mnóstwo badań użyteczności. Musi być nie tylko na początku, musi stanowić rdzeń tego samego powodu, dla którego tworzysz oprogramowanie: istnieje pewna luka na świecie, jakiś problem i trzeba go naprawić bardziej użyteczny i bardziej wydajny.
Oprogramowanie nie istnieje dla samego siebie. Powodem istnienia oprogramowania jest LUDZIE. To absurdalne, nawet próbować wymyślić pomysł na nowy pakiet oprogramowania, nie rozumiejąc, dlaczego ktoś go potrzebuje. Ale tak się dzieje cały czas.
Przed napisaniem jednego wiersza kodu należy przejrzeć papierowe wersje interfejsu i przetestować go na prawdziwych ludziach. Jest to trochę dziwne i głupie, najlepiej działa z dziećmi, a ktoś zabawny działa jako „komputer”.
Interfejs musi korzystać z naszych naturalnych funkcji poznawczych. Jak jaskiniowiec skorzystałby z twojego programu? Na przykład ewoluowaliśmy, aby być naprawdę dobrym w śledzeniu ruchomych obiektów. Dlatego interfejsy wykorzystujące symulacje fizyki, takie jak iPhone, działają lepiej niż interfejsy, w których zmiany zachodzą natychmiast.
Jesteśmy dobrzy w niektórych rodzajach abstrakcji, ale nie w innych. Jako programiści jesteśmy szkoleni do wykonywania ćwiczeń gimnastycznych i backflipów, aby zrozumieć niektóre z najdziwniejszych abstrakcji. Na przykład rozumiemy, że sekwencja tajemnego tekstu może reprezentować i być tłumaczona na wzór stanu elektromagnetycznego na metalowym talerzu, który po napotkaniu przez starannie zaprojektowane urządzenie prowadzi do sekwencji niewidzialnych zdarzeń, które występują przy prędkości światła na elektronice obwód, a te zdarzenia mogą być kierowane w celu uzyskania użytecznego wyniku. Jest to niezwykle nienaturalna rzecz do zrozumienia. Zrozumcie, że chociaż ma ono dla nas całkowicie racjonalne wytłumaczenie, wygląda na to, że piszemy niezrozumiałe zaklęcia wzywające niewidzialne czujące duchy do wykonania naszych poleceń.
Rodzaje abstrakcji, które rozumieją normalni ludzie, to mapy, diagramy i symbole. Uważaj na symbole, ponieważ symbole są bardzo delikatną ludzką koncepcją, która wymaga świadomego wysiłku umysłowego do odkodowania, dopóki symbol się nie nauczy.
Sztuczka z symbolami polega na tym, że musi istnieć wyraźny związek między symbolem a tym, co reprezentuje. Rzecz, którą reprezentuje, musi być rzeczownikiem, w którym to przypadku symbol powinien wyglądać BARDZO DUŻO jak rzecz, którą reprezentuje. Jeśli symbol reprezentuje bardziej abstrakcyjną koncepcję, należy to wyjaśnić z wyprzedzeniem. Zobacz nieodgadnione, nieoznakowane ikony na pasku narzędzi msword lub Photoshopa oraz abstrakcyjne pojęcia, które reprezentują. DOWIEDZ SIĘ, że ikona narzędzia przycinania w Photoshopie oznacza CROP TOOL. należy zrozumieć, co oznacza nawet CROP. Są to warunki wstępne prawidłowego korzystania z tego oprogramowania. Które porusza ważną kwestię, strzeżcie się wiedzy ASSUMED.
Zdolność do zrozumienia map uzyskujemy dopiero w wieku 4 lat. Myślę, że kiedyś gdzieś przeczytałem, że szympansy zyskują zdolność rozumienia map w wieku 6 lub 7 lat.
Powodem, dla którego ludzie odnieśli tak wielki sukces, jest to, że zmienili krajobraz głównie tekstowych interfejsów na komputery, na coś, co zamapowało koncepcje komputerowe na coś, co przypominało fizyczne miejsce. Tam, gdzie gui zawodzą pod względem użyteczności, przestają przypominać coś, co można zobaczyć w prawdziwym życiu. Istnieją niewidzialne, nieprzewidywalne, niezrozumiałe rzeczy, które dzieją się w komputerze i nie przypominają niczego, co można by zobaczyć w świecie fizycznym. Niektóre z nich są konieczne, ponieważ nie ma sensu tworzenie symulatora rzeczywistości. Chodzi o oszczędność pracy, więc musi być trochę magii. Ale ta magia musi mieć sens i opierać się na abstrakcji, którą ludzie są dobrze przystosowani do zrozumienia. To wtedy nasze abstrakcje zaczynają się pogłębiać i układać warstwami, i niedopasowane do zadania, które się psuje. Innymi słowy, interfejs nie działa jako dobra mapa dla bazowego oprogramowania.
Jest dużo książek. Dwóch, które przeczytałem i dlatego mogę polecić, to „Design of Everyday Things” Donalda Normana i „The Human Interface” Jefa Raskina.
Polecam także kurs psychologii. „Design of Every Day Things” mówi o tym trochę. Wiele interfejsów psuje się z powodu „ludowego zrozumienia” psychologii przez programistę. Jest to podobne do „fizyki ludowej”. Obiekt w ruchu pozostaje w ruchu dla większości ludzi nie ma sensu. „Musisz naciskać, aby utrzymać ruch!” myśli nowicjusz fizyki. Testowanie użytkowników nie ma sensu dla większości programistów. „Możesz po prostu zapytać użytkowników, czego chcą, a to powinno być wystarczająco dobre!” myśli początkujący psycholog.
Polecam Discovering Psychology, serial dokumentalny PBS, którego gospodarzem jest Philip Zimbardo. W przeciwnym razie spróbuj znaleźć dobry podręcznik do fizyki. Drogi rodzaj. Nie takie bzdury, które można znaleźć w Borders, ale grube twarde rzeczy, które można znaleźć tylko w bibliotece uniwersyteckiej. To niezbędny fundament. Bez niego możesz zrobić dobry projekt, ale intuicyjnie zrozumiesz, co się dzieje. Czytanie dobrych książek da ci dobrą perspektywę.
źródło
Jeśli przeczytasz książkę „Dlaczego oprogramowanie jest do bani”, zobaczyłbyś odpowiedź Platta, która jest prosta:
Ale inną odpowiedzią na twoje pytanie byłoby „dlaczego stomatologia jest tak trudna dla niektórych programistów?” - Projektowanie interfejsu użytkownika najlepiej wykonać projektantem interfejsu użytkownika.
http://dotmad.net/blog/2007/11/david-platt-on-why-software-sucks/
źródło