开发人员应该了解哪些关于界面设计、可用性和用户心理才能创建优秀软件的知识?
可能的重复:
人因设计(满足UI设计中的心理需求)
开发人员应该了解哪些关于用户界面设计、可用性和人机交互的技术含量较低的方面?
我们应该掌握哪些关于使用场景、用户行为模式以及用户与计算机交互心理的知识来设计有效的软件,帮助用户以自然、简单的方式解决问题,而不设置障碍和制造障碍?
软件设计不仅仅是构建架构、实现需求和创建漂亮的界面。一个漂亮的界面不一定有用和有效,反之亦然,一个丑陋的软件实用程序可能会成为许多用户最喜欢的工具。一个优秀的开发人员或设计师至少应该具备哪些基本知识才能流畅的用户体验?
请针对每个答案集中一个问题,描述问题,举例说明用户体验如何受到损害以及解决该情况的方法是什么。
我将开始:
问题:在一个屏幕上立即包含大量控件和选项的界面可能会让用户不知所措。他们将不得不浪费时间浏览所有选项,试图找到他们需要的一个选项。他们还会在此过程中分心,看到另一个功能,去那里了解它,也许阅读帮助以查看它是否可以解决他们的问题,然后再阅读另一个功能,依此类推,直到他们完全迷失。
示例:作为一个很好的例子,我将引用 2007 年之前版本的 Microsoft Word(以及其他 Office 应用程序)。菜单和选项的数量之多总是让我感到害怕。我设法记住我最常需要的选项在哪里,但仅此而已。一切额外的,我倾向于谷歌搜索我需要学习的东西,这个特定的功能位于选项的森林中。
解决方案:将所有额外选项隐藏在逻辑结构的几个菜单和子菜单后面,以便用户能够通过逻辑思维过程找到它们。 2007 年的重新设计显然已经考虑到了这个问题,将选项分组为选项卡。我发现了许多我需要的新选项,无需谷歌搜索,只需思考它可能属于哪里并在那里寻找。并不是说它一直有效,但可以感觉到改进。
现在,你有什么想法?
Possible Duplicate:
Human factors design (meeting psychological needs in UI design)
What should a developer know about user interface design, usability and less technical aspects of human computer interaction?
What knowledge of usage scenarios, user behavior patterns and the psychology of user to computer interaction should we embrace to design effective software that helps users solve their problems in a natural and uncomplicated way without building barriers and creating obstacles?
There is much more to design of software than building the architecture, implementing the requirements and creating a nice-looking interface. A beautiful interface may not necessarily be useful and effective, and vice versa, an ugly software utility can become a favorite tool for many users. What at least basic knowledge should a decent developer or designer have to smooth the user experience?
Please focus on one issue per answer, describe a problem, bring examples, how the user experience is impaired and what are the ways to address the situation.
I will start:
PROBLEM: Interfaces with lots of controls and options immediately on one screen can be overwhelming to users. They will have to waste time looking through all of them trying to locate the one option they need. They'll also get distracted in the process, see one more feature, go there to learn about it and maybe read help to see if it can solve their problems, then another one and so on until they are completely lost.
EXAMPLE: As a good example I will cite the Microsoft Word (as well as other Office applications) of pre-2007 version. The sheer amount of menus and options has always scared me. I managed to remember where were the options I needed most often but that's it. Everything extra, I tend to google for things I need to learn where this particular feature is located in the forest of options.
SOLUTION: Hide out all extra options behind a few menus and submenus logically structured for the user to be able to locate them through the process of logical thinking. The 2007 redesign has obviously taken the problem into account by grouping the options into tabs. I found many new options I needed without googling but just by thinking where it could belong and looking there. Not that it has always worked, but the improvement can be felt.
Now, what are your ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
有用且有效的界面非常漂亮。将他们视为 UI 设计师,而不是艺术专业的学生。 :-)
Useful and effective interfaces are beautiful. Look at them as a UI designer, not as an art major. :-)
学会倾听。
用户会说出他们想要什么,但不会用你习惯的语言。社交,坐下来,慢慢来,倾听。观察他们工作,提出问题。提出一些想法“你想……怎么样?”并听取答复。不要以为某些事情对他们更好,问问他们。不要强迫他们走某条路,因为这样编码更简单。
Learn to listen.
Users will tell what they want but not in the words that you're used to. Socialize, sit down, take your time and listen. Watch them work, ask questions. Bring up some ideas "How would you like...?" and listen to the replies. Don't assume that something would be better for them, ask them. Don't force them down a certain path because it's more simple to code.
GMail 的口号是“搜索,不要排序” 。相同的原理可以应用于用户界面。正如您所提到的,用户已经通过谷歌搜索功能来自己做到这一点。
现在,下一步是在应用程序中构建对功能搜索的支持。点击键盘快捷键,输入一些关键字,然后单击您要使用的功能。即将推出的 RAD Studio 2010 中的 IDE Insight 功能正是这样做的。
GMail has this slogan "Search, don't sort". The same principle can be applied to user interfaces. As you mentioned, users are already doing this themselves by googling for features.
Now the next step is to build support for feature search right into the application. Hit a keyboard shortcut, type a few keywords, and click on the feature you want to use. The IDE Insight feature in the upcoming RAD Studio 2010 does exactly that.
问题:用户界面通常与域模型没有一一对应:
因为程序员谈论
用户说话时的隐藏域模型
关于图形用户界面。
因为用户受到
基于任务的用户界面。他们经常需要
甚至要求“一个新的屏幕来做到这一点”
如果领域模型可能已经
支持它。
解决方案:裸对象架构设计模式。要将其发挥到极致,您甚至可以从域模型自动生成 GUI。
Problem: user interfaces often don't have a 1-to-1 correspondence to the domain model:
because programmers talk about the
hidden domain model while users talk
about the GUI.
because users are constrained by the
task-based user interface. They regularly need
to ask for "a new screen to do this" even
if the domain model may already
support it.
Solution: the naked objects architectural design pattern. To take this to the extreme you might even generate the GUI automatically from the domain model.
我知道这个问题有点老了,但我很惊讶地发现没有人提到 Joel Spolsky 的优秀文章: 程序员的用户界面设计。这绝对是每个开发人员都应该阅读的内容。里面没有什么特别精彩或原创的想法,大部分都是常识,但它确实让我大开眼界,发现了一些不那么明显的点……
I know the question is a bit old, but I'm surprised to see that no one mentioned Joel Spolsky's excellent article : User Interface Design For Programmers. It's definitely something every developer should read. There are no especially brilliant or original ideas in it, it's mostly common sense, but it did open my eyes on some not so obvious points...
我建议阅读唐纳德·诺曼的《日常事物的设计》。
I suggest reading "The Design of Everyday Things" by Donald Norman.
我曾经认为美学毫无用处,直到我试图卖掉我的房子。坚固的地基、3间卧室、2个浴室、2个车库、有围栏的院子,等等,等等——直到我摆脱了我的3只狗的臭味,没有人会碰它。
应用程序/网站的视觉效果越令人愉悦,使用的机会就越大。现在,用户将尝试一下,并确定它是否能实现他们想要的功能。最后,它的实用性如何?此时您可能会得到更多反馈。
就像房子一样:摆脱杂乱,清理所有东西,从通用调色板开始,让用户根据需要添加疯狂的颜色。
I use to think asthetics were useless until I tried to sell my house. Sturdy foundation, 3 brms, 2 baths, 2 car garage, fenced yard, blah, blah blah - until I got rid of the stink from my 3 dogs nobody would touch it.
The more visually pleasing the app/site is, the more chance it will get used. Now a user will give it a try and determine if it does anything they want. Finally, how usable is it? This is a point when you will probably get more feedback.
Just like the house: get rid of the clutter, clean everything, start with a general color pallette and let the user add the crazy colors if the want them.
如果你真的想开阔眼界,可以参加人因工程课程。
If you really want your eyes opened, take a course in Human Factors Engineering.
过去两年我在一家制药公司工作,我认为界面的设计几乎和功能一样重要。看到用户与旧的、复杂的遗留代码作斗争是重新设计它的主要原因。功能很少是重新开发或替换代码的主要原因。
对于交付不仅满足用户需求而且让他们快乐和高效的代码来说都是至关重要的。归根结底,只有当程序让你快乐且富有成效时,你才会使用它们。
I have worked at a pharmaceutical company for the past two years and I think that the design of the interface is nearly as important as the functionality. Watching users struggle with old complicated legacy code is the primary reason for re-designing it. Functionality is seldom the primary reason for redeveloping code or replacing it.
Are all essential to delivering code that not only meets the users needs but makes them happy and productive. At the end of the day, programs will only be used if they make you happy and productive.