Tại sao thiết kế giao diện người dùng tốt lại khó khăn như vậy đối với một số Nhà phát triển? [đóng cửa]


206

Một số người trong chúng ta chỉ có một thời gian khó khăn với các khía cạnh nhẹ nhàng hơn của thiết kế UI ( đặc biệt là bản thân tôi ). Có phải "các lập trình viên back-end" đã cam chịu chỉ thiết kế các lớp dữ liệu và logic nghiệp vụ? Có điều gì chúng ta có thể làm để kiềm chế bộ não của mình để có hiệu quả hơn trong việc thiết kế các lớp trình bày dễ chịu và hữu ích?

Các đồng nghiệp đã giới thiệu một vài cuốn sách cho tôi bao gồm Thiết kế trang web , Đừng khiến tôi phải suy nghĩTại sao Phần mềm lại tệ , nhưng tôi tự hỏi những người khác đã làm gì để loại bỏ những thiếu sót của họ trong lĩnh vực này?


1
Đối với bản thân tôi (tôi gặp vấn đề tương tự) Tôi biết một giao diện người dùng tốt khi tôi sử dụng nó. Và tôi chắc chắn biết một giao diện người dùng làm phiền tôi. Nhưng tôi có một thời gian rất khó khăn để cố gắng tự thiết kế một cái. Nó giống như con mắt quan trọng mà tôi có khi tôi sử dụng UI của người khác không hoạt động trên các thiết kế của riêng tôi.
JMD

1
Tôi ghét thuật ngữ "coder back-end" và đã cố gắng loại bỏ nó khỏi tiêu đề
Chris Ballance

20
Thiết kế đồ họa! = Thiết kế UI. Các cựu là về làm cho mọi thứ đẹp. Thứ hai là về làm cho mọi thứ hữu ích và có thể sử dụng.
Esko Luontola

2
+1 @Esko. Thường 'đẹp' có nghĩa là hoàn toàn có thể sử dụng được. Nhưng cả hai CÓ THỂ cùng tồn tại nếu được xử lý cẩn thận và suy nghĩ.
Dhaust

12
Tại sao phát triển phần mềm rất khó cho các nhà thiết kế UI?
Greg Hurlman

Câu trả lời:


360

Hãy để tôi nói trực tiếp:

Cải thiện về điều này không bắt đầu với hướng dẫn. Nó bắt đầu với việc tinh chỉnh cách bạn nghĩ về phần mềm.

Hầu hết các nhà phát triển khó tính thực tế không có sự đồng cảm với người dùng phần mềm của họ. Họ không biết người dùng nghĩ như thế nào, cách người dùng xây dựng các mô hình phần mềm họ sử dụng và cách họ sử dụng máy tính nói chung.

Đó là một vấn đề điển hình khi một chuyên gia va chạm với một giáo dân: Làm thế nào một người bình thường có thể ngu ngốc đến mức không hiểu những gì chuyên gia hiểu được 10 năm trước?

Một trong những sự thật đầu tiên phải thừa nhận là khó nắm bắt đối với hầu hết tất cả các nhà phát triển có kinh nghiệm là:

Người bình thường có một khái niệm phần mềm rất khác so với bạn có. Họ không có manh mối gì về lập trình. Không ai. Số không. Và họ thậm chí không quan tâm. Họ thậm chí không nghĩ rằng họ phải quan tâm. Nếu bạn buộc họ, họ sẽ xóa chương trình của bạn.

Bây giờ đó là khắc nghiệt không thể tin được cho một nhà phát triển. Anh ấy tự hào về phần mềm anh ấy sản xuất. Anh ấy yêu từng tính năng. Anh ta có thể cho bạn biết chính xác làm thế nào mã đằng sau nó hoạt động. Có thể anh ta thậm chí đã phát minh ra một thuật toán thông minh không thể tin được khiến nó hoạt động nhanh hơn 50% so với trước đây.

Và người dùng không quan tâm.

Thật là một thằng ngốc.

Nhiều nhà phát triển không thể làm việc với người dùng bình thường. Họ bị trầm cảm bởi kiến ​​thức không có sẵn về công nghệ. Và đó là lý do tại sao hầu hết các nhà phát triển né tránh và nghĩ rằng người dùng phải là những kẻ ngốc.

Họ không phải.

Nếu một nhà phát triển phần mềm mua một chiếc xe hơi, anh ta hy vọng nó sẽ chạy trơn tru. Anh ta thường không quan tâm đến áp suất lốp, sự tinh chỉnh cơ học rất quan trọng để khiến nó chạy theo cách đó. Ở đây anh không phải là chuyên gia. Và nếu anh ta mua một chiếc xe không có sự tinh chỉnh, anh ta sẽ trả lại và mua một chiếc xe làm những gì anh ta muốn.

Nhiều nhà phát triển phần mềm thích phim ảnh. Những bộ phim được thực hiện tốt khơi gợi trí tưởng tượng của họ. Nhưng họ không phải là chuyên gia sản xuất phim, sản xuất hiệu ứng hình ảnh hoặc viết kịch bản phim hay. Hầu hết các mọt sách đều rất, rất, rất tệ trong diễn xuất bởi vì tất cả chỉ nhằm thể hiện những cảm xúc phức tạp và ít về phân tích. Nếu một nhà phát triển xem một bộ phim tồi, anh ta chỉ nhận thấy rằng nó là xấu nói chung. Nerds thậm chí đã xây dựng IMDB để thu thập thông tin về những bộ phim hay và dở để họ biết nên xem cái nào và cái nào nên tránh. Nhưng họ không phải là chuyên gia trong việc tạo phim. Nếu một bộ phim tệ, họ sẽ không đi xem phim (hoặc không tải xuống từ BitTorrent;)

Vì vậy, nó tập trung vào: Làm xấu hổ người dùng bình thường như một chuyên gia là không biết gì. Bởi vì trong các lĩnh vực đó (và có rất nhiều) nơi họ không phải là chuyên gia, họ hy vọng các chuyên gia của các khu vực khác đã nghĩ về những người bình thường sử dụng sản phẩm hoặc dịch vụ của họ.

Bạn có thể làm gì để khắc phục nó? Bạn càng là một lập trình viên khó tính, bạn sẽ càng ít cởi mở hơn với suy nghĩ của người dùng thông thường. Nó sẽ là người ngoài hành tinh và không biết gì về bạn. Bạn sẽ nghĩ rằng: Tôi không thể tưởng tượng như thế nào mọi người có thể đã từng sử dụng máy tính với sự thiếu kiến thức. Nhưng họ có thể. Đối với mọi thành phần UI, hãy nghĩ về: Có cần thiết không? Có phù hợp với khái niệm người dùng có công cụ của tôi không? Làm thế nào tôi có thể làm cho anh ta hiểu? Xin vui lòng đọc lên khả năng sử dụng cho việc này, có nhiều cuốn sách hay. Đó là cả một lĩnh vực khoa học, quá.

À và trước khi bạn nói, vâng, tôi là một fan hâm mộ của Apple;)


8
Nhận xét tuyệt vời! Bạn đã đóng đinh một trong những rào cản cơ bản nhất trong thiết kế phần mềm. Một thực tế khó nuốt đối với các nhà phát triển cứng (như tôi), nhưng sự thật thường là vậy.

12
+1. Tôi khuyên bạn nên đọc "Các tù nhân đang chạy tị nạn", nó đi sâu vào chi tiết tốt về sự khác biệt trong suy nghĩ của người dùng / nhà phát triển, cũng như một số biện pháp khắc phục.
Richard Levasseur

9
+1 Thành thật mà nói, bất kỳ nhà phát triển nào không quan tâm đến người dùng là nhà phát triển kém!
Gary Willoughby

7
Những điểm rất hợp lệ và tôi nghĩ rằng tâm lý này cũng là một phần lý do khiến một số dự án do nhà phát triển điều hành (ví dụ như nguồn mở hoặc những gì bạn có) gặp phải rất khó sử dụng - bởi và lớn, hầu hết các nhà phát triển viết cho chính họ với tư cách là người dùng, không phải cho người dùng cuối "thực sự".
CloudyMusic

25
+1 Đây là lý do Linux vẫn chưa sẵn sàng cho máy tính để bàn trung bình của người dùng.
Bryan Anderson

215

UI thiết kế cứng

Cho câu hỏi:

Tại sao thiết kế UI rất khó cho hầu hết các nhà phát triển?

Hãy thử đặt câu hỏi ngược:

Tại sao lập trình rất khó cho hầu hết các nhà thiết kế UI ?

Viết mã UI và thiết kế UI yêu cầu các kỹ năng khác nhau và một tư duy khác nhau. Thiết kế giao diện người dùng là khó đối với hầu hết các nhà phát triển, không phải một số nhà phát triển, giống như viết mã là khó đối với hầu hết các nhà thiết kế, không phải một số nhà thiết kế.

Viết mã là khó. Thiết kế cũng khó. Rất ít người làm tốt cả hai. Các nhà thiết kế UI tốt hiếm khi viết mã. Họ thậm chí có thể không biết làm thế nào, nhưng họ vẫn là nhà thiết kế giỏi. Vậy tại sao các nhà phát triển giỏi cảm thấy có trách nhiệm với thiết kế UI?

Biết nhiều hơn về thiết kế UI sẽ giúp bạn trở thành một nhà phát triển tốt hơn, nhưng điều đó không có nghĩa là bạn phải chịu trách nhiệm thiết kế UI. Điều ngược lại là đúng đối với các nhà thiết kế: biết cách viết mã sẽ giúp họ trở thành những nhà thiết kế tốt hơn, nhưng điều đó không có nghĩa là họ phải chịu trách nhiệm mã hóa UI.

Làm thế nào để cải thiện thiết kế UI

Đối với các nhà phát triển muốn cải thiện thiết kế UI, tôi có 3 lời khuyên cơ bản:

  1. Công nhận thiết kế là một kỹ năng riêng biệt . Mã hóa và thiết kế là riêng biệt nhưng có liên quan. Thiết kế giao diện người dùng không phải là một tập hợp con của mã hóa. Nó đòi hỏi một tư duy, nền tảng kiến ​​thức và nhóm kỹ năng khác nhau. Có những người ngoài kia tập trung vào thiết kế giao diện người dùng.
  2. Tìm hiểu về thiết kế . Ít nhất một chút. Cố gắng học một vài khái niệm và kỹ thuật thiết kế từ danh sách dài dưới đây. Nếu bạn tham vọng hơn, hãy đọc một số sách, tham dự một hội nghị, tham gia một lớp học, lấy bằng. Có rất nhiều cách để tìm hiểu về thiết kế. Cuốn sách về thiết kế giao diện người dùng của Joel Spolky là một cuốn sách tốt cho các nhà phát triển, nhưng còn nhiều điều nữa và đó là nơi các nhà thiết kế đi vào bức tranh.
  3. Làm việc với các nhà thiết kế . Nhà thiết kế giỏi, nếu bạn có thể. Những người làm công việc này đi theo tiêu đề khác nhau. Ngày nay, các tiêu đề phổ biến nhất là Nhà thiết kế trải nghiệm người dùng (UXD), Kiến trúc sư thông tin (IA), Nhà thiết kế tương tác (ID) và Kỹ sư khả năng sử dụng. Họ nghĩ về thiết kế nhiều như bạn nghĩ về mã. Bạn có thể học được rất nhiều từ họ, và họ từ bạn. Làm việc với họ tuy nhiên bạn có thể. Tìm những người có những kỹ năng này trong công ty của bạn. Có lẽ bạn cần thuê một ai đó. Hoặc đi đến một số hội nghị, tham dự hội thảo trên web và dành thời gian trong thế giới UXD / IA / ID.

Dưới đây là một số điều cụ thể bạn có thể tìm hiểu. Đừng cố học mọi thứ . Nếu bạn biết mọi thứ bên dưới, bạn có thể gọi cho mình một nhà thiết kế tương tác hoặc một kiến ​​trúc sư thông tin. Bắt đầu với những thứ gần đầu danh sách . Tập trung vào các khái niệm và kỹ năng cụ thể. Sau đó di chuyển xuống và chi nhánh ra. Nếu bạn thực sự thích những thứ này, hãy coi nó như một con đường sự nghiệp. Nhiều nhà phát triển chuyển sang quản lý, nhưng thiết kế UX là một lựa chọn khác.

Tại sao thiết kế UI khó

Thiết kế giao diện người dùng tốt rất khó vì nó bao gồm 2 kỹ năng khác nhau:

  • Một sự hiểu biết sâu sắc về máy . Những người trong nhóm này lo lắng về mã đầu tiên, những người thứ hai. Họ có kiến ​​thức và kỹ năng công nghệ sâu sắc. Chúng tôi gọi họ là nhà phát triển, lập trình viên, kỹ sư, v.v.
  • Hiểu biết sâu sắc về con người và thiết kế : Những người trong nhóm này lo lắng về những người đầu tiên, mã thứ hai. Họ có kiến ​​thức sâu sắc về cách mọi người tương tác với thông tin, máy tính và thế giới xung quanh. Chúng tôi gọi họ là nhà thiết kế trải nghiệm người dùng, kiến ​​trúc sư thông tin, nhà thiết kế tương tác, kỹ sư khả năng sử dụng, v.v.

Đây là sự khác biệt cơ bản giữa 2 nhóm này giữa các nhà phát triển và nhà thiết kế:

  • Các nhà phát triển làm cho nó hoạt động . Họ thực hiện các chức năng trên TiVo, iPhone của bạn, trang web yêu thích của bạn, v.v. Họ đảm bảo rằng nó thực sự làm những gì nó phải làm. Ưu tiên cao nhất của họ là làm cho nó hoạt động.
  • Nhà thiết kế làm cho mọi người yêu thích . Họ tìm ra cách tương tác với nó, nó nên trông như thế nào và cảm giác như thế nào. Họ thiết kế trải nghiệm sử dụng ứng dụng, trang web, thiết bị. Ưu tiên cao nhất của họ là khiến bạn yêu những gì các nhà phát triển tạo ra. Đây là những gì có nghĩa là trải nghiệm người dùng và nó không giống như trải nghiệm thương hiệu.

Hơn nữa, lập trình và thiết kế đòi hỏi những tư duy khác nhau , không chỉ là kiến ​​thức và kỹ năng khác nhau. Thiết kế UI tốt đòi hỏi cả tư duy, cả cơ sở kiến ​​thức, cả nhóm kỹ năng. Và phải mất nhiều năm để thành thạo một trong hai.

Các nhà phát triển nên mong đợi tìm thiết kế UI khó, giống như các nhà thiết kế UI nên mong đợi tìm mã viết khó.


8
Đây là câu trả lời tốt nhất ở đây. Liên kết tuyệt vời BTW!
Bernard Igiri

Tổng quan tuyệt vời về thiết kế UI! Tôi cũng đã quan sát quan niệm của bạn về những suy nghĩ khác nhau. Tôi làm cả thiết kế và lập trình giao diện người dùng, và tốt nhất là tôi chỉ tập trung vào một trong số họ tại một thời điểm. [...]
Esko Luontola

Nếu bạn đưa ra quyết định thiết kế UI trong khi lập trình, bạn nghĩ rằng cách đơn giản nhất để thực hiện, điều này thường dẫn đến thiết kế UI kém. Và nếu bạn nghĩ về việc triển khai trong khi thực hiện thiết kế UI, bạn có thể chọn các mẫu thiết kế UI dễ thực hiện hơn, nhưng không tốt cho người dùng.
Esko Luontola

2
Tại sao điều này không được đánh dấu là câu trả lời tốt nhất? Có vẻ như tốt hơn nhiều so với câu trả lời của Thorsten79.
AbdullahC

1
Chúc tôi có thể yêu thích câu trả lời này trực tiếp. :)
Dan J

70

Điều thực sự giúp tôi cải thiện thiết kế của mình là lấy một nhà phát triển đồng nghiệp, một người QA, Thủ tướng hoặc bất kỳ ai tình cờ đi ngang qua và nhờ họ thử một tiện ích hoặc màn hình cụ thể.

Thật tuyệt vời với những gì bạn sẽ nhận ra khi bạn xem người khác sử dụng phần mềm của bạn lần đầu tiên


Tôi đã thử phương pháp này rất nhiều và thấy nó rất hiệu quả. Thỉnh thoảng tôi có một người bạn không có kỹ thuật sử dụng nó để xem điều gì khiến họ đau khi cố gắng sử dụng nó.
Chris Ballance

Đây là cách tiếp cận tương tự mà tôi thực hiện.
Ed S.

Cách tiếp cận này có thể được gọi là "thử nghiệm khả năng sử dụng" không? ;) Có, đó là cách tiếp cận bạn nên thực hiện trước, trong và sau.
Ates Goral

Đây sẽ là câu trả lời chính xác của tôi. QA và hỗ trợ kỹ thuật là tuyệt vời. Các nhà phát triển hút thiết kế UI, lặp đi lặp lại và nhờ người khác kiểm tra nó thường xuyên.
Bill K

7
Tôi tin rằng nó được gọi là "bài kiểm tra khả năng sử dụng hành lang"
Kevin

32

Cuối cùng, đó thực sự là về sự đồng cảm - bạn có thể đặt mình vào vị trí của người dùng không?

Tất nhiên, một điều có ích là "ăn thức ăn cho chó của riêng bạn" - sử dụng các ứng dụng của bạn như một người dùng thực sự và nhìn thấy những gì gây phiền nhiễu.

Một ý tưởng hay khác là tìm cách xem người dùng thực bằng ứng dụng của bạn, có thể phức tạp như phòng thí nghiệm khả năng sử dụng với gương một chiều, quay video màn hình, máy quay video trên người dùng, v.v., hoặc có thể đơn giản như vậy như nguyên mẫu giấy sử dụng người tiếp theo tình cờ bước xuống hội trường.

Nếu vẫn thất bại, hãy nhớ rằng giao diện người dùng quá đơn giản hơn là quá phức tạp. Rất dễ để nói "ồ, tôi biết cách giải quyết điều đó, tôi sẽ chỉ thêm một hộp kiểm để người dùng có thể quyết định chế độ họ thích". UI của bạn quá sớm. Chọn chế độ mặc định và đặt tùy chọn cài đặt tùy chọn cấu hình nâng cao. Hoặc chỉ cần để nó ra.

Nếu bạn đọc nhiều về thiết kế, bạn có thể dễ dàng bị treo lên trên các bóng đổ và các góc tròn và vv. Đó không phải là thứ quan trọng. Đơn giản và khám phá là những thứ quan trọng.


cũng đặt. Thông thường, các nỗ lực để thêm linh hoạt chỉ dẫn đến sự lộn xộn. Đơn giản hơn == tốt hơn.
SquareCog

Bạn có thể đặt mình vào vị trí của người dùng nếu họ ở bên kia hành tinh, trong một nền văn hóa mà bạn chưa từng trải nghiệm trước đây không? Quốc tế hóa là một cân nhắc chính trong thiết kế UI vững chắc. Đừng cho rằng tất cả mọi người sống ở Hoa Kỳ.

Chắc chắn rồi; Dự án hiện tại của tôi trên thực tế nhắm vào người dùng trên khắp hành tinh (về cơ bản là ở mọi quốc gia khác ngoài Mỹ, nơi tôi đang ở). Nó làm cho sự đồng cảm trở nên khó khăn hơn, không có câu hỏi - và tất cả những điều quan trọng hơn để cố gắng nghiêm túc và mạnh mẽ.
Jacob Mattison

Ngoài ra, tôi cũng nói thêm rằng phần lớn các vấn đề về khả năng sử dụng là rất rõ ràng một khi bạn có được một người dùng thực sự để xem xét nó. Vâng, sẽ có những cái tinh tế đặc trưng cho văn hóa, nhưng bạn có thể tạo ra những cải tiến to lớn bằng cách sử dụng anh chàng tiếp theo bước xuống hội trường.
Jacob Mattison

+1, chỉ vì tôi không thể +100 bản thân mình! Tôi sẽ thêm rằng việc tích lũy kinh nghiệm bằng cách sử dụng các ứng dụng rất khác nhau vì chúng được dự định sẽ giúp bạn phát triển như một nhà phát triển giao diện người dùng. Chỉ sử dụng các công cụ như Visual Studio hoặc các công cụ dev khác sẽ cản trở khả năng này ...
BQ.

26

Trái với huyền thoại phổ biến, theo nghĩa đen không có khía cạnh mềm mại nào trong thiết kế UI, ít nhất là không cần thiết nhiều hơn để thiết kế một mặt sau tốt.

Hãy xem xét những điều sau đây; thiết kế mặt sau tốt dựa trên các nguyên tắc và yếu tố khá vững chắc mà bất kỳ nhà phát triển giỏi nào cũng quen thuộc:

  • khớp nối thấp

  • độ gắn kết cao

  • mô hình kiến ​​trúc

  • thực hành tốt nhất trong ngành

  • Vân vân

Thiết kế mặt sau tốt thường được sinh ra thông qua một số tương tác, trong đó dựa trên phản hồi có thể đo được thu được trong các thử nghiệm hoặc sử dụng thực tế, kế hoạch chi tiết ban đầu dần được cải thiện. Đôi khi bạn cần tạo nguyên mẫu các khía cạnh nhỏ hơn của back end và dùng thử chúng một cách cô lập, v.v.

Thiết kế giao diện người dùng tốt dựa trên các nguyên tắc âm thanh của:

  • hiển thị

  • khả năng chi trả

  • Phản hồi

  • lòng khoan dung

  • sự đơn giản

  • Tính nhất quán

  • kết cấu

UI cũng được sinh ra thông qua thử nghiệm và thử nghiệm, thông qua các lần lặp nhưng không phải với trình biên dịch + bộ kiểm thử tự động, mà là con người. Tương tự như back end có các thực tiễn, kỹ thuật đo lường và đánh giá tốt nhất trong ngành, cách nghĩ về UI và đặt mục tiêu theo mô hình người dùng, hình ảnh hệ thống, mô hình thiết kế, mô hình cấu trúc, mô hình chức năng, v.v.

Bộ kỹ năng cần thiết để thiết kế UI khá khác so với thiết kế back-end và do đó, đừng hy vọng có thể làm UI tốt mà không cần học trước. Tuy nhiên, cả hai hoạt động này đều có điểm chung là quá trình thiết kế. Tôi tin rằng bất cứ ai có thể thiết kế phần mềm tốt đều có khả năng thiết kế giao diện người dùng tốt miễn là họ dành thời gian học cách.

Tôi khuyên bạn nên tham gia một khóa học về Tương tác máy tính của con người, kiểm tra trang web MIT và Yale để biết các tài liệu trực tuyến:

Kết cấu và mô hình chức năng trong cách hiểu và sử dụng

Bài đăng xuất sắc trước đó của Thorsten79 đưa ra chủ đề về các chuyên gia phát triển phần mềm so với người dùng và sự hiểu biết của họ về phần mềm khác nhau như thế nào. Các chuyên gia học tập của con người phân biệt giữa các mô hình tinh thần chức năng và cấu trúc. Tìm đường đến nhà bạn của bạn có thể là một ví dụ tuyệt vời về sự khác biệt giữa hai người:

  • Cách tiếp cận đầu tiên bao gồm một bộ hướng dẫn chi tiết: đi theo lối ra đầu tiên của đường cao tốc, sau đó sau 100 yard rẽ trái, v.v ... Đây là một ví dụ về mô hình chức năng: liệt kê các bước cụ thể cần thiết để đạt được mục tiêu nhất định. Các mô hình chức năng rất dễ sử dụng, chúng không đòi hỏi nhiều suy nghĩ chỉ là một thực thi thẳng về phía trước. Rõ ràng có một hình phạt cho sự đơn giản: nó có thể không phải là tuyến đường hiệu quả nhất và bất kỳ tình huống đặc biệt nào (ví dụ như chuyển hướng giao thông) có thể dễ dàng dẫn đến thất bại hoàn toàn.

  • Một cách khác để đối phó với nhiệm vụ là xây dựng một mô hình tinh thần cấu trúc. Trong ví dụ của chúng tôi, đó sẽ là một bản đồ truyền tải nhiều thông tin về cấu trúc bên trong của "đối tượng tác vụ". Từ việc hiểu bản đồ và vị trí tương đối của nhà của chúng tôi và bạn bè, chúng tôi có thể khấu trừ mô hình chức năng (tuyến đường). Rõ ràng nó đòi hỏi nhiều nỗ lực hơn, nhưng cách hoàn thành nhiệm vụ đáng tin cậy hơn nhiều mặc dù có những sai lệch có thể xảy ra.

Sự lựa chọn giữa việc truyền tải mô hình chức năng hoặc cấu trúc thông qua giao diện người dùng (ví dụ: trình hướng dẫn so với chế độ nâng cao) không đơn giản như có thể từ bài đăng của Thorsten79. Người dùng nâng cao và thường xuyên có thể thích mô hình cấu trúc, trong khi người dùng thỉnh thoảng hoặc ít kinh nghiệm hơn - chức năng.

Bản đồ của Google là một ví dụ tuyệt vời: chúng bao gồm cả mô hình chức năng và cấu trúc, do đó, nhiều điều hướng sat.

Một khía cạnh khác của vấn đề là mô hình cấu trúc được trình bày qua UI không được ánh xạ tới cấu trúc của phần mềm, mà là ánh xạ tự nhiên vào cấu trúc của tác vụ người dùng trong tay hoặc đối tượng tác vụ liên quan.

Khó khăn ở đây là nhiều nhà phát triển sẽ có một mô hình cấu trúc tốt của các phần mềm bên trong của họ, nhưng chỉ có mô hình chức năng của nhiệm vụ người dùng mà phần mềm nhắm đến để hỗ trợ. Để xây dựng giao diện người dùng tốt, người ta cần hiểu cấu trúc đối tượng tác vụ / nhiệm vụ và ánh xạ giao diện người dùng đến cấu trúc đó.

Dù sao, tôi vẫn không thể khuyên bạn nên tham gia một khóa học HCI chính thức đủ mạnh. Có rất nhiều thứ liên quan như heuristic , các nguyên tắc bắt nguồn từ phychology Gestalt , cách con người học, v.v.


+1 cho liên kết MIT OCW :) Những ghi chú bài giảng đó là vô giá
Plague Hammer

Bạn nói đúng, người dùng có thể tự mình trở thành chuyên gia của một phần mềm và họ thích phần mềm đó khi ai đó khắc một cách để họ thông qua giao diện người dùng "đẹp" để nhanh hơn. Đó là nơi mà tất cả các phím tắt là ví dụ. khả năng sử dụng là một chủ đề rất thú vị!
Thorsten79

25

Tôi khuyên bạn nên bắt đầu bằng cách thực hiện tất cả giao diện người dùng của mình giống như cách bạn đang làm hiện tại, không tập trung vào khả năng sử dụng và công cụ.

văn bản thay thế http://www.stricken.org/uploaded_images/WordToolbars-718376.jpg

Bây giờ nghĩ về điều này:

Một nhà thiết kế biết rằng anh ta đã đạt được sự hoàn hảo không phải khi không còn gì để thêm, mà là khi không còn gì để lấy đi. - Thánh-xuất thần

Và áp dụng điều này trong thiết kế của bạn.


Đây là lý do tại sao tôi xa, rất thích Office 2007!
Richard Ev

Nếu ai đó đang tự hỏi tôi đã đào câu nói đó từ đâu, tôi đã nghe nó từ nền văn minh 4. Trò chơi tuyệt vời. Tôi không biết tác giả là ai, nhưng anh chắc chắn rằng địa ngục có thể viết một giao diện người dùng tốt hơn so với các nhà thiết kế từ.
Hoffmann

Có một câu nói hay tương tự khác của A. Einstein: "Làm cho mọi thứ đơn giản nhất có thể, nhưng không đơn giản hơn." Tôi đã tìm thấy những ý tưởng này cũng có thể áp dụng cho thiết kế UI: www.presentationzen.com. ... và +1
Pyry Jahkola

Saint-Exupery không chỉ là một nhà thiết kế phi công và máy bay; +1 để trích dẫn anh ấy. Cuốn sách thiếu nhi của anh ấy ("Hoàng tử bé") rất đáng để đọc, nhưng tôi đang lạc đề ở đây.
David Thornley

5
Bạn nên chọn chế độ xem in ... không thể xem thước kẻ ngay bây giờ.
Muss Chiều

16

Rất nhiều nhà phát triển nghĩ rằng vì họ có thể viết mã, họ có thể làm tất cả. Thiết kế một giao diện là một kỹ năng hoàn toàn khác biệt và nó hoàn toàn không được dạy khi tôi học đại học. Nó không chỉ là thứ gì đó tự nhiên đến.

Một cuốn sách hay khác là The Design of Everyday Things của Donald Norman.


Cảm ơn, "Thiết kế của những suy nghĩ hàng ngày" nằm trong danh sách mong muốn trên Amazon của tôi
Chris Ballance

+1. "Thiết kế của những thứ hàng ngày" cũng nằm trong danh sách Đọc mã hóa kinh dị (danh sách sách hay dành cho nhà phát triển). Gần đây đọc xong nó, và cũng có thể rất khuyến khích nó.
Mun

Hiện tại tôi đang đọc "Thiết kế của mọi thứ" - nó chắc chắn rất tốt, nhưng như đã đề cập trong các bình luận về một câu trả lời khác, "Các tù nhân đang điều hành Asylum" giải quyết chính xác chủ đề này. Là một nhà phát triển, cuốn sách đã "thay đổi cuộc sống"!
Stuart Helwig

Peeve của tôi: rất nhiều nhà phát triển (và nhà thiết kế và những người khác) nghĩ rằng vì tôi có thể viết mã, tôi không thể thiết kế giao diện người dùng. Tôi không biết rõ về Photoshop, nhưng tôi nghĩ rằng tôi có một con mắt tinh tường cho những gì hoạt động và những gì không. (Thiết kế của mọi thứ hàng ngày là kinh thánh UI đầu tiên của tôi.)
Barry Brown

14

Có một sự khác biệt rất lớn giữa thiết kế và thẩm mỹ, và chúng thường bị nhầm lẫn.

Một giao diện người dùng đẹp đòi hỏi nghệ thuật hoặc ít nhất là các kỹ năng thẩm mỹ mà nhiều người, bao gồm cả bản thân tôi, không có khả năng sản xuất. Thật không may, nó là không đủ và không làm cho UI có thể sử dụng được, như chúng ta có thể thấy trong nhiều API dựa trên flash hạng nặng.

Sản xuất UI có thể sử dụng đòi hỏi sự hiểu biết về cách con người tương tác với máy tính, một số vấn đề về tâm lý học (ví dụ: luật của Fitt, luật của Hick) và các chủ đề khác. Rất ít chương trình CS đào tạo cho việc này. Rất ít nhà phát triển mà tôi biết sẽ chọn một cuốn sách thử nghiệm người dùng qua một cuốn sách JUnit, v.v.

Nhiều người trong chúng ta cũng là "lập trình viên cốt lõi", có xu hướng nghĩ về UI như mặt tiền hơn là một yếu tố có thể tạo ra hoặc phá vỡ sự thành công của dự án của chúng tôi.

Ngoài ra, hầu hết kinh nghiệm phát triển UI là cực kỳ bực bội. Chúng ta có thể sử dụng các trình xây dựng GUI đồ chơi như VB cũ và phải xử lý mã keo xấu xí hoặc chúng ta sử dụng các API làm chúng ta nản lòng, như cố gắng sắp xếp bố cục trong Swing.


"Chúng tôi có thể sử dụng các trình tạo GUI đồ chơi như VB cũ và phải xử lý mã keo xấu xí hoặc chúng tôi sử dụng các API khiến chúng tôi nản lòng, như cố gắng sắp xếp bố cục trong Swing." Bạn thực sự đã rút kinh nghiệm của tôi với việc xây dựng GUI. Nếu tôi có thể thêm: "hoặc kết hợp DOM và CSS điên rồ"
Hoffmann

Tôi chắc rằng mọi người đều quen thuộc với Totally Gridbag? " madbean.com/anim/totallygridbag "
Uri

12

Chuyển qua Slashdot và đọc các bình luận về bất kỳ bài viết nào liên quan đến Apple. Bạn sẽ thấy một số lượng lớn người nói về việc các sản phẩm của Apple không có gì đặc biệt, và nói lên sự thành công của iPod và iPhone đối với những người đang cố gắng hợp thời trang hoặc hợp thời trang. Họ thường sẽ xem qua các danh sách tính năng và chỉ ra rằng họ không làm gì trước đó máy nghe nhạc MP3 hoặc điện thoại thông minh không làm được.

Sau đó, có những người thích iPod và iPhone vì họ làm những gì người dùng muốn một cách đơn giản và dễ dàng, không cần tham khảo hướng dẫn sử dụng. Các giao diện là trực quan như giao diện có được, đáng nhớ và có thể khám phá. Tôi không thích giao diện người dùng trên MacOSX như trên các phiên bản trước, tôi nghĩ rằng họ đã từ bỏ một số hữu ích để ủng hộ glitz, nhưng iPod và iPhone là những ví dụ về thiết kế tuyệt vời.

Nếu bạn ở trong trại đầu tiên, bạn không nghĩ theo cách của một người bình thường, và do đó bạn có khả năng tạo ra giao diện người dùng xấu bởi vì bạn không thể nói với họ từ những người tốt. Điều này không có nghĩa là bạn vô vọng, mà là bạn phải học rõ ràng các nguyên tắc thiết kế giao diện tốt và cách nhận biết một giao diện người dùng tốt (giống như ai đó với Asperger có thể cần học các kỹ năng xã hội một cách rõ ràng). Rõ ràng, chỉ cần có ý thức về một giao diện người dùng tốt không có nghĩa là bạn có thể tạo ra một giao diện người dùng; sự đánh giá cao của tôi đối với văn học, ví dụ, dường như không mở rộng khả năng (hiện tại) để viết những câu chuyện có thể xuất bản.

Vì vậy, hãy cố gắng phát triển ý thức cho thiết kế UI tốt. Điều này mở rộng ra nhiều hơn là phần mềm. "Thiết kế của mọi thứ" của Don Norman là một tác phẩm kinh điển, và có những cuốn sách khác ở ngoài đó. Lấy ví dụ về các thiết kế UI thành công và chơi với chúng đủ để cảm nhận sự khác biệt. Nhận ra rằng bạn có thể phải học một cách suy nghĩ mới về những điều abou, và tận hưởng nó.


+1 cho đề xuất Thiết kế của mọi thứ hàng ngày
Oskar Duveborn

+1 cho một câu trả lời rất tốt. Tôi nghĩ rằng nó nói rằng bạn vẫn đang lơ lửng ở mức 1 phiếu bầu (hiện là 2); những người phù hợp với mô tả của bạn có thể sẽ không nghĩ họ làm, hoặc đơn giản là gạt bỏ ý tưởng đó :-(
mghie

Đây là một tuyên bố chăn. Không phải mọi bình luận chống Apple về Slashdot đều chỉ trích UI của họ hoặc xác minh sự thiếu hiểu biết về UI. Apple có giao diện người dùng tốt và nhiều đối thủ của họ cũng vậy.
Bernard Igiri

Một suy nghĩ khác: một Apple không dành cho tất cả mọi người; ví dụ, nó không cung cấp sức mạnh khủng khiếp mà CLI làm được.
J. Polfer

2
Cá nhân tôi thấy các sản phẩm của Apple cực kỳ không trực quan để sử dụng. Tôi tưởng tượng tôi không phải là người duy nhất thất vọng khi chiếc iPod đầu tiên của họ bắt đầu xáo trộn các bài hát mỗi khi tôi bắt đầu chạy bộ, hoặc tại sao màn hình iPhone liên tục tự đảo. Tôi nghĩ mọi thứ chỉ nên xảy ra từ những hành động trực tiếp, rõ ràng của người dùng.
Lotus Notes

10

Nguyên tắc chính của ngón tay cái tôi giữ, là không bao giờ thử làm cả hai cùng một lúc. Nếu tôi đang làm việc với mã back-end, tôi sẽ hoàn thành việc đó, nghỉ ngơi và quay lại với chiếc mũ UI của mình. Nếu bạn cố gắng làm việc trong khi bạn đang làm mã, kết quả là bạn sẽ tiếp cận nó với suy nghĩ sai lầm và kết quả là có một số giao diện khủng khiếp.

Tôi nghĩ chắc chắn có thể vừa là nhà phát triển phụ trợ giỏi, vừa là nhà thiết kế UI giỏi, bạn chỉ cần làm việc với nó, đọc và nghiên cứu về chủ đề này (mọi thứ từ số 7 của Miller, đến kho lưu trữ của Nielsen), và thực hiện chắc chắn bạn hiểu tại sao thiết kế UI là quan trọng nhất.

Tôi không nghĩ đó là một trường hợp cần phải sáng tạo mà đúng hơn, giống như phát triển back-end, nó là một thứ rất có phương pháp, rất có cấu trúc cần phải học. Đó là những người nhận được 'sáng tạo' với các UI tạo ra một số điều quái dị về khả năng sử dụng lớn nhất ... Ý tôi là, hãy xem các trang web Flash 100%, để bắt đầu ...

Chỉnh sửa : Cuốn sách của Krug thực sự rất hay ... hãy đọc nó, đặc biệt nếu bạn sẽ thiết kế cho Web.


và tiêu đề của cuốn sách krug này là gì
defau1t

@refhat Nó được liên kết nổi bật trong bài viết hàng đầu, vì vậy tôi đã không liên kết nó vào thời điểm đó, nhưng đây là cái này: librarything.com/work/12322
James B

8

Có nhiều lý do cho việc này.

(1) Nhà phát triển không nhìn thấy mọi thứ từ quan điểm của người dùng. Đây là nghi ngờ thông thường: thiếu sự đồng cảm. Nhưng điều đó thường không đúng vì các nhà phát triển không xa lạ như mọi người đưa ra.

(2) Một lý do khác, phổ biến hơn là nhà phát triển quá gần với công cụ của mình, đã ở lại với công cụ của mình quá lâu, không nhận ra rằng công cụ của mình có thể không quá quen thuộc (thuật ngữ tốt hơn trực quan) đối với người khác .

(3) Vẫn còn một lý do nữa là nhà phát triển thiếu kỹ thuật.

YÊU CẦU LỚN CỦA TÔI: đọc bất kỳ giao diện người dùng, thiết kế giao thoa con người, sách tạo mẫu. ví dụ: Thiết kế hiển nhiên: Cách tiếp cận thông thường đối với thiết kế ứng dụng web, đừng khiến tôi phải suy nghĩ: Cách tiếp cận thông thường đối với khả năng sử dụng web, Thiết kế thời điểm, bất cứ điều gì.

Làm thế nào để họ thảo luận về các luồng nhiệm vụ? Làm thế nào để họ mô tả các điểm quyết định? Đó là, trong mọi trường hợp sử dụng, có ít nhất 3 con đường: thành công, thất bại / ngoại lệ, thay thế.

Do đó, từ điểm A, bạn có thể đi đến A.1, A.2, A.3. Từ điểm A.1, bạn có thể đến A.1.1, A.1.2, A.1.3, v.v.

Làm thế nào để họ hiển thị luồng công việc đi sâu như vậy? Họ không. Họ chỉ phủ bóng lên nó.

Vì ngay cả UI experst cũng không có kỹ thuật, nhà phát triển không có cơ hội. Anh ấy nghĩ rằng nó là rõ ràng trong đầu của mình. Nhưng nó thậm chí không rõ ràng trên giấy tờ, chứ chưa nói rõ ràng trong việc thực hiện phần mềm.

Tôi phải sử dụng các kỹ thuật làm bằng tay của riêng tôi cho việc này.


7

Tôi cố gắng giữ liên lạc với các trang web và văn bản dành riêng cho thiết kế. Tôi cũng tìm thấy cuốn sách xuất sắc của Robin Williams Cuốn sách thiết kế của những người không phải là nhà thiết kế rất thú vị trong những nghiên cứu này.

Tôi tin rằng thiết kế và khả năng sử dụng là một phần rất quan trọng của công nghệ phần mềm và chúng ta nên tìm hiểu nó nhiều hơn và ngừng đưa ra lý do rằng chúng ta không được phép thiết kế.

Mọi người thỉnh thoảng có thể trở thành một nhà thiết kế, cũng như mọi người đều có thể là một lập trình viên.


Tôi không đồng ý rằng mọi người đều có thể là một lập trình viên. Một số khía cạnh của giao dịch không thể được dạy, bạn có thể hack nó hoặc bạn không thể (không có ý định chơi chữ.)
Chris Ballance

2
Ý tôi là, thỉnh thoảng, điều đó không có nghĩa là anh chàng đó sẽ là một lập trình viên giỏi hoặc sẽ là nó mãi mãi.
Edwin Jarvis

7

Khi tiếp cận thiết kế giao diện người dùng, đây là một vài điều tôi luôn ghi nhớ (cho đến nay không phải là một danh sách đầy đủ):

  • Truyền đạt một mô hình . UI là một câu chuyện giải thích một mô hình tinh thần cho người dùng. Mô hình này có thể là một đối tượng kinh doanh, một tập hợp các mối quan hệ, những gì có bạn. Sự nổi bật về mặt hình ảnh, vị trí không gian và thứ tự công việc đều góp phần trong việc truyền đạt mô hình này tới người dùng. Ví dụ, một loại danh sách nhất định so với loại khác ngụ ý những điều khác nhau, cũng như mối quan hệ của những gì trong danh sách với phần còn lại của mô hình. Nói chung tôi thấy tốt nhất để đảm bảo chỉ có một mô hình được truyền đạt tại một thời điểm. Các lập trình viên thường cố gắng giao tiếp nhiều hơn một mô hình hoặc các bộ phận của một số trong cùng một không gian UI.

  • Kiên định . Sử dụng lại các ẩn dụ UI phổ biến giúp ích rất nhiều. Thống nhất nội bộ cũng rất quan trọng.

  • Phân nhóm nhiệm vụ . Người dùng không cần phải di chuyển chuột trên toàn màn hình để xác minh hoặc hoàn thành chuỗi lệnh liên quan. Các hộp thoại phương thức và menu bay ra có thể đặc biệt tệ trong lĩnh vực này.

  • Biết đối tượng của bạn . Nếu người dùng của bạn sẽ thực hiện các hoạt động tương tự lặp đi lặp lại, họ sẽ nhanh chóng trở thành người dùng quyền lực tại các nhiệm vụ đó và bị thất vọng bởi các nỗ lực để hạ thấp rào cản nhập cảnh ban đầu. Nếu người dùng của bạn thường xuyên thực hiện nhiều loại hoạt động khác nhau, tốt nhất là đảm bảo UI luôn nắm trong tay họ.


Bạn đưa ra một điểm tốt với Biết đối tượng của mình ... Tôi cũng thích "Bạn không phải là người dùng của bạn" (Platt) và "Biết người dùng của bạn." (Platt) Điều này không thể được nhấn mạnh đủ
Chris Ballance


5

Tôi thấy công cụ tốt nhất trong thiết kế giao diện người dùng là xem Người dùng lần đầu sử dụng phần mềm. Lấy vô số ghi chú và hỏi họ một số câu hỏi. Không bao giờ chỉ đạo họ hoặc cố gắng giải thích cách thức hoạt động của phần mềm. Đây là công việc của UI (và tài liệu được viết tốt).

Chúng tôi luôn áp dụng phương pháp này trong tất cả các dự án. Thật thú vị khi xem một thỏa thuận của Người dùng với phần mềm theo cách mà bạn chưa từng xem xét trước đây.

Tại sao thiết kế UI rất khó? Nói chung vì Nhà phát triển và Người dùng không bao giờ gặp nhau.


Hoàn toàn đồng ý, nhưng nhà phát triển hoàn toàn có thể áp dụng các nguyên tắc UI cơ bản vững chắc.
đinh vào

Nguyên tắc UI cơ bản vững chắc không hoạt động ở mọi quốc gia. Chúng tôi triển khai phần mềm ở nhiều khu vực và có sự khác biệt lớn về thiết kế giao diện người dùng cho các khu vực khác nhau trên toàn cầu. Hãy thử gửi ứng dụng tập trung vào Hoa Kỳ của bạn đến Trung Quốc vào lúc nào đó ...

5

duffymo chỉ nhắc tôi tại sao: Nhiều lập trình viên nghĩ "* Thiết kế" == "Nghệ thuật".

Thiết kế UI tốt là hoàn toàn không nghệ thuật. Nó tuân theo các nguyên tắc vững chắc, có thể được sao lưu bằng dữ liệu nếu bạn có thời gian để thực hiện nghiên cứu.

Tôi nghĩ rằng tất cả các lập trình viên cần làm là dành thời gian để tìm hiểu các nguyên tắc. Tôi nghĩ rằng về bản chất của chúng ta là áp dụng thực tiễn tốt nhất bất cứ khi nào chúng ta có thể, theo mã hoặc trong bố cục. Tất cả những gì chúng ta cần làm là làm cho bản thân nhận thức được những thực tiễn tốt nhất cho khía cạnh công việc của chúng ta là gì.


Tôi nghĩ rằng bạn không thể giảm giá thẩm mỹ hoàn toàn. Có lẽ một UI xấu xí có thể dễ sử dụng như một giao diện đẹp, nhưng đó không phải là tất cả những gì UI dành cho. Xét cho cùng, UI là bộ mặt của chương trình của bạn, giống như bìa sách: mọi người có nhiều khả năng chọn một chương trình có giao diện người dùng đẹp.
Tikhon Jelvis

Tuyệt đối, tính thẩm mỹ rất quan trọng, nhưng đó là Thiết kế đồ họa, không phải thiết kế UI.
đinh vào

5

Tôi đã làm gì để trở nên tốt hơn trong thiết kế UI?
Hãy chú ý đến nó!

Giống như bao giờ bạn nhìn thấy biểu đồ trên tin tức hoặc biển báo xe buýt điện tử và bạn tự hỏi 'Làm thế nào mà họ có được dữ liệu đó? Họ đã làm điều đó với sql thô hay họ đang sử dụng LINQ? ' (hoặc chèn sự tò mò phổ biến của riêng bạn ở đây).

Bạn cần bắt đầu làm điều đó nhưng với các yếu tố trực quan của tất cả các loại.

Nhưng cũng giống như học một ngôn ngữ mới, nếu bạn không thực sự thích bản thân mình, bạn sẽ không bao giờ học ngôn ngữ đó.

Lấy từ một câu trả lời khác tôi đã viết:

Học cách nhìn, thực sự nhìn, vào thế giới xung quanh bạn. Tại sao tôi thích giao diện người dùng đó nhưng lại ghét giao diện này? Tại sao rất khó để tìm thấy các món mì trong thực đơn nhà hàng này? Wow, tôi biết dấu hiệu đó có nghĩa là gì trước khi tôi đọc các từ. Tại sao vậy? Làm thế nào mà bìa sách trông rất sai? Học cách dành thời gian để suy nghĩ về lý do tại sao bạn phản ứng theo cách bạn làm với các yếu tố trực quan của tất cả các loại, và sau đó áp dụng điều này vào công việc của bạn.


+1 cho lời khuyên zen về học cách nhìn và suy nghĩ. Rất ít người thắc mắc điều gì gặp mắt.
Bệnh dịch hạch

5

Tuy nhiên, bạn làm điều đó (và có một số điểm tuyệt vời ở trên), nó thực sự đã giúp tôi một khi tôi chấp nhận rằng KHÔNG CÓ NHƯ THẾ NÀO NHƯ VẬY ....

Tôi có thể nghe thấy những cuộc cãi vã ầm ầm trên đường chân trời ... vì vậy hãy để tôi giải thích một chút.

Trực quan: sử dụng những gì người ta cảm thấy là đúng hoặc đúng dựa trên một phương pháp hoặc cảm giác vô thức.

Nếu (như Carl Sagan yêu cầu) bạn chấp nhận rằng bạn không thể hiểu những thứ hoàn toàn không giống với bất cứ điều gì bạn từng gặp thì làm sao bạn có thể "biết" cách sử dụng thứ gì đó nếu bạn chưa bao giờ sử dụng bất cứ thứ gì từ xa như nó?

Hãy suy nghĩ về điều này: những đứa trẻ cố gắng mở cửa không phải vì chúng "biết" cách hoạt động của một tay nắm cửa, mà bởi vì chúng đã thấy người khác làm điều đó ... thường thì chúng xoay núm sai hướng hoặc kéo quá sớm. Họ phải TÌM HIỂU một tay nắm cửa hoạt động như thế nào. Kiến thức này sau đó được áp dụng trong các trường hợp khác nhau nhưng tương tự nhau: mở cửa sổ, mở ngăn kéo, mở hầu hết mọi thứ lớn với tay cầm to, trông giống núm.

Ngay cả những điều đơn giản có vẻ trực quan đối với chúng ta cũng sẽ không trực quan với mọi người từ các nền văn hóa khác. Nếu ai đó giơ cánh tay ra trước mặt họ và khẽ đưa tay lên xuống ở cổ tay trong khi vẫn giữ cánh tay đó .... họ có từ bỏ bạn không? Có lẽ, trừ khi bạn đang ở Nhật Bản. Ở đó, tín hiệu tay này có thể có nghĩa là "đến đây". Vậy ai đúng? Cả hai, tất nhiên, trong bối cảnh riêng của họ. Nhưng nếu bạn đi du lịch đến cả hai, bạn cần biết cả ... thiết kế giao diện người dùng.

Tôi cố gắng tìm những thứ đã "quen thuộc" với người dùng tiềm năng của dự án của tôi và sau đó xây dựng giao diện người dùng xung quanh chúng: thiết kế lấy người dùng làm trung tâm.

Hãy nhìn vào iPhone của Apple. Ngay cả khi bạn ghét nó, bạn phải tôn trọng lượng suy nghĩ đã đi vào nó. Nó có hoàn hảo không Dĩ nhiên là không. Theo thời gian, "trực giác" của một đối tượng có thể phát triển hoặc thậm chí biến mất hoàn toàn.

Ví dụ. Hầu hết mọi người đều biết rằng một dải màu đen với hai hàng lỗ dọc theo đỉnh và đáy trông giống như một dải phim ... hay chúng?

Hỏi trung bình 9 hoặc 10 tuổi của bạn xem họ nghĩ gì. Bạn có thể ngạc nhiên khi có nhiều trẻ em ngay bây giờ sẽ gặp khó khăn khi xác định nó là một dải phim, mặc dù nó là thứ vẫn được sử dụng để đại diện cho Hollywood, hoặc bất cứ thứ gì liên quan đến phim (phim). Hầu hết các bộ phim trong 20 năm qua đã được quay bằng kỹ thuật số. Và lần cuối cùng ai trong chúng ta tổ chức một bộ phim thuộc thể loại BẤT K, hình ảnh hay bộ phim nào?

Vì vậy, điều mà tất cả tập trung vào tôi là: Biết đối tượng của bạn và không ngừng nghiên cứu để theo kịp xu hướng và thay đổi trong những thứ "trực quan", nhắm mục tiêu người dùng chính của bạn và cố gắng không làm những điều trừng phạt những người thiếu kinh nghiệm ủng hộ người dùng nâng cao hoặc làm chậm người dùng nâng cao để giữ tay người mới.

Cuối cùng, mọi chương trình sẽ yêu cầu một số lượng đào tạo nhất định về phần người dùng để sử dụng nó. Bao nhiêu đào tạo và mức độ người dùng là một phần của các quyết định cần phải được thực hiện.

Một số điều ít nhiều quen thuộc dựa trên mức độ kinh nghiệm trong quá khứ của người dùng mục tiêu của bạn với tư cách là con người, hoặc người dùng máy tính hoặc sinh viên hoặc bất cứ điều gì.

Tôi chỉ bắn cho phần béo nhất của đường cong chuông và cố gắng có được nhiều người nhất có thể nhưng nhận ra rằng tôi sẽ không bao giờ làm hài lòng tất cả mọi người ....


4

Tôi biết rằng Microsoft khá không phù hợp với hướng dẫn của riêng họ, nhưng tôi đã thấy rằng việc đọc hướng dẫn thiết kế Windows của họ đã thực sự giúp tôi. Tôi có một bản sao trên trang web của mình ở đây , chỉ cần cuộn xuống một chút Hướng dẫn về UX của Vista. Nó đã giúp tôi với những thứ như màu sắc, khoảng cách, bố cục, và nhiều hơn nữa.


+1 đọc hướng dẫn thiết kế của nền tảng chắc chắn là điều người ta nên làm (và khám phá tần suất Microsoft phá vỡ quy tắc của chính họ;)
Oskar Duveborn

Và ngoài ra hãy đọc những cái của Apple (Nguyên tắc giao diện con người). Họ có nhiều điều cơ bản và nguyên tắc trong đó. Điều đó khiến bạn hiểu những gì nên phổ quát và những gì cụ thể về nền tảng
Stephan Eggermont

Và trong khi bạn đang ở đó, hãy đọc GÓI Gnome. Giữa ba thứ đó, nó bắt đầu trở nên hữu hình, cái gì chỉ là một thứ cụ thể của một nền tảng duy nhất và nói chung có vẻ là một ý tưởng tốt.
mghie

Hầu hết trong số này dựa trên IBM, nhưng hiện tại đã khá lỗi thời. Ví dụ, các lệnh cắt và dán tiêu chuẩn là Shift + Del và Shift + Ins (chúng vẫn hoạt động, btw).
Simon Buchan

4

Tôi tin rằng vấn đề chính không liên quan gì đến các tài năng hoặc kỹ năng khác nhau. Vấn đề chính là với tư cách là một nhà phát triển, bạn biết quá nhiều về những gì ứng dụng làm và cách thức hoạt động, và bạn tự động thiết kế giao diện người dùng của mình theo quan điểm của một người có kiến ​​thức đó.

Trong khi đó, người dùng thường bắt đầu không biết gì về ứng dụng và không bao giờ cần phải tìm hiểu bất cứ điều gì về hoạt động bên trong của nó.

Rất khó, gần như không thể, không sử dụng kiến ​​thức mà bạn có - và đó là lý do tại sao một UI không nên được thiết kế bởi người đang phát triển ứng dụng đằng sau nó.


4

"Thiết kế từ cả hai phía của màn hình" trình bày một lý do rất đơn giản nhưng sâu sắc về lý do tại sao các lập trình viên thấy khó thiết kế UI: lập trình viên được đào tạo để suy nghĩ về các trường hợp cạnh trong khi các nhà thiết kế UI được đào tạo để suy nghĩ về các trường hợp thông thường hoặc cách sử dụng.

Vì vậy, đi từ thế giới này sang thế giới khác chắc chắn là khó khăn nếu traning mặc định ở một trong hai là trái ngược hoàn toàn với thế giới khác.


3

Để nói rằng các chương trình hút vào thiết kế UI là bỏ lỡ điểm. Vấn đề của vấn đề là đào tạo chính thức mà hầu hết các nhà phát triển đều đi sâu vào công nghệ. Tương tác giữa người và máy tính không phải là một chủ đề đơn giản. Nó không phải là thứ mà tôi có thể "tâm trí" với bạn bằng cách cung cấp một tuyên bố một dòng đơn giản khiến bạn nhận ra "oh người dùng sẽ sử dụng ứng dụng này hiệu quả hơn nếu tôi làm x thay vì y."

Điều này là do có một phần của thiết kế UI mà bạn đang thiếu. Bộ não người. Để hiểu cách thiết kế UI, bạn phải hiểu cách trí tuệ của con người tương tác với máy móc. Có một khóa học tuyệt vời tôi đã học tại Đại học Minnesota về chủ đề này được giảng dạy bởi một giáo sư Tâm lý học. Nó được đặt tên là "Tương tác giữa người và máy". Điều này mô tả nhiều lý do tại sao thiết kế UI quá phức tạp.

Vì Tâm lý học dựa trên Tương quan chứ không phải Nhân quả, bạn không bao giờ có thể chứng minh rằng một phương pháp thiết kế UI sẽ luôn hoạt động trong mọi tình huống nhất định. Bạn có thể tương quan rằng nhiều người dùng sẽ thấy một thiết kế UI cụ thể hấp dẫn hoặc hiệu quả, nhưng bạn không thể chứng minh rằng nó sẽ luôn khái quát.

Ngoài ra, có hai phần để thiết kế UI mà nhiều người dường như bỏ lỡ. Có sự hấp dẫn về mặt thẩm mỹ, và quy trình làm việc chức năng. Nếu bạn đi cho một sự hấp dẫn thẩm mỹ 100%, chắc chắn mọi người sẽ nhưng sản phẩm của bạn. Tôi rất nghi ngờ rằng thẩm mỹ sẽ làm giảm sự thất vọng của người dùng.

Có một số cuốn sách hay về chủ đề này và khóa học cần thực hiện (như Kinh nghiệm người dùng phác thảo của Bill Buxton và Nhận thức trong tự nhiên của Edwin Hutchins). Có nhiều chương trình sau đại học về Tương tác giữa người và máy tính tại nhiều trường đại học.

Câu trả lời chung cho câu hỏi này mặc dù nằm ở cách các cá nhân được dạy về khoa học máy tính. Đó là tất cả dựa trên toán học, dựa trên logic và không dựa trên trải nghiệm người dùng. Để có được điều đó, bạn cần nhiều hơn một bằng cấp khoa học máy tính 4 năm (trừ khi bằng 4 năm về khoa học máy tính của bạn có một chuyên ngành tâm lý học và được nhấn mạnh trong Tương tác giữa người và máy tính).


Tôi không đồng ý: máy tính là toán học và logic dựa trên bản chất của chúng. Bất kỳ giảng dạy lập trình máy tính phải dựa trên toán học và logic.
Paul Nathan

1
Vâng, bạn đúng Paul. Máy tính là toán học và logic. Thiết kế giao diện người dùng liên quan đến một yếu tố con người, điều đã được chứng minh trong lịch sử là ít dựa trên toán học và logic.
jwendl

Nó không quá nhiều đến nỗi chúng ít dựa trên toán học và logic, đó là toán học và logic đằng sau chúng phức tạp hơn nhiều, chủ yếu vượt xa mọi người ngày nay. Điều đó nói rằng, tôi cá rằng các thiết kế UI tốt là tất cả, ở một mức độ nào đó, dựa trên hình học.
Tikhon Jelvis

2

Hãy chuyển câu hỏi của bạn xung quanh -

Có phải "các nhà thiết kế ui" chỉ cam chịu thiết kế kiến ​​trúc thông tin và các lớp trình bày? Có điều gì họ có thể làm để kiềm chế bộ não của mình để có hiệu quả hơn trong việc thiết kế các lớp hệ thống dễ chịu và hiệu quả?

Có vẻ như họ "các nhà thiết kế ui" sẽ phải có một quan điểm hoàn toàn khác - họ phải nhìn từ bên trong chiếc hộp ra bên ngoài; thay vì nhìn từ bên ngoài hộp.

Ý kiến "Các tù nhân đang chạy tị nạn" của Alan Cooper là chúng ta không thể thành công trong cả hai quan điểm - chúng ta có thể học cách đội một chiếc mũ tốt nhưng chúng ta không thể đổi mũ.


2

Tôi nghĩ rằng bởi vì một giao diện người dùng tốt là không hợp lý. Một giao diện người dùng tốt là trực quan.

Các nhà phát triển phần mềm thường làm xấu về 'trực quan'


Tuyệt vời điểm, đòi hỏi sự khác bên của não
Chris Ballance

Không có thứ gọi là trực quan cho UI. Tương tự như những gì tôi đã biết, nhưng điều đó hơi khác.
Stephan Eggermont

Không có gì là "trực quan" mọi thứ đều được học. Trực giác là một từ được ném bởi những người kinh doanh để làm cho các lập trình viên đổ mồ hôi.
Bernard Igiri

nói như một lập trình viên thực thụ .... và đó là gốc rễ của vấn đề.
Gregor Brandt

@gbrandt Trực quan là một số kết hợp "quen thuộc" và "đơn giản". Đó vẫn là một mục tiêu để phấn đấu. Điều khó khăn về khả năng sử dụng là những gì trực quan với một số người không nhất thiết là trực quan cho những người khác. @Stephan nói đúng rằng "trực quan" không phải là "thực tế" khó, nó liên quan đến người dùng.
TM.

2

Một khung hữu ích là chủ động xem xét những gì bạn đang làm khi thiết kế một quá trình giao tiếp. Theo một nghĩa rất thực, giao diện của bạn là ngôn ngữ mà người dùng phải sử dụng để nói cho máy tính biết phải làm gì. Điều này dẫn đến việc xem xét một số điểm:

  1. Người dùng đã nói ngôn ngữ này? Sử dụng giao diện rất đơn giản giống như giao tiếp bằng ngôn ngữ mà bạn chưa từng nói trước đây. Vì vậy, nếu giao diện của bạn phải hoàn toàn bình dị, nó sẽ tự giới thiệu tốt nhất với các thuật ngữ đơn giản nhất và một vài phiền nhiễu. Mặt khác, nếu giao diện của bạn sử dụng các thành ngữ mà người dùng đã quen, họ sẽ có được sự tự tin ngay từ đầu.
  2. Kẻ thù của truyền thông là tiếng ồn. Tiếng ồn thính giác cản trở giao tiếp nói; tiếng ồn thị giác can thiệp vào giao tiếp thị giác. Càng nhiều tiếng ồn bạn có thể cắt ra khỏi giao diện của bạn, giao tiếp với nó sẽ dễ dàng hơn.
  3. Như trong cuộc trò chuyện của con người, nó thường không phải là những gì bạn nói, đó là cách bạn nói. Cách mà hầu hết các phần mềm giao tiếp là thô lỗ ở một mức độ sẽ khiến nó bị đấm vào mặt nếu đó là một người. Bạn sẽ cảm thấy thế nào nếu bạn hỏi ai đó một câu hỏi và họ ngồi đó và nhìn chằm chằm vào bạn trong vài phút, từ chối trả lời theo bất kỳ cách nào khác, trước khi trả lời? Nhiều yếu tố giao diện, như thanh tiến trình và lựa chọn tiêu điểm tự động, có chức năng cơ bản là lịch sự. Tự hỏi làm thế nào bạn có thể làm cho ngày của người dùng dễ chịu hơn một chút.

Thực sự, nó hơi khó để xác định những lập trình viên nghĩ về tương tác giao diện như là, khác hơn là một quá trình giao tiếp, nhưng có lẽ vấn đề là nó không được coi như là bất cứ điều gì cả.


2

Có rất nhiều bình luận tốt, vì vậy tôi không chắc có nhiều ý kiến ​​tôi có thể thêm vào. Nhưng vẫn...

  • Tại sao một nhà phát triển mong đợi có thể thiết kế giao diện người dùng tốt?
  • Anh ta đã đào tạo bao nhiêu trong lĩnh vực đó?
  • Anh ấy đã đọc bao nhiêu cuốn sách?
  • Có bao nhiêu thứ ông đã thiết kế trong bao nhiêu năm?
  • Anh ta có cơ hội thấy phản ứng của người dùng không?

Chúng tôi không hy vọng rằng một "thợ sửa ống nước Joe" ngẫu nhiên có thể viết mã tốt. Vậy tại sao chúng ta lại mong đợi "Joe lập trình viên" ngẫu nhiên thiết kế UI tốt?

Đồng cảm giúp. Phân tách thiết kế UI và lập trình giúp. Kiểm tra khả năng sử dụng giúp.

Nhưng thiết kế giao diện người dùng là một nghề thủ công phải được học và thực hành, giống như bất kỳ công việc nào khác.


Chính xác những gì tôi đã nghĩ, "nhà phát triển" liên quan đến "Nhà thiết kế giao diện người dùng" như thế nào ??
Jorge Córdoba

@Jorge ở đây bây giờ có liên quan: rất nhiều nhà phát triển phải thiết kế UI cho chủ nhân của họ, ngay cả khi họ không phải là nhà thiết kế. Tại công ty của tôi, chúng tôi không có BẤT K artist nghệ sĩ nào. Các ứng dụng của chúng tôi trông không tệ lắm. Trong trường hợp này, bạn phải có đánh giá nhóm và công cụ để đảm bảo thiết kế đẹp.
TM.

@TM: Thiết kế không nhất thiết là UI / UX Design. Chắc chắn nó có thể trông tốt nhưng điều đó không có nghĩa là nó hoạt động tốt .
Kevin Peno

2

Các nhà phát triển không (nhất thiết) giỏi thiết kế UI vì cùng lý do họ không (nhất thiết) giỏi đan; thật khó, cần phải luyện tập và sẽ không đau khi có ai đó chỉ cho bạn cách ngay từ đầu.

Hầu hết các nhà phát triển (bao gồm cả tôi) bắt đầu "thiết kế" UI vì đó là một phần cần thiết của phần mềm viết. Cho đến khi một nhà phát triển nỗ lực để có được nó tốt, họ sẽ không làm thế.


2

Để cải thiện chỉ cần nhìn xung quanh tại các trang web hiện có. Ngoài những cuốn sách đã được đề xuất, bạn có thể muốn xem cuốn sách tuyệt vời "Cuốn sách thiết kế không phải của nhà thiết kế" của Robin Williams ( liên kết vệ sinh của Amazon )

Hãy xem những gì có thể có trong thiết kế hình ảnh bằng cách xem qua các bài nộp khác nhau tại The Zen Garden .

Thiết kế giao diện người dùng chắc chắn là một nghệ thuật, giống như con trỏ trong C, một số người hiểu và một số người thì không.

Nhưng ít nhất chúng ta có thể cười thầm trước những nỗ lực của họ . BTW Cảm ơn OK / Hủy cho một truyện tranh vui và cảm ơn Joel vì đã đưa nó vào cuốn sách "Phần mềm tốt nhất tôi viết" ( liên kết được vệ sinh trên Amazon ).


2

Giao diện người dùng không phải là thứ có thể được áp dụng sau thực tế, như một lớp sơn mỏng. Đó là một cái gì đó cần phải có ngay từ đầu, và dựa trên nghiên cứu thực sự. Tất nhiên có hàng tấn nghiên cứu về khả năng sử dụng. Nó không chỉ cần ở đó khi bắt đầu, nó cần hình thành cốt lõi của chính lý do bạn tạo ra phần mềm ngay từ đầu: Có một số khoảng cách trên thế giới ngoài kia, một số vấn đề, và nó cần phải được thực hiện sử dụng nhiều hơn và hiệu quả hơn.

Phần mềm không có vì lợi ích riêng của nó. Lý do cho một phần mềm tồn tại là CHO NGƯỜI. Thật là lố bịch khi thậm chí cố gắng đưa ra ý tưởng cho một phần mềm mới, mà không hiểu tại sao mọi người sẽ cần nó. Tuy nhiên, điều này xảy ra tất cả các thời gian.

Trước khi một dòng mã được viết, bạn nên xem qua các phiên bản giấy của giao diện và kiểm tra nó trên người thật. Điều này thật kỳ lạ và ngớ ngẩn, nó hoạt động tốt nhất với trẻ em và ai đó giải trí đóng vai trò là "máy tính".

Giao diện cần tận dụng các cơ sở nhận thức tự nhiên của chúng tôi. Làm thế nào một caveman sử dụng chương trình của bạn? Chẳng hạn, chúng tôi đã tiến hóa để thực sự giỏi trong việc theo dõi các vật thể chuyển động. Đó là lý do tại sao các giao diện sử dụng mô phỏng vật lý, như iphone, hoạt động tốt hơn các giao diện nơi các thay đổi xảy ra tức thời.

Chúng tôi giỏi ở một số loại trừu tượng, nhưng không phải là loại khác. Là lập trình viên, chúng tôi được đào tạo để tập thể dục tinh thần và nhảy lùi để hiểu một số điều trừu tượng nhất. Ví dụ, chúng tôi hiểu rằng một chuỗi các văn bản phức tạp có thể biểu diễn và được dịch thành một mô hình trạng thái điện từ trên một đĩa kim loại, khi gặp một thiết bị được thiết kế cẩn thận, dẫn đến một chuỗi các sự kiện vô hình xảy ra ở đèn chiếu trên điện tử mạch, và những sự kiện này có thể được định hướng để tạo ra một kết quả hữu ích. Đây là một điều cực kỳ không tự nhiên phải hiểu. Hiểu rằng trong khi nó có một lời giải thích hợp lý hoàn hảo cho chúng ta, với thế giới bên ngoài, có vẻ như chúng ta đang viết những câu thần chú khó hiểu để triệu tập những linh hồn vô hình để đấu thầu.

Các loại trừu tượng mà con người bình thường hiểu là những thứ như bản đồ, sơ đồ và biểu tượng. Coi chừng các biểu tượng, bởi vì các biểu tượng là một khái niệm rất mong manh của con người, cần nỗ lực tinh thần có ý thức để giải mã, cho đến khi biểu tượng được học.

Thủ thuật với các biểu tượng là phải có mối quan hệ rõ ràng giữa biểu tượng và vật thể hiện. Thứ mà nó đại diện phải là một danh từ, trong trường hợp đó, biểu tượng sẽ trông RẤT NHIỀU giống như thứ mà nó đại diện. Nếu một biểu tượng đại diện cho một khái niệm trừu tượng hơn, thì điều đó phải được giải thích TRÊN NÂNG CAO. Xem các biểu tượng không thể hiểu được không thể hiểu được trong thanh công cụ của msword hoặc photoshop và các khái niệm trừu tượng mà chúng đại diện. Cần phải TÌM HIỂU rằng biểu tượng công cụ cắt trong photoshop có nghĩa là CÔNG CỤ CROP. nó phải được hiểu CROP có nghĩa là gì. Đây là những điều kiện tiên quyết để sử dụng chính xác phần mềm đó. Điều này mang đến một điểm quan trọng, hãy cẩn thận với kiến ​​thức ĐÁNH GIÁ.

Chúng tôi chỉ đạt được khả năng hiểu bản đồ ở độ tuổi 4. Tôi nghĩ rằng tôi đã đọc ở đâu đó một lần rằng tinh tinh đạt được khả năng hiểu bản đồ vào khoảng 6 hoặc 7 tuổi.

Lý do mà guis đã rất thành công khi bắt đầu, là vì họ đã thay đổi một khung cảnh của hầu hết các giao diện văn bản cho máy tính, thành thứ gì đó ánh xạ các khái niệm máy tính thành một nơi giống như một địa điểm vật lý. Trường hợp guis thất bại về khả năng sử dụng, là nơi chúng ngừng giống với những gì bạn thấy trong cuộc sống thực. Có những thứ vô hình, không thể đoán trước, không thể hiểu được xảy ra trong một chiếc máy tính hoàn toàn không giống với bất cứ thứ gì bạn từng thấy trong thế giới vật chất. Một số điều này là cần thiết, vì sẽ không có lý do gì trong việc tạo ra một trình giả lập thực tế- Ý tưởng là để tiết kiệm công việc, do đó phải có một chút phép thuật. Nhưng phép thuật đó phải có ý nghĩa, và được đặt nền tảng trong một sự trừu tượng rằng con người thích nghi tốt với sự hiểu biết. Đó là khi sự trừu tượng của chúng ta bắt đầu trở nên sâu sắc, và lớp, và không phù hợp với nhiệm vụ trong tầm tay mà mọi thứ đổ vỡ. Nói cách khác, giao diện không hoạt động như một bản đồ tốt cho phần mềm cơ bản.

Có rất nhiều sách. Hai cuốn sách mà tôi đã đọc và do đó có thể giới thiệu là "Thiết kế của mọi thứ hàng ngày" của donald Norman và "Giao diện con người" của Jef Raskin.

Tôi cũng giới thiệu một khóa học về tâm lý học. "Thiết kế của mọi thứ hàng ngày" nói về điều này một chút. Rất nhiều giao diện bị phá vỡ do "hiểu biết dân gian" về tâm lý học của nhà phát triển. Điều này tương tự như "vật lý dân gian". Một vật thể đang chuyển động sẽ không chuyển động đối với hầu hết mọi người. "Bạn phải tiếp tục đẩy nó để giữ cho nó chuyển động!" nghĩ rằng người mới học vật lý. Kiểm tra người dùng không có ý nghĩa với hầu hết các nhà phát triển. "Bạn chỉ có thể hỏi người dùng những gì họ muốn, và điều đó là đủ tốt!" nghĩ rằng người mới tâm lý.

Tôi giới thiệu Khám phá Tâm lý học, một bộ phim tài liệu của PBS, được tổ chức bởi Philip Zimbardo. Không, hãy thử và tìm một cuốn sách giáo khoa vật lý tốt. Các loại đắt tiền. Không phải tiểu thuyết bột giấy tự giúp đỡ tào lao mà bạn tìm thấy trong Biên giới, mà là những thứ cứng dày bạn chỉ có thể tìm thấy trong thư viện trường đại học. Đây là một nền tảng thận. Bạn có thể thiết kế tốt mà không cần nó, nhưng bạn sẽ chỉ có một sự hiểu biết trực quan về những gì đang diễn ra. Đọc một số cuốn sách tốt sẽ cho bạn một viễn cảnh tốt.


2

Nếu bạn đọc cuốn sách "Tại sao phần mềm hút" bạn sẽ thấy câu trả lời của Platt, đây là một câu hỏi đơn giản:

  1. Các nhà phát triển kiểm soát trước sự thân thiện với người dùng
  2. Người bình thường ưu tiên người dùng thân thiện hơn kiểm soát

Nhưng một câu trả lời khác cho câu hỏi của bạn sẽ là "tại sao nha khoa lại khó khăn như vậy đối với một số nhà phát triển?" - Thiết kế UI được thực hiện tốt nhất bởi một nhà thiết kế UI.

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.