我们中的一些人只是在UI设计的软方面遇到了困难(尤其是我自己)。“后端编码器”注定只设计业务逻辑和数据层吗?我们是否可以做些什么来重新训练我们的大脑,使其更有效地设计出令人愉悦和有用的演示层?

同事们给我推荐了《网站设计》、《不要让我思考》、《为什么软件很糟糕》等几本书,但我想知道其他人在这方面做了什么来弥补他们的不足?


当前回答

原因有很多。

(1)开发者不能站在用户的角度看问题。这是通常的怀疑:缺乏同理心。但这通常不是真的,因为开发人员并不像人们想象的那样陌生。

(2)另一个更常见的原因是,开发人员太接近自己的东西,在他的东西上呆了这么长时间,没有意识到其他人可能并不那么熟悉他的东西(这是一个比直觉更好的术语)。

(3)还有一个原因是开发人员缺乏技术。

我的最大主张:阅读任何UI,人类交互设计,原型书。例如:设计显而易见的:一种Web应用程序设计的常识方法,不要让我思考:一种Web可用性的常识方法,设计时刻,等等。

他们如何讨论任务流程?他们如何描述决策点?也就是说,在任何用例中,至少有3条路径:成功、失败/异常、替代。

因此,从点A,你可以去A.1, A.2, A.3。 从点A.1,你可以得到A.1.1, A.1.2, A.1.3,等等。

他们如何显示这种向下钻取的任务流程? 他们没有。他们只是掩饰它。

因为即使是UI专家也不具备技术,所以开发者也没有机会。 他认为这在他的头脑中是清楚的。但它甚至在纸上都不清楚,更不用说在软件实现中了。

我必须用我自己的手工制作技术。

其他回答

设计和美学之间有着巨大的差异,它们经常被混淆。

一个漂亮的UI需要艺术或至少是美学技能,包括我自己在内的许多人都无法做到这一点。不幸的是,就像我们在许多重量级的基于flash的api中看到的那样,这是不够的,并且不能使UI可用。

制作可用的ui需要理解人类如何与计算机交互、心理学中的一些问题(例如,菲特定律、希克定律)和其他主题。很少有计算机科学课程为此进行培训。我认识的开发人员中很少有人会选择用户测试书籍而不是JUnit书籍等等。

我们中的许多人也是“核心程序员”,倾向于将ui视为外观,而不是可以成就或破坏项目成功的因素。

此外,大多数UI开发经验都非常令人沮丧。我们可以使用像旧VB那样的玩具GUI构建器,并不得不处理丑陋的胶水代码,或者我们使用无休止地让我们沮丧的api,比如试图在Swing中整理布局。

没有人建议过,但对你有很大帮助的是参加人因工程学课程(通常是研究生水平)。如果你不想选这门课,至少去找课本读一遍。

开发者不一定擅长UI设计,就像他们不一定擅长编织一样;这很难,需要练习,让别人先教你怎么做也无妨。

大多数开发人员(包括我)开始“设计”ui,因为这是编写软件的必要部分。除非一个开发人员努力去精通它,否则他/她是不会精通的。

用户体验设计和软件开发绝不是相互排斥的技能。相反,它们都需要常识和逻辑,注重细节,能够看到大局。所以,如果你是一名优秀的开发人员,你就有机会成为一名优秀的UX设计师!

它们看起来可能是相互排斥的,因为许多开发人员没有UX设计经验,反之亦然。此外,如果你在考虑用户体验设计之前就开始考虑架构、框架或语言,这可能会把你引向错误的方向。

部分原因在于,UI设计比看起来要难得多,就像编程比设计师看起来要难得多一样。这两个人对完全不同的事情的担忧程度大不相同,而这一点,除了所需的方法和技能明显不同之外,导致他们关注彼此看不见的问题。

I've found that it helps to describe my app and how to use it to someone without any visual tools whatsoever. It helps focus on what is actually necessary and important and feeds back what can be comprehended quickly by another person. I can do this even before I have a line of code, so it's very cheap to do and doesn't require any artistic skills. The other advantage is that verbalizing the app gets parts of my brain working that otherwise would remain dormant while coding and I can start to "see" the app work (or not work) as I talk.