Dlaczego dobry projekt interfejsu użytkownika jest tak trudny dla niektórych programistów? [Zamknięte]

206

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?

Chris Ballance
źródło
1
Dla siebie (mam ten sam problem) znam dobry interfejs użytkownika, gdy go używam. I zdecydowanie znam interfejs, który mnie denerwuje. Ale mam bardzo trudny czas, próbując sam zaprojektować. To jak krytyczne oko, które mam, gdy używam cudzego interfejsu użytkownika, nie działa na moich projektach.
JMD
1
Nienawidzę terminu „koder back-end” i starałem się nie używać go w tytule
Chris Ballance
20
Projekt graficzny! = Projekt interfejsu użytkownika. Pierwsza polega na upiększaniu. To ostatnie dotyczy sprawienia, aby rzeczy były użyteczne i użyteczne.
Esko Luontola,
2
+1 @Esko. Często „ładny” oznacza całkowicie użyteczny dla ONZ. Ale dwa CAN współistnieją, jeśli są traktowane ostrożnie i przemyślane.
Dhaust
12
Dlaczego tworzenie oprogramowania jest tak trudne dla projektantów interfejsu użytkownika?
Greg Hurlman

Odpowiedzi:

360

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;)

Thorsten79
źródło
8
Doskonały komentarz! Przebiliście jedną z najbardziej podstawowych przeszkód w projektowaniu oprogramowania. Trudny fakt do przełknięcia dla zahartowanych programistów (takich jak ja), ale prawda jest często.
12
+1. Polecam przeczytać „Więźniowie prowadzą azyl”, zawiera on szczegółowe informacje na temat różnic w sposobie myślenia użytkowników / deweloperów, a także niektórych środków zaradczych.
Richard Levasseur,
9
+1 Szczerze mówiąc, każdy programista, który nie dba o użytkownika, jest słabym programistą!
Gary Willoughby,
7
Bardzo ważne punkty i myślę, że ta mentalność jest również jednym z powodów, dla których wiele projektów prowadzonych przez programistów (np. Open source lub what-have-you) okazało się tak trudnych w użyciu - ogólnie rzecz biorąc, większość programistów pisz dla siebie jako użytkownik, a nie dla „prawdziwego” użytkownika końcowego.
CloudyMusic
25
+1 To jest powód, dla którego Linux wciąż nie jest gotowy na pulpit przeciętnego użytkownika.
Bryan Anderson
215

Projektowanie interfejsu użytkownika jest trudne

Do pytania:

dlaczego projektowanie interfejsu użytkownika jest tak trudne dla większości programistów?

Spróbuj zadać odwrotne pytanie:

dlaczego programowanie jest tak trudne dla większości projektantów interfejsu użytkownika ?

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:

  1. Rozpoznawaj projekt jako osobną umiejętność . Kodowanie i projekt są osobne, ale powiązane. Projektowanie interfejsu użytkownika nie jest podzbiorem kodowania. Wymaga innego sposobu myślenia, bazy wiedzy i grupy umiejętności. Są ludzie, którzy koncentrują się na projektowaniu interfejsu użytkownika.
  2. Dowiedz się o projektowaniu . Przynajmniej trochę. Spróbuj nauczyć się kilku pojęć i technik projektowania z długiej listy poniżej. Jeśli jesteś bardziej ambitny, poczytaj kilka książek, weź udział w konferencji, weź udział w zajęciach, uzyskaj dyplom. Istnieje wiele sposobów uczenia się na temat projektowania. Książka Joela Spolky'ego na temat projektowania interfejsu użytkownika jest dobrym podkładem dla programistów, ale jest o wiele więcej i tam właśnie pojawiają się projektanci.
  3. Współpracuj z projektantami . Dobrzy projektanci, jeśli potrafisz. Ludzie, którzy wykonują tę pracę, mają różne tytuły. Obecnie najpopularniejszymi tytułami są User Experience Designer (UXD), Information Architect (IA), Interaction Designer (ID) i Usability Engineer. Myślą o projektowaniu tak samo, jak myślisz o kodzie. Możesz się wiele od nich nauczyć, a oni od ciebie. Pracuj z nimi, jak możesz. Znajdź osoby z tymi umiejętnościami w swojej firmie. Może musisz kogoś zatrudnić. Lub udaj się na niektóre konferencje, weź udział w webinariach i spędzaj czas w świecie UXD / IA / ID.

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:

  • Głębokie zrozumienie maszyny . Ludzie w tej grupie martwią się najpierw o kod, a ludzie o drugie. Mają głęboką wiedzę technologiczną i umiejętności. Nazywamy ich programistami, programistami, inżynierami i tak dalej.
  • Głębokie zrozumienie ludzi i designu : ludzie w tej grupie martwią się o ludzi, najpierw o kod. Posiadają głęboką wiedzę na temat interakcji ludzi z informacjami, komputerami i otaczającym ich światem. Nazywamy ich projektantami doświadczeń użytkowników, architektami informacji, projektantami interakcji, inżynierami użyteczności i tak dalej.

To zasadnicza różnica między tymi 2 grupami - między programistami i projektantami:

  • Programiści sprawiają, że działa . Wdrażają funkcje w Twoim TiVo, telefonie iPhone, ulubionej stronie internetowej itp. Zapewniają, że faktycznie robi to, co powinien. Ich najwyższym priorytetem jest sprawienie, aby działało.
  • Projektanci sprawiają, że ludzie to uwielbiają . Wymyślają, jak z nim wchodzić, jak powinien wyglądać i jak powinien się czuć. Projektują doświadczenie korzystania z aplikacji, strony internetowej, urządzenia. Ich najwyższym priorytetem jest zakochanie się w tym, co robią programiści. To właśnie oznacza doświadczenie użytkownika i to nie to samo, co doświadczenie marki.

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.

Karl Fast
źródło
8
To najlepsza odpowiedź tutaj. Świetne linki BTW!
Bernard Igiri,
Doskonały przegląd projektu interfejsu użytkownika! Obserwowałem również twoje pojęcie różnych sposobów myślenia. Zajmuję się zarówno projektowaniem, jak i programowaniem interfejsu użytkownika i najlepiej skupiać się tylko na jednym z nich na raz. [...]
Esko Luontola
Jeśli podejmujesz decyzje dotyczące projektowania interfejsu użytkownika podczas programowania, myślisz, że jest to najprostszy sposób wdrożenia, co często prowadzi do złego projektowania interfejsu użytkownika. A jeśli myślisz o implementacji podczas projektowania interfejsu użytkownika, możesz wybrać wzorce projektowania interfejsu użytkownika, które są łatwiejsze do wdrożenia, ale nie tak dobre dla użytkownika.
Esko Luontola
2
Dlaczego nie jest to oznaczone jako najlepsza odpowiedź? Wydaje się znacznie lepsza niż odpowiedź Thorsten79.
AbdullahC
1
Chciałbym móc bezpośrednio polubić tę odpowiedź. :)
Dan J
70

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

Kevin
źródło
Wiele razy próbowałem tego podejścia i okazało się, że jest bardzo skuteczne. Czasami mam nietechnicznego przyjaciela używającego go, aby zobaczyć, co powoduje ból podczas próby jego użycia.
Chris Ballance
Takie samo podejście mam.
Ed S.
Czy to podejście można nazwać „testowaniem użyteczności”? ;) Tak, takie podejście należy zastosować przed, w trakcie i po.
Ates Goral
To byłaby prawie moja dokładna odpowiedź. Kontrola jakości i wsparcie techniczne są niesamowite. Programiści ssają UI Design, iterują i każą innym często go testować.
Bill K
7
Uważam, że nazywa się to „testem użyteczności korytarza”
Kevin
32

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ść.

Jacob Mattison
źródło
dobrze wyłożone. Najczęściej próby zwiększenia elastyczności skutkują bałaganem. Prostsze == lepsze.
SquareCog,
Czy możesz postawić się w sytuacji użytkownika, jeśli znajduje się on po drugiej stronie planety, w kulturze, której nigdy wcześniej nie doświadczyłeś? Internacjonalizacja jest ważnym czynnikiem w solidnym projektowaniu interfejsu użytkownika. Nie zakładajmy, że wszyscy mieszkają w USA.
Absolutnie; mój obecny projekt jest w rzeczywistości skierowany do użytkowników na całym świecie (w zasadzie w każdym kraju innym niż USA, gdzie jestem). Sprawia, że ​​empatia staje się trudniejsza, bez wątpienia - a tym bardziej ważne jest, aby spróbować ją poważnie i energicznie.
Jacob Mattison
Dodam również, że ogromna większość problemów z użytecznością jest szokująco oczywista, gdy zobaczysz prawdziwego użytkownika. Tak, będą subtelne, które są specyficzne dla kultury, ale możesz dokonać ogromnych ulepszeń, używając następnego faceta idącego korytarzem.
Jacob Mattison
+1, tylko dlatego, że sam nie mogę +100! Dodam, że zdobywanie doświadczenia przy użyciu bardzo różnych aplikacji, tak jak zostały zaprojektowane, pomaga rozwijać się jako programista interfejsu użytkownika. Tylko użycie narzędzi takich jak Visual Studio lub inne narzędzia programistyczne utrudni tę umiejętność ...
BQ.
26

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.

Vlad Gudim
źródło
+1 za link MIT OCW :) Te notatki z wykładów są nieocenione
PlagueHammer
Masz rację, użytkownicy mogą sami stać się ekspertami w dziedzinie oprogramowania i podoba im się, gdy ktoś wykroi dla nich sposób za pomocą „miłego” interfejsu użytkownika, aby być szybszym. Na przykład tutaj znajdują się wszystkie kluczowe skróty. użyteczność to bardzo interesujący temat!
Thorsten79
25

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.

Hoffmann
źródło
Właśnie dlatego zdecydowanie wolę Office 2007!
Richard Ev
Jeśli ktoś zastanawia się, z którego grobu wykopałem ten cytat, usłyszałem go z cywilizacji 4. Świetna gra. Nie mam pojęcia, kto jest autorem, ale na pewno mógłby napisać lepszy interfejs użytkownika niż projektanci.
Hoffmann
Jest jeszcze jeden dobry cytat A. Einsteina: „Uczyń wszystko tak prostym, jak to możliwe, ale nie prostszym”. Przekonałem się, że te pomysły dotyczą także projektowania interfejsu użytkownika: www.presentationzen.com. ... i +1
Pyry Jahkola
Saint-Exupery był czymś więcej niż pilotem i projektantem samolotów; +1 za zacytowanie go. Jego książka dla dzieci („Mały Książę”) jest warta przeczytania, ale zaczynam od tematu.
David Thornley,
5
Powinieneś wybrać widok wydruku ... nie widać teraz linijek.
południu
16

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.

czwartek
źródło
Dzięki, „The Design of Everyday Thinks” jest na mojej Amazon WishList
Chris Ballance
+1. „Projektowanie codziennych rzeczy” znajduje się również na liście zalecanych lektur z horrorów kodujących (dobra lista książek dla programistów). Niedawno skończyłem czytać i mogę również bardzo go polecić.
Mun
W tej chwili czytam „Design of Everyday Things” - z pewnością jest bardzo dobry, ale jak wspomniano w komentarzach do innej odpowiedzi, „Więźniowie prowadzący azyl” Alana Coopera zajmują się właśnie tym tematem. Jako programista książka zmieniła życie!
Stuart Helwig
Moje wkurzenie: wielu programistów (i projektantów oraz innych) uważa, że ​​ponieważ mogę kodować, nie mogę zaprojektować interfejsu użytkownika. Nie znam się zbyt dobrze na Photoshopie, ale myślę, że mam dobre oko na to, co działa, a co nie. (Design of Everyday Things to moja pierwsza biblia interfejsu użytkownika.)
Barry Brown
14

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.

Uri
źródło
„Możemy albo używać zabawkowych konstruktorów GUI, takich 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”. Naprawdę sprowadziłeś moje doświadczenia z budowaniem GUI. Jeśli mogę dodać: „lub szaloną kombinację DOM i CSS”
Hoffmann
Jestem pewien, że wszyscy znają Totally Gridbag? „ madbean.com/anim/totallygridbag
Uri
12

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.

David Thornley
źródło
+1 za sugestię Projekt rzeczy codziennych
Oskar Duveborn
+1 za bardzo dobrą odpowiedź. Myślę, że to mówi, że wciąż unosisz się przy 1 głosowaniu na górę (teraz 2); ci, którzy pasują do twojego opisu, prawdopodobnie nie pomyślą, że tak, lub po prostu odrzucą sam pomysł :-(
mghie
To jest ogólne oświadczenie. Nie każdy komentarz anty-Apple na Slashdot jest krytyką jego interfejsu użytkownika lub weryfikacją braku zrozumienia interfejsu użytkownika. Apple ma dobry interfejs użytkownika, podobnie jak wielu ich konkurentów.
Bernard Igiri,
Inna myśl: jabłko nie jest dla wszystkich; na przykład nie zapewnia fenomenalnej niesamowitej mocy, jaką zapewnia interfejs CLI.
J. Polfer
2
Osobiście uważam, że produkty Apple są wyjątkowo nieintuicyjne w użyciu. Wyobrażam sobie, że nie jestem jedyną osobą, która była sfrustrowana, gdy ich pierwszy iPod zaczął tasować utwory za każdym razem, gdy zaczynałem biegać lub dlaczego ekran iPhone'a ciągle się odwraca. Myślę, że rzeczy powinny wynikać tylko z bezpośrednich, jednoznacznych działań użytkownika.
Lotus Notes
10

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.

James B.
źródło
i jaki jest tytuł tej książki
kruga
@refhat Zostało to wyraźnie połączone w górnym poście, więc nie podłączyłem
James B
8

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.

George Kyaw naing
źródło
7

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.

Edwin Jarvis
źródło
Nie zgadzam się, że każdy może być programistą. Niektórych aspektów handlu nie można się nauczyć, możesz go zhakować lub nie możesz (nie ma zamiaru gry słów)
Chris Ballance
2
Od czasu do czasu nie oznacza to, że facet będzie dobrym programistą lub będzie nim na zawsze.
Edwin Jarvis
7

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ę.

Rex M.
źródło
Uwydatniasz swój punkt widzenia dzięki znajomości odbiorców ... Lubię też „Nie jesteś swoim użytkownikiem” (Platt) i „Poznaj swojego użytkownika” (Platt) Nie można tego wystarczająco podkreślić
Chris Ballance
7

Przeczytaj wytyczne Apple Human Interface .

Marco Luglio
źródło
Masz na myśli wytyczne, których sam Apple już nie przestrzega?
Gregor Brandt
„W każdym razie bardziej przypominają wytyczne” ^ _ ^
Marco Luglio
5

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
Absolutnie uzgodnione, ale całkiem możliwe, że programista zastosuje solidne podstawowe zasady interfejsu użytkownika.
nailitdown
Zasady Solid Basic UI nie działają w każdym kraju. Wdrażamy oprogramowanie w wielu regionach i istnieje ogromna różnica w projektowaniu interfejsu użytkownika dla różnych części globu. Spróbuj wysłać kiedyś swoją aplikację w USA do Chin ...
5

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.

paznokieć
źródło
Myślę, że nie można całkowicie pominąć estetyki. Być może brzydki interfejs użytkownika może być równie użyteczny jak ładny, ale to nie wszystko, do czego służy interfejs użytkownika. W końcu interfejs użytkownika jest obliczem twojego programu, podobnie jak okładka książki: ludzie znacznie częściej wybierają program z ładnym interfejsem użytkownika.
Tikhon Jelvis
Oczywiście, estetyka jest ważna, ale to projektowanie graficzne, a nie projektowanie interfejsu użytkownika.
nailitdown
5

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:

Naucz się patrzeć, naprawdę patrzeć na otaczający cię świat. Dlaczego podoba mi się ten interfejs, ale go nienawidzę? Dlaczego tak trudno znaleźć dania z makaronem w tym menu restauracji? Wow, wiedziałem, co znaczy ten znak, zanim jeszcze przeczytałem te słowa. Dlaczego tak było? Dlaczego ta okładka książki wygląda tak źle? Naucz się zastanawiać, dlaczego reagujesz na różne elementy wizualne, a następnie zastosuj to w swojej pracy.

Wyczerpanie
źródło
+1 za poradę zen na temat uczenia się patrzeć i myśleć. Bardzo niewiele osób pyta, co na pierwszy rzut oka.
PlagueHammer
5

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 ...

obrotami
źródło
4

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.

David Anderson
źródło
+1 przeczytanie wytycznych projektowych platformy to zdecydowanie coś, co należy zrobić (i dowiedzieć się, jak często Microsoft łamie własne zasady;)
Oskar Duveborn
A dodatkowo przeczytaj te Apple (Wytyczne dotyczące interfejsu człowieka). Mają w sobie więcej podstaw i zasad. Dzięki temu rozumiesz, co powinno być uniwersalne, a co specyficzne dla platformy
Stephan Eggermont
A kiedy już to robisz, przeczytaj także GNOME HIG. Pomiędzy tymi trzema zaczyna być widoczne, co jest konkretną cechą pojedynczej platformy i co wydaje się być dobrym pomysłem w ogóle.
mghie,
Większość z nich oparta jest na IBM, ale obecnie jest to dość nieaktualne. Na przykład standardowymi poleceniami wycinania i wklejania były Shift + Del i Shift + Ins (nadal działają, btw).
Simon Buchan
4

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ę.

Michael Borgwardt
źródło
4

„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.

MSN
źródło
3

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).

jwendl
źródło
Nie zgadzam się: komputery są z natury matematyczne i logiczne. Wszelkie nauczanie programowania komputerowego musi opierać się na matematyce i logice.
Paul Nathan
1
Tak, masz rację Paul. Komputery to matematyka i logika. Projektowanie interfejsu użytkownika obejmuje jednak element ludzki, który okazał się w historii znacznie mniej oparty na matematyce i logice.
jwendl
Nie chodzi o to, że są one mniej oparte na matematyce i logice, ale o to, że matematyka i logika za nimi są znacznie bardziej złożone, głównie poza kimkolwiek dzisiaj. To powiedziawszy, założę się, że dobre projekty interfejsu użytkownika są w pewnym stopniu oparte na geometrii.
Tikhon Jelvis
2

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.

igouy
źródło
2

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ą”

Gregor Brandt
źródło
Doskonały punkt, wymaga drugiej strony mózgu
Chris Ballance
Nie ma czegoś takiego jak intuicyjny interfejs użytkownika. Jest podobny do tego, co już wiem, ale jest nieco inny.
Stephan Eggermont
Nic nie jest „intuicyjne”, wszystko się uczy. Intuicyjne to słowo rzucane przez ludzi biznesu, aby programiści się pocili.
Bernard Igiri,
mówiony jak prawdziwy programista ... i to jest sedno problemu.
Gregor Brandt
@gbrandt Intuitive to kombinacja „znajoma” i „prosta”. Jednak nadal jest celem, do którego należy dążyć. Trudność w użyteczności polega na tym, że to, co jest intuicyjne dla niektórych, niekoniecznie jest intuicyjne dla innych. @Stephan ma rację, że „intuicyjny” nie jest jakimś trudnym „faktem”, odnosi się do użytkownika.
TM.
2

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:

  1. Czy użytkownik już zna ten język? Korzystanie z bardzo specyficznego interfejsu jest jak komunikacja w języku, którego nigdy wcześniej nie mówiłeś. Więc jeśli twój interfejs musi być w ogóle idiosynkratyczny, najlepiej przedstawić się najprostszym terminem i kilkoma przeszkodami. Z drugiej strony, jeśli twój interfejs używa idiomów, do których użytkownik jest przyzwyczajony, zyska pewność siebie od samego początku.
  2. Wróg komunikacji to hałas. Hałas słuchowy zakłóca komunikację mówioną; hałas wizualny zakłóca komunikację wizualną. Im więcej hałasu możesz wyciąć z interfejsu, tym łatwiej będzie się z nim komunikować.
  3. Tak jak w ludzkiej rozmowie, często nie jest to, co mówisz, tylko to, co mówisz. Sposób, w jaki większość programów komunikuje się, jest niegrzeczny do tego stopnia, że ​​uderzyłby go w twarz, gdyby był osobą. Jak byś się czuł, gdybyś zadał komuś pytanie, a on siedziałby tam i wpatrywał się w ciebie przez kilka minut, odmawiając odpowiedzi w inny sposób, zanim odpowie? Wiele elementów interfejsu, takich jak paski postępu i automatyczny wybór ostrości, pełni podstawową funkcję grzeczności. Zadaj sobie pytanie, w jaki sposób możesz uprzyjemnić dzień użytkownika.

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.

chaos
źródło
2

Jest już wiele dobrych komentarzy, więc nie jestem pewien, czy mogę wiele dodać. Ale nadal ...

  • Dlaczego deweloper miałby projektować dobry interfejs użytkownika?
  • Ile miał szkolenia w tej dziedzinie?
  • Ile książek przeczytał?
  • Ile rzeczy zaprojektował przez ile lat?
  • Czy miał okazję zobaczyć reakcję jego użytkowników?

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.

Mihai Nita
źródło
Dokładnie o czym myślałem, w jaki sposób „programista” odnosi się do „Projektanta interfejsu użytkownika”?
Jorge Córdoba
@Jorge tutaj jest teraz związane: wielu programistów musi projektować interfejsy użytkownika dla swoich pracodawców, nawet jeśli nie są projektantami. W mojej firmie nie ma ŻADNYCH artystów. Nasze aplikacje nie wyglądają tak źle. W takim przypadku musisz mieć recenzje grupowe i inne rzeczy, aby upewnić się, że projekt jest ładny.
TM.
@TM: Design niekoniecznie jest projektem UI / UX. Pewnie, że może wyglądać dobrze, ale to nie znaczy, że działa dobrze .
Kevin Peno,
2

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.

MattBelanger
źródło
2

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 ).

Rob Wells
źródło
2

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ę.

Bretoński
źródło
2

Jeśli przeczytasz książkę „Dlaczego oprogramowanie jest do bani”, zobaczyłbyś odpowiedź Platta, która jest prosta:

  1. Programiści preferują kontrolę nad przyjaznością dla użytkownika
  2. Przeciętny człowiek preferuje łatwość obsługi nad kontrolą

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/

dotmad
źródło