Dlaczego dobry interfejs użytkownika jest tak trudny dla niektórych programistów? [zamknięte]

Niektórzy z nas po prostu mają problemy z bardziej miękkimi aspektami projektowania UI (ja szczególnie). Czy "back-endowe kodery" są skazane tylko na projektowanie logiki biznesowej i warstw danych? Czy jest coś, co możemy zrobić, aby przećwiczyć nasz mózg , aby być bardziej skutecznym w projektowaniu przyjemnych i użytecznych warstw prezentacji?

Koledzy polecili mi kilka książek, w tym Projektowanie Stron, nie każ mi myśleć i Dlaczego oprogramowanie ssie, ale jestem zastanawiasz się, co inni zrobili, aby usunąć swoje braki w tej dziedzinie?

Author: Chris Ballance, 2009-02-05

30 answers

Powiem wprost:

Poprawa w tym zakresie nie zaczyna się od wytycznych. Zaczyna się od zmiany sposobu myślenia o oprogramowaniu.

Większość hardcore ' owych programistów ma praktycznie zero empatii wobec użytkowników ich oprogramowania. Mają nie mają pojęcia jak użytkownicy myślą, jak użytkownicy budują modele oprogramowania, których używają i jak używają komputera w ogóle.

Jest to typowy problem, gdy ekspert zderza się z laikiem: jak na ziemi normalny czy ktoś jest tak głupi, żeby nie zrozumieć tego, co ekspert zrozumiał 10 lat temu?

Jednym z pierwszych faktów, które przyznają, że jest to niewiarygodnie trudne do uchwycenia dla prawie wszystkich doświadczonych programistów jest to:

Normalni ludzie mają znacznie inną koncepcję oprogramowania niż ty. Nie mają pojęcia o programowaniu. Brak Zero. I nawet ich to nie obchodzi. Oni nawet nie myślą, że muszą się tym przejmować. Jeśli ich do tego zmusisz, usuną Twój program.

To niewiarygodnie trudne dla dewelopera. Jest dumny z produkowanego przez siebie oprogramowania. Uwielbia każdy szczegół. Może Ci dokładnie powiedzieć, jak działa kod za nim. Może nawet wynalazł niewiarygodnie sprytny algorytm, który sprawił, że działał 50% szybciej niż wcześniej.

A użytkownika to nie obchodzi.

Co za idiota.

Wielu programistów nie może znieść pracy z normalnymi użytkownikami. Popadają w depresję przez ich nieistniejącą wiedzę na temat technologii. I dlatego większość deweloperzy unikają i uważają, że użytkownicy muszą być idiotami.

Nie są.

Jeśli programista kupuje samochód, oczekuje, że będzie działał sprawnie. Zwykle nie dba o Ciśnienie w oponach, mechaniczne dostrajanie, które było ważne, aby go uruchomić w ten sposób. Tutaj on jest , a nie ekspertem. A jeśli kupi samochód, który nie ma dostrajania, odda go i kupi taki, który robi, co chce.

Wielu programistów lubi filmy. Dobrze zrobione filmy, które iskrzą ich wyobraźnia. Ale nie są ekspertami w produkcji filmów, w produkcji efektów wizualnych lub w pisaniu dobrych scenariuszy filmowych. Większość nerdów jest bardzo, bardzo, bardzo zła w aktorstwie, ponieważ chodzi o wyświetlanie złożonych emocji i niewiele o analitykę. Jeśli deweloper ogląda zły film, po prostu zauważa, że jest on zły jako całość. Nerdowie zbudowali nawet IMDB, aby zbierać informacje o dobrych i złych filmach, aby wiedzieli, które z nich oglądać, a których unikać. Ale nie są ekspertami w tworzenie filmów. Jeśli film jest zły, nie pójdą do kina (lub nie ściągną go z BitTorrenta ;)

Sprowadza się więc do: unikanie zwykłych Użytkowników jako eksperta to ignorancja. ponieważ w tych obszarach (a jest ich tak wiele), gdzie nie są ekspertami, oczekują, że eksperci z innych dziedzin 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 hardcore jesteś programistą, tym mniej będziesz otwarty być do normalnego myślenia użytkownika. To będzie dla Ciebie obce i bezmyślne. Pomyślicie sobie: nie wyobrażam sobie, jak ludzie mogliby kiedykolwiekużywać komputera z takim brakiem wiedzy. Ale mogą. Dla każdego elementu UI zastanów się: czy jest to konieczne? Czy pasuje do koncepcji Mojego narzędzia przez użytkownika? Jak mam go przekonać? Proszę przeczytać na usability do tego, istnieje wiele dobrych książek. To także cała dziedzina nauki.

Ah I zanim to powiesz, tak, jestem fanem Apple;)

 362
Author: Thorsten79,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-15 15:23:07

UI design is hard

Na pytanie:

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

Spróbuj zadać pytanie odwrotne:

Dlaczego programowanie jest tak trudne dla większości projektantów UI ?

Kodowanie interfejsu użytkownika i projektowanie interfejsu wymaga różnych umiejętności i innego sposobu myślenia. Projektowanie UI jest trudne dla większości programistów, a nie niektórych programistów, tak jak pisanie kodu jest trudne dla większości projektantów, a nie niektórych projektantów.

Kodowanie jest trudne. Projektowanie też jest trudne. Niewiele osób dobrze sobie radzi. Dobrzy projektanci interfejsu rzadko piszą kod. Mogą nawet nie wiedzieć jak, ale nadal są dobrymi projektantami. Dlaczego więc dobrzy Programiści czują się odpowiedzialni za projektowanie UI?

Więcej informacji na temat projektowania UI sprawi, że będziesz lepszym programistą, ale to nie znaczy, że powinieneś być odpowiedzialny za projektowanie UI. Odwrotnie jest w przypadku projektantów: wiedza jak pisać kod będzie uczyń ich lepszymi projektantami, ale to nie znaczy, że powinni być odpowiedzialni za kodowanie interfejsu użytkownika.

Jak być lepszym w UI design

Dla programistów, którzy chcą być lepsi w projektowaniu UI, mam 3 podstawowe Rady:

  1. Rozpoznaj projekt jako oddzielną umiejętność . Kodowanie i projektowanie są oddzielne, ale powiązane. Projektowanie UI nie jest podzbiorem kodowania. Wymaga innego sposobu myślenia, bazy wiedzy i grupy umiejętności. Są ludzie, którzy skupiają się na interfejsie użytkownika design.
  2. dowiedz się o designie . Przynajmniej trochę. Spróbuj nauczyć się kilku koncepcji i technik projektowania z długiej listy poniżej. Jeśli jesteś bardziej ambitny, przeczytaj kilka książek, weź udział w konferencji, weź udział w zajęciach, zdobądź dyplom. Istnieje wiele sposobów, aby dowiedzieć się o projektowaniu. książka Joela Spolky ' ego o projektowaniu UI jest dobrym podkładem dla programistów, ale jest w tym o wiele więcej i to jest miejsce, w którym projektanci wkraczają w obraz.
  3. Współpraca z projektantami . Dobrzy projektanci, jeśli możecie. Ludzie, którzy wykonują tę pracę, noszą różne tytuły. Obecnie najpopularniejszymi tytułami są User Experience Designer (UXD), Information Architect (IA), Interaction Designer(ID) i Usability Engineer. Oni myślą o projektowaniu tak samo jak ty o kodzie. Możesz się od nich wiele nauczyć, a oni od Ciebie. Pracuj z nimi, jak tylko możesz. Znajdź osoby z tymi umiejętnościami w swojej firmie. Może musisz kogoś zatrudnić. Lub udać się na konferencje, wziąć udział w webinariach i spędzić czas w świat UXD / IA / ID.

Oto kilka konkretnych rzeczy, których możesz się nauczyć. nie próbuj wszystkiego się uczyć . Jeśli wiesz wszystko poniżej, możesz nazwać się projektantem interakcji lub architektem informacji. zacznij od rzeczy znajdujących się na górze listy . Skoncentruj się na konkretnych koncepcjach i umiejętnościach. Następnie przesuń się w dół i rozgałęź się. Jeśli naprawdę ci się to podoba, potraktuj to jako ścieżkę kariery. Wielu programistów przechodzi do zarządzania, ale UX design to kolejny opcja.

Dlaczego projektowanie UI 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 potem o ludzi. Mają głęboką wiedzę technologiczną i umiejętności. Nazywamy ich programistami, programistami, inżynierami, a więc naprzód.
  • głębokie zrozumienie ludzi i projektowania : ludzie w tej grupie martwią się najpierw o ludzi, a potem o kod. Mają głęboką wiedzę o tym, jak ludzie wchodzą w interakcję z informacjami, komputerami i otaczającym ich światem. Nazywamy ich projektantami doświadczeń użytkownika, architektami informacji, projektantami interakcji, inżynierami użyteczności i tak dalej.

Jest to zasadnicza różnica pomiędzy tymi 2 grupami-pomiędzy programistami i projektanci:

  • Programiści sprawiają, że działa . Wdrażają funkcjonalność na Twoim TiVo, iPhonie, ulubionej stronie internetowej itp. Upewniają się, że faktycznie robi to, co powinno. Ich najwyższym priorytetem jest to, aby to działało.
  • projektanci sprawiają, że ludzie kochają to . Zastanawiają się, jak wejść z nim w interakcję, jak powinien wyglądać i jak powinien się czuć. Projektują wrażenia z korzystania z aplikacji, strony internetowej, urządzenia. Ich najwyższy priorytetem jest to, abyś zakochał się w tym, co tworzą deweloperzy. To właśnie rozumie doświadczenie użytkownika i nie jest to to samo, co doświadczenie marki.
Ponadto programowanie i projektowanie wymagają różnych postaw mentalnych , a nie tylko różnej wiedzy i umiejętności. Dobry projekt interfejsu użytkownika wymaga obu zestawów myślenia, obu baz wiedzy, obu grup umiejętności. A opanowanie jednego z nich zajmuje lata.

Programiści powinni oczekiwać, że projektowanie UI będzie trudne, tak jak projektanci UI powinni spodziewaj się, że pisanie kodu będzie trudne.

 215
Author: Karl Fast,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-17 14:17:18

To, co naprawdę pomaga mi poprawić mój projekt, to złapać kolegę programisty, jednego z QA guys, PM, lub każdego, kto zdarza się przejść i ich wypróbować konkretny widget lub ekran.

Its amazing what you will realize when you watch someone else use your software for the first time

 70
Author: Kevin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-05 00:59:16

Ostatecznie chodzi o empatię. czy możesz postawić się w sytuacji swojego użytkownika?

Jedną z rzeczy, która pomaga, oczywiście, jest "jedzenie własnej karmy dla psów" - używanie aplikacji jako prawdziwego użytkownika, i widząc, co jest denerwujące.

Innym dobrym pomysłem jest znalezienie sposobu na oglądanie prawdziwego użytkownika za pomocą aplikacji, co może być tak skomplikowane,jak laboratorium użyteczności z jednokierunkowymi lustrami, przechwytywaniem wideo z ekranu, kamerami wideo na użytkowników itp. lub może być tak proste jak papier prototypowanie przy użyciu następnej osoby, która przechodzi korytarzem.

Jeśli Wszystko inne zawiedzie, pamiętaj, że prawie zawsze lepiej jest, aby interfejs 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 preferuje". Wkrótce twój interfejs użytkownika jest zbyt skomplikowany. Wybierz tryb domyślny i ustaw preferencje jako opcję konfiguracji zaawansowanej. Albo po prostu to pominąć.

Jeśli dużo czytasz o projekcie możesz łatwo zawiesić się na upuszczonych cieniach i zaokrąglonych rogach i tak dalej. To nie jest najważniejsze. Prostota i czytelność są ważne rzeczy.

 32
Author: Jacob Mattison,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-05 01:05:53

W przeciwieństwie do popularnego mitu nie ma dosłownie żadnych miękkich aspektów w projektowaniu interfejsu użytkownika, przynajmniej nie więcej niż potrzeba, aby zaprojektować dobry back-end.

Rozważ następujące elementy; dobry projekt back-end opiera się na dość solidnych zasadach i elementach, które zna każdy dobry programista:

  • Low coupling

  • Wysoka spójność

  • Wzory architektoniczne

  • Najlepsze praktyki branżowe

  • Etc

Dobry back end projekt rodzi się zwykle poprzez szereg interakcji, gdzie na podstawie mierzalnych sprzężeń zwrotnych uzyskanych podczas testów lub rzeczywistego wykorzystania początkowy schemat jest stopniowo ulepszany. Czasami trzeba prototypować mniejsze aspekty back-endu i testować je w izolacji itp.

Dobry projekt interfejsu użytkownika opiera się na zasadach dźwięku of:

  • Visibility

  • Affordance

  • Feedback

  • Tolerancja

  • Prostota

  • Spójność

  • Struktura

UI rodzi się również poprzez test i trial, poprzez iteracje, ale nie za pomocą kompilatora + zautomatyzowanego kombinezonu testowego, ale ludzi. Podobnie jak back end istnieją najlepsze praktyki branżowe, techniki pomiaru i oceny, sposoby myślenia o interfejsie użytkownika i wyznaczania celów w kategoriach 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ę od projektowania back-endu i dlatego nie spodziewaj się, że będziesz w stanie zrobić dobry interfejs bez uprzedniej nauki. Jednak obie te czynności mają ze sobą wspólny proces projektowania. Wierzę, że każdy, kto może zaprojektować dobre oprogramowanie, jest w stanie zaprojektować dobry interfejs użytkownika, o ile poświęci trochę czasu na naukę.

Polecam wziąć kurs interakcji człowieka z komputerem, sprawdź MIT i stronę Yale na przykład dla materiałów online:

Model strukturalny a funkcjonalny w zrozumieniu i użytkowaniu

The excellent earlier post by Thorsten79 porusza temat ekspertów od tworzenia oprogramowania vs użytkowników i jak ich rozumienie oprogramowania różni się. Specjaliści od uczenia się rozróżniają funkcjonalne i strukturalne modele mentalne. Znalezienie drogi do domu przyjaciela może być doskonałym przykładem różnicy między nimi:

  • Pierwsze podejście zawiera zestaw szczegółowych instrukcji: weź pierwszy zjazd z autostrady, a następnie po 100 jardów skręcić w lewo itp. Jest to przykład modelu funkcjonalnego: lista konkretnych kroków niezbędnych do osiągnięcia określonego celu. Funkcjonalne modele są łatwe w użyciu, nie wymagają wiele myślenia tylko proste wykonanie. Oczywiście jest kara za prostotę: może to nie być najbardziej efektywna trasa i każda wyjątkowa sytuacja (np. odwrócenie 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 odliczyć funkcjonalne model (trasa). Oczywiście wymaga to więcej wysiłku, ale znacznie bardziej niezawodny sposób wykonania zadania pomimo możliwych odchyleń.

Wybór pomiędzy przekazaniem funkcjonalnego lub strukturalnego modelu przez interfejs użytkownika (na przykład tryb Kreator vs tryb zaawansowany) nie jest taki 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.

Google maps to świetny przykład: obejmują one zarówno funkcjonalny i strukturalny model, podobnie jak wiele nawigacji satelitarnych.

Innym wymiarem problemu jest to, że model strukturalny przedstawiony za pomocą interfejsu użytkownika nie może odwzorowywać struktury oprogramowania, ale raczej naturalnie odwzorowywać strukturę zadania użytkownika lub obiektu zadania.

Trudność polega na tym, że wielu programistów będzie miało dobry model strukturalny ich oprogramowania wewnętrznego, ale tylko funkcjonalny model zadania użytkownika, które oprogramowanie ma na celu assist at. Aby zbudować dobry interfejs użytkownika, trzeba zrozumieć strukturę zadania/obiektu zadania i mapować interfejs do tej struktury.

W każdym razie, nadal nie mogę polecić podjęcia formalnego kursu HCI wystarczająco mocno. Jest wiele rzeczy związanych, takich jak heurystyka, Zasady wywodzące się z Gestalt phychology, sposoby uczenia się ludzi itp.

 26
Author: Vlad Gudim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:46:54

Proponuję zacząć od robienia całego interfejsu użytkownika w taki sam sposób, jak teraz, bez skupiania się na użyteczności i rzeczy.

Alt text 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 gdy nie ma już nic do odebrania. - Saint-Exupéry

I zastosuj to w swoim projekcie.

 25
Author: Hoffmann,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-07 21:00:22

Wielu programistów uważa, że ponieważ potrafią pisać kod, mogą robić to wszystko. Projektowanie interfejsu to zupełnie inna umiejętność, której w ogóle nie uczyłem się, gdy uczęszczałem na studia. To nie jest coś, co przychodzi naturalnie.

Kolejna dobra książka to projektowanie codziennych rzeczy przez Donalda Normana.

 16
Author: thursdaysgeek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-06 10:50:57

Istnieje ogromna różnica między designem a estetyką i często są one mylone.

Piękny interfejs użytkownika wymaga artystycznych lub przynajmniej estetycznych umiejętności, których wielu, w tym ja, nie jest w stanie wyprodukować. Niestety, to nie wystarczy i nie sprawia, że interfejs użytkownika jest użyteczny, jak widać w wielu ciężkich 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óre kwestie z psychologii (np. prawo Fitta, prawo Hicka), i inne tematy. Bardzo niewiele programów CS trenuje do tego. Bardzo niewielu programistów, których znam, wybierze książkę testującą użytkowników nad książką JUnit itp.

Wielu z nas jest również "podstawowymi programistami", którzy myślą o interfejsach użytkownika jako fasadzie, a nie jako o czynniku, który mógłby przyczynić się do sukcesu naszego projektu.

Ponadto większość doświadczeń związanych z tworzeniem interfejsu użytkownika jest niezwykle frustrująca. Możemy albo użyć zabawki GUI budowniczych jak stary VB i mieć do czynienia z brzydki kod kleju, lub używamy API, które frustrują nas bez końca, jak próby uporządkowania układów w huśtawce.

 14
Author: Uri,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-05 02:23:25

Przejdź do Slashdota i przeczytaj komentarze do każdego artykułu dotyczącego Apple. Znajdziesz dużą liczbę osób mówiących o tym, że produkty Apple nie są niczym szczególnym, a przypisywanie sukcesu iPoda i iPhone ' a osobom starającym się być modnym lub modnym. Zazwyczaj przeglądają listy funkcji i zwracają uwagę, że wcześniej nie robili nic, czego nie robiły Odtwarzacze MP3 lub smartfony.

Są ludzie, którzy lubią iPoda i iPhone ' a, bo robią to, co chcą użytkownicy po prostu i łatwo, bez odniesienia do podręczników. Interfejsy są tak intuicyjne, jak interfejsy się dostają, zapadają w pamięć i są wykrywalne. Nie przepadam za UI na MacOSX jak byłem na wcześniejszych wersjach, myślę, że zrezygnowali z przydatności na rzecz glitza, ale iPod i iPhone to przykłady doskonałego projektu.

Jeśli jesteś w pierwszym obozie, nie myślisz tak, jak przeciętny człowiek, a zatem prawdopodobnie zrobisz złe interfejsy użytkownika, ponieważ nie możesz odróżnić ich od dobrych jeden. Nie oznacza to, że jesteś beznadziejny, ale raczej, że musisz wyraźnie nauczyć się dobrych zasad projektowania interfejsu i jak rozpoznać dobry interfejs użytkownika(podobnie jak ktoś z Aspergerem może potrzebować nauczyć się umiejętności społecznych wyraźnie). Oczywiście samo poczucie dobrego interfejsu użytkownika nie oznacza, że możesz go stworzyć; moje uznanie dla literatury, na przykład, nie wydaje się rozciągać na zdolność (obecnie) do pisania opowiadań.

Więc spróbuj rozwinąć poczucie dobrego projektowania interfejsu użytkownika. Dotyczy to nie tylko oprogramowania. "Design of Everyday Things" Dona Normana to klasyka, są też inne książki. Zdobądź przykłady udanych projektów interfejsu użytkownika i baw się nimi na tyle, aby poczuć różnicę. Rozpoznaj, że być może musisz nauczyć się nowego sposobu myślenia o rzeczach i cieszyć się nim.

 12
Author: David Thornley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-05 15:22:53

Główna zasada, której się trzymam, to nigdy nie próbować robić obu naraz. Jeśli pracuję nad kodem zaplecza, skończę to robić, zrobię sobie przerwę i wrócę z założonym interfejsem. Jeśli spróbujesz pracować nad nim podczas pisania kodu, podejdziesz do niego z niewłaściwym nastawieniem i w rezultacie otrzymasz okropne interfejsy.

Myślę, że zdecydowanie można być zarówno dobrym back-end developerem, jak i dobrym projektantem UI, wystarczy nad tym popracować, poczytać i poszperać nad temat (wszystko od # 7 Millera po archiwa Nielsena) i upewnij się, że rozumiesz Dlaczego projektowanie UI jest najważniejsze.

Myślę, że nie jest to przypadek konieczności bycia kreatywnym, ale raczej, podobnie jak rozwój zaplecza, jest to bardzo metodyczna, bardzo uporządkowana rzecz, której trzeba się nauczyć. To ludzie stają się "kreatywni" dzięki interfejsom użytkownika, co tworzy jedne z największych potworów użyteczności... Spójrz na 100% Strony Flash, dla zaczynaj...

Edit : Książka Kruga jest naprawdę dobra... zapoznaj się z nim, zwłaszcza jeśli zamierzasz projektować strony internetowe.

 10
Author: James B,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-05 00:57:31

Powodów jest wiele.

(1) programista nie widzi rzeczy z punktu widzenia użytkownika. To jest zwykły podejrzany: brak empatii. Ale zwykle nie jest to prawdą, ponieważ deweloperzy nie są tak obcy, jak ludzie je się.

(2) innym, bardziej powszechnym powodem jest to, że deweloper będąc tak blisko swoich rzeczy, pozostając ze swoimi rzeczami tak długo, nie zdaje sobie sprawy, że jego rzeczy mogą nie być tak znajome (termin lepszy niż intuicyjny) dla innych osób.

(3) kolejnym powodem jest brak technik programisty.

Moje wielkie twierdzenie: przeczytaj dowolny interfejs użytkownika, projektowanie interakcji człowieka, prototypowanie książki. np. projektowanie tego, co oczywiste: zdroworozsądkowe podejście do projektowania aplikacji internetowych, nie każ mi myśleć: zdroworozsądkowe podejście do Web Usability, 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, porażka/wyjątek, alternatywa.

Zatem z punktu A można 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 przepływ zadań? Nie, po prostu to przeczyszczają.

Ponieważ nawet UI experst nie ma techniki, deweloperzy nie mają szans. Myśli, że to jasne w jego głowie. Ale nie jest to nawet jasne na papierze, nie mówiąc już o implementacji oprogramowania.

Muszę użyć do tego własnych, ręcznie robionych technik.

 8
Author: george kyaw naing,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-14 18:21:58

Staram się być w kontakcie z projektowanymi stronami i tekstami. Znalazłem również doskonałą książkę Robin WilliamsKsiążka Projektowa Nie-projektanta być bardzo interesujące w tych badaniach.

Uważam, że projektowanie i użyteczność jest bardzo ważną częścią inżynierii oprogramowania i powinniśmy się tego więcej nauczyć i przestać dawać wymówki, że nie powinniśmy projektować.

Każdy może być projektantem od czasu do czasu, podobnie jak każdy może być programistą.

 7
Author: Edwin Jarvis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-05 00:58:21

Kiedy zbliżam się do projektowania interfejsu użytkownika, oto kilka rzeczy, które zapamiętuję (zdecydowanie nie jest to pełna lista):

  • Przekazywanie modelu . Interfejs użytkownika jest narracją, która wyjaśnia użytkownikowi model mentalny. Ten model może być obiektem biznesowym, zbiorem relacji, co masz. Znaczenie wizualne, rozmieszczenie przestrzenne i uporządkowanie przepływu pracy odgrywają rolę w komunikowaniu tego modelu użytkownikowi. Na przykład, pewien rodzaj listy vs inny 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 tylko jeden model jest komunikowany na raz. Programiści często próbują komunikować więcej niż jeden model lub części kilku w tej samej przestrzeni UI.

  • Spójność . Ponowne używanie popularnych metafor interfejsu użytkownika bardzo pomaga. Bardzo ważna jest również wewnętrzna spójność.

  • Grupowanie zadań . Użytkownicy nie powinni musieć przenosić mysz na całej długości ekranu, aby zweryfikować lub zakończyć powiązaną sekwencję poleceń. Modalne okna dialogowe i menu rozwijane mogą być szczególnie złe w tej dziedzinie.

  • Poznanie odbiorców . Jeśli użytkownicy będą wykonywać te same czynności w kółko, szybko staną się zaawansowanymi użytkownikami w tych zadaniach i będą sfrustrowani próbami obniżenia początkowej bariery wejścia. Jeśli użytkownicy wykonują wiele różnych czynności rzadko, najlepiej upewnić się, że interfejs użytkownika trzyma ich ręka cały czas.

 7
Author: Rex M,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-05 01:28:34
 7
Author: Marco Luglio,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-07 18:11:22

Uważam, że najlepszym narzędziem w projektowaniu UI jest obserwowanie pierwszej próby użycia Oprogramowania przez użytkownika. Zrób mnóstwo notatek i zadaj im kilka pytań. Nigdy nie kieruj ich ani nie próbuj wyjaśniać, jak działa oprogramowanie. Jest to zadanie interfejsu użytkownika (i dobrze napisanej dokumentacji).

Konsekwentnie stosujemy to podejście we wszystkich projektach. Zawsze fascynujące jest oglądanie, jak użytkownik radzi sobie z oprogramowaniem w sposób, którego nigdy wcześniej nie rozważałeś.

Dlaczego projektowanie UI jest takie trudne? Ogólnie rzecz biorąc ponieważ deweloper i użytkownik nigdy się nie spotykają.

 5
Author: Gerard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-05 02:24:19

Duffymo właśnie przypomniał mi dlaczego: wielu programistów myśli "* Design "= = "sztuka".

Dobry projekt interfejsu użytkownika nie jest absolutnie artystyczny. Opiera się ona na solidnych zasadach, które można wykonać za pomocą kopii zapasowej danych, jeśli masz czas na przeprowadzenie badań.

Myślę, że programiści muszą poświęcić trochę czasu, aby nauczyć się zasad. Myślę, że w naszej naturze leży stosowanie najlepszych praktyk, kiedy tylko możemy, czy to w kodzie, czy w układzie. Wszystko, co musimy zrobić, to uświadomić sobie, do czego służą najlepsze praktyki ten aspekt naszej pracy.

 5
Author: nailitdown,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-05 03:02:32

Co zrobiłem, aby stać się lepszym w projektowaniu UI?
zwróć na to uwagę!

To jest jak Kiedykolwiek widzisz wykres w wiadomościach lub elektroniczny szyld autobusowy i zastanawiasz się " skąd oni mają te dane? Zrobili to z surowym sql czy używają LINQ?"(lub Wstaw tutaj swoją wspólną geekowską ciekawość).

Trzeba zacząć to robić, ale z elementami wizualnymi wszelkiego rodzaju.

Ale tak jak nauka nowego języka, jeśli nie naprawdę rzuć się w to, a nigdy się tego nie nauczysz.

Zaczerpnięte z kolejna odpowiedź napisałem:

Naucz się patrzeć, naprawdę patrzeć, na otaczający cię świat. Dlaczego podoba mi się ten interfejs, ale nienawidzę tego? Dlaczego tak trudno znaleźć dania z makaronem w tym menu restauracji? Wiedziałem, co oznacza ten znak, zanim przeczytałem słowa. Dlaczego? Dlaczego okładka książki wygląda tak źle? Naucz się poświęcać czas na zastanowienie się, dlaczego tak reagujesz na elementy wizualne wszystkie rodzaje, a następnie zastosować to do swojej pracy.

 5
Author: Dhaust,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:34:24

Jakkolwiek to robisz (i jest kilka świetnych punktów powyżej), to naprawdę pomogło mi, gdy zaakceptowałem, że nie ma czegoś takiego jak intuicja....

Słyszę kłótnie dudniące na horyzoncie... więc pozwól mi wyjaśnić trochę.

Intuicyjny: używanie tego, co czuje się słuszne lub prawdziwe w oparciu o nieświadomą metodę lub uczucie.

Jeśli (jak postulował Carl Sagan) zaakceptujesz, że nie możesz pojąć rzeczy, które są absolutnie niepodobne do niczego, z czym kiedykolwiek się zetknąłeś, to jak możesz "wiedzieć" , jak używać czegoś, jeśli nigdy nie używałeś czegoś podobnego zdalnie?

Pomyśl o tym: dzieci próbują otwierać drzwi nie dlatego ,że "wiedzą" , jak działa klamka, ale dlatego, że widzieli, jak ktoś inny to robi... często przekręcają pokrętło w złym kierunku lub pociągają zbyt szybko. Muszą nauczyć się, jak działa klamka. Ta wiedza zostaje następnie zastosowana w różnych, ale podobnych przypadkach: otwarcie okna, otwarcie szuflady, otwarcie prawie wszystkiego dużego z dużym, uchwyt przypominający gałkę.

Nawet proste rzeczy, które wydają się nam intuicyjne, nie będą intuicyjne dla ludzi z innych kultur. Jeśli ktoś trzymał rękę przed nimi i zrzekł się ręki w górę iw dół na nadgarstku, utrzymując rękę nieruchomo.... rezygnują z Ciebie? Prawdopodobnie, chyba że jesteś w Japonii. Ten sygnał może oznaczać "chodź tu". Więc kto ma rację? Oba, oczywiście, we własnym kontekście. Ale jeśli podróżujesz do obu, musisz wiedzieć jedno i drugie... UI design.

Staram się znaleźć rzeczy, które są już "znane" potencjalnym użytkownikom mojego projektu, a następnie zbudować wokół nich interfejs użytkownika: user-centric design.

Spójrz na iPhone 'a Apple' a. Nawet jeśli go nienawidzisz, musisz uszanować ilość myśli, która w to weszła. Jest idealny? Oczywiście, że nie. Z biegiem czasu postrzegana "intuicyjność" obiektu może rosnąć, a nawet całkowicie zanikać.

Na przykład. Większość wie, że pasek czarny z dwoma rzędami dziur wzdłuż góry i dołu wygląda jak pasek filmu... a może tak?

Zapytaj swojego przeciętnego 9 lub 10-latka, co oni myślą, że to jest. Możesz być zaskoczony, jak wiele dzieci będzie miało teraz trudności z identyfikacją go jako paska Filmowego, nawet jeśli jest to coś, co nadal jest używane do reprezentowania Hollywood lub czegokolwiek związanego z filmem (filmem). Większość filmów z ostatnich 20 lat została nakręcona cyfrowo. A kiedy ostatni raz ktoś z nas trzymał jakiś film, zdjęcia lub film?

Więc, co to wszystko sprowadza się do mnie jest: znać swoich odbiorców i stale badania, aby nadążyć za trendami i zmianami w rzeczach, które są "intuicyjne", kierować swoich głównych użytkowników i starać się nie robić rzeczy, które karzą niedoświadczonych na korzyść zaawansowanych użytkowników lub spowolnić zaawansowanych użytkowników, aby trzymać za rękę nowicjuszy.

Ostatecznie każdy program będzie wymagał pewnego przeszkolenia ze strony użytkownika, aby z niego korzystać. Ile szkolenia i na jakim poziomie użytkownika jest częścią decyzje, które należy podjąć.

Niektóre rzeczy są mniej lub bardziej znane w oparciu o poziom doświadczenia użytkownika docelowego jako człowieka, użytkownika komputera, ucznia lub cokolwiek innego.

Po prostu strzelam dla najgrubszej części krzywej dzwonka i staram się zdobyć jak najwięcej osób, ale zdając sobie sprawę, że nigdy nie zadowoli wszystkich....

 5
Author: exoboy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-16 06:11:56

Wiem, że Microsoft jest raczej niezgodny z własnymi wytycznymi, ale odkryłem, że czytanie ich wytycznych dotyczących projektowania systemu Windows naprawdę mi pomogło. Mam kopię na mojej stronie tutaj , po prostu przewiń trochę w dół the Vista UX Guide. Pomogło mi to w takich rzeczach, jak kolory, odstępy, układy i wiele innych.

 4
Author: David Anderson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-05 02:54:35

Uważam, że główny problem nie ma nic wspólnego z różnymi talentami lub umiejętnościami. Głównym problemem jest to, że jako programista wiesz zbyt wiele o tym, co aplikacja robi i jak to robi, i automatycznie projektujesz swój interfejs z punktu widzenia kogoś, kto ma tę wiedzę.

Podczas gdy użytkownik zazwyczaj zaczyna zupełnie nic nie wiedząc o aplikacji i nigdy nie powinien wiedzieć nic o jej wewnętrznym działaniu.

To jest bardzo trudne, prawie niemożliwe, aby nie korzystać z wiedzy, którą masz - i dlatego interfejs użytkownika nie powinien być zaprojektowany przez kogoś, kto rozwija aplikację za nim.

 4
Author: Michael Borgwardt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-05 14:34:49

"Projektowanie z obu stron ekranu" przedstawia bardzo prosty, ale głęboki powód, dlaczego programiści uważają projektowanie interfejsu użytkownika za trudne: programiści są szkoleni, aby myśleć w kategoriach przypadków krawędziowych, podczas gdy projektanci interfejsu są szkoleni, aby myśleć w kategoriach typowych przypadków lub użytkowania.

Więc przejście z jednego świata do drugiego jest z pewnością trudne, jeśli domyślne szkolenie w jednym jest dokładnym przeciwieństwem drugiego.

 4
Author: MSN,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-05 20:14:33

Powiedzieć, że programy są do bani w projektowaniu UI, to pominąć punkt. Problem polega na tym, że formalne szkolenie, które większość programistów otrzymuje, jest zgodne z technologią. Interakcja człowiek-komputer nie jest prostym tematem. To nie jest coś, co mogę "umysł-meld" do ciebie, zapewniając proste jednolinijkowe stwierdzenie, które sprawia, że zdajesz sobie sprawę, "Oh użytkownicy będą używać tej aplikacji bardziej efektywnie, jeśli zrobię x zamiast y."

To dlatego, że istnieje jedna część UI design, którą jesteś zaginęła. Ludzki mózg. Aby zrozumieć, jak zaprojektować interfejs użytkownika, musisz zrozumieć, w jaki sposób ludzki umysł wchodzi w interakcje z maszyną. Jest znakomity kurs na Uniwersytecie w Minnesocie na ten temat prowadzony przez profesora psychologii. Nazywa się to "interakcją człowiek-maszyna". Opisuje to 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 udowodnisz, że metoda projektowania UI zawsze będzie pracy w każdej sytuacji. Możesz skorelować, że wielu użytkowników znajdzie konkretny projekt interfejsu użytkownika atrakcyjny lub wydajny, ale nie możesz udowodnić, że zawsze będzie uogólniał.

Dodatkowo, istnieją dwie części do projektowania interfejsu użytkownika, które Wiele osób wydaje się tęsknić. Jest estetyczny urok i funkcjonalny przepływ pracy. Jeśli zdecydujesz się na 100% estetyczny wygląd, na pewno ludzie będą, ale twój produkt. Szczerze wątpię, że estetyka kiedykolwiek zmniejszy frustrację użytkownika.

Są kilka dobrych książek na ten temat i oczywiście do podjęcia (jak Bill Buxton ' s Szkicowanie doświadczeń użytkowników, oraz poznanie na łonie natury Edwin Hutchins). Na wielu uniwersytetach prowadzone są studia podyplomowe dotyczące interakcji człowiek - komputer.

Ogólna odpowiedź na to pytanie leży jednak w tym, jak jednostki są nauczane informatyki. Wszystko opiera się na matematyce, logice, a nie na doświadczeniu użytkownika. Aby to osiągnąć, potrzebujesz więcej niż ogólnego 4 rok informatyki stopień (chyba że Twój 4 roku informatyki stopień miał minor w psychologii i został podkreślony w interakcji człowiek-komputer).

 3
Author: jwendl,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-06 10:52:14

Odwróćmy twoje pytanie -

czy "projektanci interfejsu" są skazani tylko na projektowanie architektury informacji i warstw prezentacji? Czy jest coś, co mogą zrobić, aby przekwalifikować swoje mózgi, aby były bardziej skuteczne w projektowaniu przyjemnych i wydajnych warstw systemowych?

Wydaje się, że "projektanci interfejsu" musieliby spojrzeć z zupełnie innej perspektywy - musieliby patrzeć z wnętrza pudełka na zewnątrz; zamiast patrzeć z zewnątrz pudełka.

Alan Według Coopera, więźniowie prowadzą azyl, nie możemy przyjąć obu perspektyw - możemy nauczyć się dobrze nosić jeden kapelusz, ale nie możemy po prostu zmienić kapelusza.

 2
Author: igouy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-07 19:04:18

Myślę, że to dlatego, że dobry UI nie jest logiczne. Dobry interfejs użytkownika jest intuicyjny.

Programiści zazwyczaj źle robią na "intuicyjnych"

 2
Author: Gregor Brandt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-10 23:30:52

Użytecznym kadrowaniem jest aktywne rozważanie tego, co robisz, jako projektowanie procesu komunikacji. W bardzo realnym sensie Twój interfejs jest językiem, którego użytkownik musi użyć, aby powiedzieć komputerowi, co ma robić. Prowadzi to do rozważenia kilku punktów:

  1. czy użytkownik zna już ten język? Korzystanie z wysoce idiosynkratycznego interfejsu jest jak komunikowanie się w języku, którym nigdy wcześniej nie mówiłeś. Więc jeśli twój interfejs w ogóle musi być idiosynkratyczny, to najlepiej Przedstaw się za pomocą najprostszych terminów i kilku rozrywek. Z drugiej strony, jeśli twój interfejs używa idiomów, do których użytkownik jest przyzwyczajony, od samego początku nabierze pewności siebie.
  2. Wrogiem komunikacji jest hałas. Hałas słuchowy zakłóca komunikację mówioną; hałas wzrokowy zakłóca komunikację wzrokową. Im więcej hałasu można wyciąć z interfejsu, tym łatwiej będzie się z nim komunikować.
  3. jak w ludzkiej rozmowie, to często nie jest to, co mówisz, tak to się mówi. Sposób, w jaki większość oprogramowania komunikuje się, jest niegrzeczny do tego stopnia, że uderzyłoby go w twarz, gdyby była to osoba. Jak byś się czuł, gdybyś zadał komuś pytanie, a on siedział i gapił się na ciebie przez kilka minut, odmawiając odpowiedzi w jakikolwiek inny sposób, zanim odpowiesz? Wiele elementów interfejsu, takich jak paski postępu i automatyczny wybór ostrości, pełni podstawową funkcję grzeczności. Zadaj sobie pytanie, jak możesz sprawić, by dzień użytkownika był trochę bardziej miło.

Naprawdę trudno jest określić, co programiści uważają za interakcję z interfejsem, inną niż proces komunikacji, ale być może problem polega na tym, że nie jest ona w ogóle postrzegana jako nic innego.

 2
Author: chaos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-10 23:54:42

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

  • Dlaczego programista miałby oczekiwać, że będzie w stanie zaprojektować dobry interfejs użytkownika?
  • Ile miał szkoleń w tej dziedzinie? Ile książek przeczytał? Ile rzeczy zaprojektował przez ile lat? Czy miał okazję zobaczyć reakcję jego użytkowników?

Nie spodziewamy się, że przypadkowy "Joe hydraulik" będzie w stanie dobrze napisać kod. Więc dlaczego mielibyśmy oczekiwać, że przypadkowy "Joe programista" zaprojektuje dobry interfejs użytkownika?

Empatia pomaga. Oddzielenie projektu interfejsu użytkownika i programowania pomaga. Testy użyteczności pomagają.

Ale projektowanie UI to rzemiosło, które trzeba się nauczyć i praktykować, jak każdy inny.

 2
Author: Mihai Nita,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-11 10:42:03

Programiści nie są (koniecznie) dobrzy w projektowaniu UI z tego samego powodu, dla którego nie są (koniecznie) dobrzy w robieniu na drutach; to trudne, wymaga praktyki i nie zaszkodzi, gdy ktoś pokaże Ci, jak to zrobić.

Większość programistów (w tym ja) zaczęła "projektować" interfejs użytkownika, ponieważ był to niezbędny element pisania oprogramowania. Dopóki deweloper nie podejmie starań, aby być w tym dobrym, nie będzie.

 2
Author: MattBelanger,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-11 20:00:20

Aby poprawić wystarczy rozejrzeć się po istniejących stronach. Oprócz książek już sugerowanych, warto zajrzeć do doskonałej książki Robina Williamsa " the Non-designers design Book "(Sanitized Amazon link)

[[0]} Zobacz, co jest możliwe w projektowaniu wizualnym, zapoznając się z różnymi zgłoszeniami na the Zen Garden.

Projektowanie UI to zdecydowanie Sztuka, podobnie jak wskaźniki W C, niektórzy to rozumieją, a niektórzy nie.

Ale przynajmniej możemy mieć chichot przy ich próbach . BTW dzięki OK / Anuluj za śmieszny komiks i dzięki Joel za umieszczenie go w książce "The Best Software Writing I" ().

 2
Author: Rob Wells,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-11 20:04:20

Interfejs użytkownika nie jest czymś, co można zastosować po fakcie, jak cienka warstwa farby. Jest to coś, co musi być tam na początku i oparte na prawdziwych badaniach. Oczywiście jest mnóstwo badań użyteczności. Musi to być nie tylko na początku, ale musi stanowić rdzeń samego powodu, dla którego tworzysz oprogramowanie: istnieje pewna luka na świecie, pewien problem i musi być bardziej użyteczny i wydajny.

Oprogramowanie nie istnieje dla własnego dobra. Powodem istnienia peice oprogramowania są ludzie. To jest absolutnie niedorzeczne nawet próbować wymyślić pomysł na nowy peice oprogramowania, bez zrozumienia, dlaczego ktoś miałby go potrzebować. Ale to się dzieje cały czas.

Zanim napiszesz pojedynczy wiersz kodu, powinieneś przejrzeć papierowe wersje interfejsu i przetestować go na prawdziwych ludziach. To jest trochę dziwne i głupie, to działa najlepiej z dziećmi, a ktoś zabawny działając jako "Komputer".

Interfejs musi wykorzystać nasze naturalne możliwości poznawcze. Jak jaskiniowiec mógłby użyć Twojego programu? Na przykład ewoluowaliśmy, aby być naprawdę dobrzy w śledzeniu poruszających się 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 pewnych rodzajach abstrakcji, ale nie w innych. Jako programiści jesteśmy szkoleni do gimnastyki umysłowej i backflipów zrozumieć najdziwniejsze abstrakcje. Na przykład, rozumiemy, że sekwencja tajemnego tekstu może reprezentować i być przetłumaczona na wzór stanu elektromagnetycznego na metalowym talerzu, który napotkany przez starannie zaprojektowane urządzenie prowadzi do sekwencji niewidocznych zdarzeń, które zachodzą z prędkością światła na obwodzie elektronicznym, a zdarzenia te mogą być skierowane w celu uzyskania użytecznego wyniku. To niewiarygodnie nienaturalna rzecz, którą trzeba zrozumieć. Zrozumieć, że podczas gdy jest mamy zupełnie racjonalne wyjaśnienie dla nas, dla świata zewnętrznego, wygląda na to, że piszemy niezrozumiałe zaklęcia, aby przywołać niewidzialne czujące duchy, aby wykonywały nasze rozkazy.

Rodzaje abstrakcji, które rozumieją normalni ludzie, to mapy, diagramy i symbole. Uważaj na symbole, ponieważ symbole są bardzo kruchą ludzką koncepcją, która wymaga świadomego wysiłku umysłowego, aby odszyfrować, dopóki symbol nie zostanie nauczony.

Sztuczka z symbolami polega na tym, że musi być wyraźny związek pomiędzy symbolem, a tym, co on reprezentuje. Rzecz, którą reprezentuje, musi być rzeczownikiem, w którym to przypadku symbol powinien wyglądać bardzo podobnie do rzeczy, którą reprezentuje. Jeśli symbol reprezentuje bardziej abstrakcyjne pojęcie, należy to wcześniej wyjaśnić. Zobacz ukryte niezabezpieczone ikony w pasku narzędzi msword lub photoshop oraz abstrakcyjne pojęcia, które reprezentują. Należy się dowiedzieć, że ikona narzędzia kadrowania w programie photoshop oznacza narzędzie kadrowania. trzeba to rozumieć co w ogóle oznacza uprawa. Są to warunki wstępne do prawidłowego korzystania z tego oprogramowania. Co przywołuje ważny punkt, strzeż się zakładanej wiedzy.

Umiejętność rozumienia map zyskujemy dopiero około 4 roku życia. Chyba gdzieś kiedyś czytałem, że szympansy zdobywają umiejętność rozumienia map w wieku około 6-7 lat.

Powodem, dla którego GUI były tak udane, jest to, że zmieniły krajobraz głównie interfejsów tekstowych do komputerów, do czegoś, co zmapował koncepcje komputerowe na coś, co przypominało fizyczne miejsce. Gdzie GUI zawodzą pod względem użyteczności, jest gdzie przestają przypominać coś, co można zobaczyć w prawdziwym życiu. Istnieją niewidzialne, nieprzewidywalne, niezrozumiałe rzeczy, które dzieją się w komputerze, które nie przypominają niczego, co można zobaczyć w świecie fizycznym. Część z tego jest konieczna, ponieważ nie ma sensu robić tylko symulatora rzeczywistości - chodzi o to, aby oszczędzać pracę, więc musi być trochę magii. Ale to Magia musi mieć sens i być oparta na abstrakcji, do której ludzie są dobrze przystosowani. Kiedy nasze abstrakcje zaczynają być głębokie, warstwowe i niedopasowane do danego zadania, rzeczy się psują. Innymi słowy, interfejs nie działa jako dobra mapa dla podstawowego oprogramowania.

Jest wiele książek. Dwa, które przeczytałem i dlatego mogę polecić, to" projektowanie codziennych rzeczy "Donalda Normana i" ludzki interfejs " Jefa Raskin.

Polecam również kurs psychologii. "Projektowanie codziennych rzeczy" mówi o tym trochę. Wiele interfejsów rozpada się z powodu "Ludowego zrozumienia" psychologii przez programistę. Jest to podobne do "fizyki ludowej". Obiekt w ruchu pozostaje w ruchu nie ma sensu dla większości ludzi. "Musisz go naciskać, aby utrzymać go w ruchu!"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ą i to powinno wystarczyć!"myśli początkujący psycholog.

Polecam Discovering Psychology, serial dokumentalny PBS, prowadzony przez Philipa Zimbardo. Jeśli tego nie zrobisz, spróbuj znaleźć dobry podręcznik fizyki. Drogie. Nie te same bzdury z pulp fiction, które można znaleźć w Borders, ale te grube rzeczy, które można znaleźć tylko w Bibliotece Uniwersyteckiej. To jest Fundacja necesesary. Możesz zrobić dobry projekt bez niego, ale będziesz miał tylko intuicyjne zrozumienie tego, co się dzieje on Czytanie dobrych książek da Ci dobrą perspektywę.

 2
Author: Breton,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-12 03:29:42

Gdybyś przeczytał 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ętni ludzie wolą łatwość obsługi niż kontrolę

Ale inna odpowiedź na twoje pytanie brzmiałaby: "dlaczego stomatologia jest taka trudna dla niektórych programistów?"- Projekt UI najlepiej wykonuje projektant UI.

Http://dotmad.net/blog/2007/11/david-platt-on-why-software-sucks/

 2
Author: dotmad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-13 17:05:56