我们中的一些人只是在UI设计的软方面遇到了困难(尤其是我自己)。“后端编码器”注定只设计业务逻辑和数据层吗?我们是否可以做些什么来重新训练我们的大脑,使其更有效地设计出令人愉悦和有用的演示层?
同事们给我推荐了《网站设计》、《不要让我思考》、《为什么软件很糟糕》等几本书,但我想知道其他人在这方面做了什么来弥补他们的不足?
我们中的一些人只是在UI设计的软方面遇到了困难(尤其是我自己)。“后端编码器”注定只设计业务逻辑和数据层吗?我们是否可以做些什么来重新训练我们的大脑,使其更有效地设计出令人愉悦和有用的演示层?
同事们给我推荐了《网站设计》、《不要让我思考》、《为什么软件很糟糕》等几本书,但我想知道其他人在这方面做了什么来弥补他们的不足?
当前回答
让我直接说:
改善这一点并不是从指导方针开始的。首先要重新定义对软件的看法。
大多数硬核开发人员对他们软件的用户几乎没有同情心。他们不知道用户如何思考,用户如何建立他们使用的软件模型,以及他们通常如何使用计算机。
当专家和外行发生冲突时,这是一个典型的问题:一个正常人怎么会如此愚蠢,不明白专家10年前的理解?
首先要承认的一个事实是,几乎所有有经验的开发者都难以掌握:
正常人对软件的概念和你有很大的不同。他们完全不懂编程。一个也没有。零。他们根本不在乎。他们甚至不认为他们需要关心。如果你强迫他们,他们会删除你的程序。
这对开发者来说是难以置信的残酷。他为自己生产的软件感到自豪。他喜欢每一个特征。他可以告诉你它背后的代码是如何工作的。也许他甚至发明了一种令人难以置信的聪明算法,使它比以前快了50%。
用户并不关心。
真是个白痴。
许多开发人员无法忍受与普通用户一起工作。他们因为缺乏技术知识而感到沮丧。这就是为什么大多数开发人员回避,认为用户一定是白痴。
事实并非如此。
如果一个软件开发人员买了一辆车,他希望它能平稳运行。他通常不关心轮胎压力,机械微调是重要的,使它运行那样。在这方面他不是专家。如果他买了一辆没有微调功能的车,他就会把它退回去,再买一辆他想要的。
Many software developers like movies. Well-done movies that spark their imagination. But they are not experts in producing movies, in producing visual effects or in writing good movie scripts. Most nerds are very, very, very bad at acting because it is all about displaying complex emotions and little about analytics. If a developer watches a bad film, he just notices that it is bad as a whole. Nerds have even built up IMDB to collect information about good and bad movies so they know which ones to watch and which to avoid. But they are not experts in creating movies. If a movie is bad, they'll not go to the movies (or not download it from BitTorrent ;)
所以归结起来就是:把普通用户当成专家来回避是一种无知。因为在那些他们不是专家的领域(有这么多),他们希望其他领域的专家已经考虑过使用他们产品或服务的普通人。
What can you do to remedy it? The more hardcore you are as a programmer, the less open you will be to normal user thinking. It will be alien and clueless to you. You will think: I can't imagine how people could ever use a computer with this lack of knowledge. But they can. For every UI element, think about: Is it necessary? Does it fit to the concept a user has of my tool? How can I make him understand? Please read up on usability for this, there are many good books. It's a whole area of science, too.
啊,在你说出来之前,是的,我是苹果粉;)
其他回答
我坚持的主要经验法则是,永远不要同时做两件事。如果我正在处理后端代码,我将完成这一工作,休息一下,然后带着我的UI帽子返回。如果你在编写代码时尝试使用它,你将以错误的心态处理它,结果会得到一些糟糕的界面。
我认为同时成为一名优秀的后端开发人员和一名优秀的UI设计师是完全可能的,你只需要努力工作,阅读和研究相关主题(从Miller的#7到Nielsen的档案),并确保你理解UI设计的重要性。
我不认为这是一个需要创造性的案例,而是像后端开发一样,这是一个非常有方法,非常结构化的事情,需要学习。正是人们对ui的“创造性”创造了一些最大的可用性怪物……我的意思是,首先看看100%使用Flash的网站……
编辑:克鲁格的书真的很好……一定要读一读,特别是如果你要为网络设计的话。
无论你怎么做(上面有一些很棒的观点),它真的帮助了我,一旦我接受了没有这样的事情作为直觉....
我能听到地平线上争论的隆隆声……我来解释一下。
直觉的:基于一种无意识的方法或感觉,使用自己感觉正确或真实的东西。
如果(正如卡尔·萨根(Carl Sagan)所假设的那样)你接受你无法理解与你所遇到过的任何事物完全不同的事物,那么如果你从未使用过类似的东西,你怎么可能“知道”如何使用它呢?
想想看:孩子们试图打开门,不是因为他们“知道”门把手是如何工作的,而是因为他们看过别人这样做……他们经常把旋钮转错方向,或者拉得太快。他们必须学会如何使用门把手。然后,这一知识被应用到不同但相似的例子中:打开窗户,打开抽屉,打开几乎任何有大把手的大东西。
即使是对我们来说很直观的简单事情,对来自其他文化的人来说也完全不是直观的。如果有人把他们的手臂伸出在他们面前,并放弃他们的手在手腕上,同时保持手臂静止....他们放弃你了吗?可能吧,除非你在日本。在那里,这个手势可以表示“过来”。那么谁是对的呢?当然,两者都有各自的背景。但如果你两个都去过,你就需要了解它们……UI设计。
我试着找到我项目的潜在用户已经“熟悉”的东西,然后围绕他们构建UI:以用户为中心的设计。
看看苹果的iPhone吧。即使你讨厌它,你也必须尊重它所付出的心血。它完美吗?当然不是。随着时间的推移,物体感知的“直觉性”可能会增长,甚至完全消失。
为例。大多数人都知道,一条顶部和底部有两排孔的黑色带子看起来像一条薄膜带……真的是这样吗?
问问普通9岁或10岁的孩子,他们是怎么想的。你可能会感到惊讶,现在有多少孩子很难把它认出来是电影连环画,即使它仍然被用来代表好莱坞,或任何与电影有关的东西。过去20年里,大多数电影都是用数字技术拍摄的。我们最后一次拿着照片或胶片是什么时候?
所以,对我来说,这一切都归结为:了解你的受众,不断研究,以跟上“直观”事物的趋势和变化,瞄准你的主要用户,尽量不要为了支持高级用户而惩罚没有经验的用户,或者为了帮助新手而减慢高级用户的速度。
最终,每个程序都需要用户经过一定程度的培训才能使用。培训多少以及针对哪个级别的用户是需要做出决策的一部分。
根据您的目标用户过去作为人类、计算机用户或学生的经验水平,有些东西或多或少是熟悉的。
我只是瞄准钟形曲线中最胖的部分,并试图获得尽可能多的人,但意识到我永远不会取悦所有人....
我建议你从现在做UI的方式开始,不要关注可用性之类的东西。
可选文字 http://www.stricken.org/uploaded_images/WordToolbars-718376.jpg
现在想想这个:
一个设计师知道他已经达到了完美,不是当没有什么可以添加的时候,而是当没有什么可以删除的时候。 ——圣艾修伯里
并应用到你的设计中。
我相信所有CS程序员都有能力做出好的可用性设计,因为可用性设计要求开发人员按照特定的路径和规则进行思考。然而,对于一些程序员来说,开发一个好的“有吸引力的”设计几乎是不可能的。这并不意味着两者是不可避免地联系在一起的。这就像莫扎特能写出美妙的音乐,却不擅长足球。
许多开发人员认为,因为他们会写代码,他们就可以做所有的事情。设计界面是一种完全不同的技能,在我上大学的时候根本没有教过这门技能。这不是与生俱来的。
另一本好书是唐纳德·诺曼的《日常事物的设计》。