用户体验设计师需要编程知识吗?

时间:2009-01-28 05:53:11

标签: eclipse user-interface

我们的团队中有一位没有编程背景的用户体验设计师。他希望将Eclipse中的屏幕设计为开发环境。他的(有效)投诉是,每当他设计一个特定的屏幕并将其用于开发时 - 他们就会告诉他在技术上使用SWT或GEF是不可能的。因此,他希望我教他SWT / GEF的基础知识,这样他就可以做出明智的决定,甚至可以在提出设计以节省时间之前在eclipse中尝试某些事情(而不是使用Photoshop)。

我个人认为,设计不应受技术可能性的限制,理论上,设计师所梦想的一切(至少是实际的东西)在技术上应该是可能的 - 尽管有变通方法或有点黑客攻击。

所以,我的问题是 - 您认为用户界面设计的编程知识有多重要?如果是这样,你如何在各种平台上教授完全没有编程经验的图形框架?

9 个答案:

答案 0 :(得分:9)

原则上,我同意你的看法。编程知识对于UI和工作流程的熟练设计者来说不是必需的。但是,了解所使用技术的能力和局限性可以帮助UI设计人员更有效地与编程人员一起工作。

如果编程知识可以提供帮助,那么如果开发人员正在冒烟,而某些事情可能无法完成,那么对所使用工具的一些了解可以帮助反驳这一点。如果开发人员认为无法完成某些工作,那么对工具的了解可以帮助UI设计人员找到符合设计目标的适当解决方案,并且是可以实现的。

通过合作开发人员,UI设计人员对所使用的特定GUI工具的知识非常少(如果有的话)。

我一直在开发者方面,我被要求做一些不可能或不切实际的事情。我总是和设计师一起找到一个符合设计目标的快乐中间人。有时我认为不可能的事实上是可能的。有时我们不得不以不同的方式做事。必须推迟一些事情,因为“可能,但需要付出太多努力。” (例如,基于SWT的应用程序成为Windows任务栏。绝对可能,但对于有问题的项目不切实际,因为它需要本机代码。)

最重要的是,双方都意识到他们在同一个团队中。

答案 1 :(得分:4)

非常重要..

不知道:

  1. 一般技术
  2. 您选择投入时间投入生产最终产品的技术
  3. 将导致每个人完全浪费时间..

    即使是最终用户也需要了解能够使用我们生产的任何产品所采用的技术。 驾驶汽车的人总是需要知道如何填充汽油并了解汽车的基本知识以及它可以做什么,软件以类似的方式工作。

    就像问一个不知道汽车(今天的汽车)的人需要轮子来绘制你的下一个版本模型。

    让他们更了解这项技术的方法是:

    1. 向他/她展示他/她的类似产品
    2. 显示他/她可能考虑使用的构建块的独立实现
    3. 但是无论如何......这并不意味着你应该扼杀他们的创造力......他们会把他们的梦想吸引掉,只是让他们对需要的现实有点了解,以便在这里完成一些事情。寿命

答案 2 :(得分:3)

在我看来,并不像常识那么重要。

当然有帮助。但是如果设计师要求做一些可以做的事情(因为其他一些应用程序使用它),那么开发主管应该至少提出一个解决方法。

编程知识可能不是,但肯定会对所选平台有所限制。

答案 3 :(得分:3)

  

所以,我的问题是这个 - 你认为有多重要   为用户编程知识   界面设计?

我认为需要平台标准用户界面的基本知识(文本字段,组合框,单选按钮等)。从开发人员的角度来看,优秀的设计人员应该熟悉这些GUI组件的功能和局限性。所以我想一些基本的编程知识会很有用。

  

我个人的信念是设计   不应受技术限制   可能性和理论上,   设计师梦寐以求的一切   (至少是实际的事情)应该   在技​​术上是可能的 - 尽管如此   变通办法或有点黑客攻击。

我认为这里有重要的资格 - 每个操作系统都有关于什么构成良好的GUI设计的指导,并且它对你的产品有益,因为用户有一个他或她应该如何与之交互的心理模型该平台上的应用程序。 (话虽如此,可能有很好的理由打破一些设计惯例,例如在游戏,专业图形/音乐应用程序中。)

  

你如何去教别人   完全没有编程   体验图形框架   各种平台?

每个工具包都提供了大量的小样本程序来演示不同组件的使用 - 这可能是熟悉它们的第一步。

答案 4 :(得分:3)

我认为最好先学习,但如果您的UI设计师被迫在飞行中学习,请确保每次他被拒绝时,都会解释为什么不能做某些事情而不仅仅是拒绝。这将使他不会像其他人一样感到沮丧,因为他将能够形成至少一些他能做什么和不能做的逻辑框架。

答案 5 :(得分:2)

这一切都取决于你的工具。

编辑:我的意思是有为工程师设计的工具和程序员的工具。 Eclipse,一个不是设计师工具。 Photoshop是。 Flash可能,Flex不是。我不需要Flash设计师来编程,但Flex设计师确实需要编程。

至于告诉他们你所依赖的工具的极限,真正优秀的创意设计师会接受这些限制并做出令人难以置信的工作,平庸的设计师会将限制视为障碍,不再有创意,只是害怕遵守规则。 / p>

答案 6 :(得分:2)

我认为设计师应该了解他所使用的工具所提供的功能和限制,他应该了解这些人正在制作的当前项目的限制和截止日期。

他还应该知道正在进行的后台处理以显示屏幕用户界面,所有这些事情只有在他对编程有一些基本知识时才会出现。

他不必涉足OOP的深度,学习SQL,了解反射的复杂性或任何花哨的东西。他只需要很好地了解他的平台,我认为即使是设计师也是如此。

答案 7 :(得分:2)

“设计”的核心是找到一种在约束条件下实现理想结果的方法。如果您对影响目标的部分约束没有任何意义,那么就无法进行设计。

答案 8 :(得分:1)

我已经考虑了一些问题,根据之前给出的答案,我得出了一些结论:

关于在给定平台上进行设计时可行的内容和约束条件的初步知识是强制性的。这意味着图形设计师应该了解以下内容:

  • 该平台的基本设计指南
  • 该平台上提供的标准UI工具包/小部件(例如:文本框,下拉列表等)
  • 在给定平台上不可能(或太麻烦)(例如:在Eclipse中淡出背景时创建半透明模态对话框)

这些知识可能不需要设计师涉足编程。

第二级是设计师试图创建新小部件或(明知)违背给定平台的设定标准的地方。例如,如果设计包括图形或需要描述特殊关系或文本,图形和图像的独特组合,则任何标准工具集都不会隐式支持。在这种情况下,设计人员应该了解给定平台的技术可能性和限制。在这种情况下,我认为设计师应该能够编写一些代码并尝试一些事情来确定可能性范围内的内容。