前面的话
最近这段时间,又重读了《用户体验要素》这本书,对其中的内容也有了更深一层的理解。
我们似乎总是在谈论用户体验,但用户体验并不是简单几个按钮、动画、颜色、页面的事情,这只是用户体验其中很小的一部分而已。或者说,这只是用户体验相对显性的要素,还有很多不容易被用户察觉到的要素,但它们的重要性却不言而喻。
其实,以用户为中心的设计(User-centered design)的思想很简单:在产品开发的每一个步骤中,都要把用户列入考虑范围。这个简单思想之中所蕴含的内容,却出乎意料的复杂。
作者把用户体验的工作分解为五个要素:战略层、范围层、结构层、框架层、表现层。只有在这个基础架构上,我们才能有效讨论用户体验的问题,以及用什么工具来解决用户体验。
五个层面的关系
五个层面的关系:每一个层面都是根据它下面的层面来决定的。表现层由框架层来决定,框架层建立在结构层的基础上,结构层的设计则基于范围层,范围层是根据战略层来制定的。
这并不是说每一个较低层面上的决策都必须在较高层面之前做出,在较高层面中的决定有时会促成对较低层面决策的一次重新评估。因此,合理的做法是:
任何一个层面的工作都不能在其下层面的工作完成之前结束。
一、战略层
一个成功的用户体验,其基础是一个被明确表达的战略。
我们要通过这个产品得到什么?
我们的用户要通过这个产品得到什么?
由上可知,产品目标和用户需求组成了战略层,战略层成为我们在设计用户体验过程中做出每一个决定的基础。为了明确地理解战略,我们首先要检查产品的目标。
产品目标
产品目标经常以“只可意会不可言传”的状态存在,当产品目标无法用语言表达出来时,不同的人就会有不同的想法。本书从三个方面去论述产品目标:
商业目标
品牌识别
成功标准
产品目标可以是商业目标,也可以是其它类型的目标。但是,描述产品目标既不能太宽泛也不能太过具体,更不要试图在尚未充分了解问题之前就试图得出结论。
对于任何一个网站,品牌识别也是需要明确描述的基础目标之一。另外,一个可量化的成功标准指标,可以让我们知道产品是否满足了我们自己的目标和用户的需求。
对于依赖广告收入的网站,印象数(广告每天被展示的数量),也是绝不可忽视的重要指标。但盲目的增加页面导航层级,去提高每个广告的印象数,这很可能不是用户需要的。
虽然网站的用户体验难以带来新的用户,但能极大地影响访问者的二次访问几率。
用户需求
我们必须要了解用户是谁,以及他们的需求是什么。只有投入时间去研究这些需求,我们才能抛弃自己立场的局限,真正从用户的角度来重新审视网站。
确认用户需求是复杂的,因为用户群体之间存在很大的差异性。要想对这些用户需求寻根问底,必须要定义谁是我们的用户:
用户细分:人口统计学...)
用户研究:(问卷调查、用户访谈...)
用户模型:(创建人物角色...)
我们可以将用户划分成较小的、有共同需求的小组,以此来帮助我们更好地了解用户的需求。创建细分用户群不仅仅是因为不同的用户群有不同的需求,还因为有时候这些需求是彼此矛盾的。
我们无法提供一种方案可以同时满足这两种用户的需求,我们要么选择单一用户群设计而排出其它用户群,要么为执行相同任务的不同用户群提供不同的方式。
问卷调查、用户访谈、焦点小组适用于收集用户的普遍观点与感知,而用户测试、现场调查、任务分析则适用于理解用户的具体行为以及用户在与产品交互时的表现。
另外,要特别注意用户测试并不是测试你的用户,而是邀请用户来帮忙测试你的产品。
人物角色是能代表整个真实用户需求的虚构人物,它可以将用户调查及用户细分过程中得到的分散资料重新关联起来,并且可以帮助我们在整个设计过程期间始终把用户放在心里。
战略文档
产品目标和用户需求经常被定义在一个正式的战略文档或愿景文档中。这些文档不仅仅是列出目标清单,还提供不同目标之间的关系分析,并且说明这些目标要如何融入更大的企业环境中去。
战略文档通常包含敏感的资料,但仅仅因为这个就对团队不公开,只会破坏他们理解这些事情的能力。
二、范围层
当把产品目标和用户需求转变成产品应该提供给用户什么样的功能和内容时,战略就变成了范围。在范围层,我们面对的问题是:我们要开发的是什么?在软件开发中,范围层确定的是全部的功能需求或功能规格,即定义了产品的边界。
在这里,范围层被分为“功能型产品”和“信息型产品”两个部分。
书中特别提到,用文档来定义产品需求的必要性,这样你才知道你需要建设什么,以及不需要建设什么。每一个额外的要求看上去并没有增加太多的工作量,但是当他们汇集到一起的时候,你的整个项目就会失去控制地膨胀。
定义需求
我们需要的文档不是要有多厚或多详细,而是要足够清楚和准确,避免在设计或开发过程中有可能出现混淆的功能定义。
乐观
具体
避免主观的语气
同时,功能规格需求必须可量化、可验证,因此在描述功能需求时要避免主观的语气,这也有助于我们知道是否满足了用户的需求。
需求优先级
由于项目范围是建立在战略层的基础上的,因此我们应该去评估这些需求是否能满足我们的战略目标。
任何不符合当前项目的战略目标的特性建议,都要通过范围定义将其排除出去。但如果你发现自己正在反复审视战略目标,那么你极有可能是太早进入了需求定义阶段。
另外,在进行争论的时候,要关注战略目标,而不是各种实现这些目标的手段。
三、结构层
在定义好用户需求并排列好优先级别后,我们对最终产品将会包含什么特性已经有了清楚的图像。然而,这些需求并没有说明如何将这些分散的片段组成一个整体。这就是范围层上面的一层:为网站创建一个概念结构。
在传统的软件开发行业,涉及“为用户设计结构化体验”的方法被称为交互设计。在内容建设方面,则主要是通过信息架构来构建用户体验。
交互设计和信息架构都强调一个重点:确定各个将要呈现给用户的元素的模式和顺序。交互设计关注影响用户执行和完成任务的元素,信息架构则关注将信息表达给用户的元素。
交互设计
交互设计关注于描述“可能的用户行为”,同时定义“系统如何配合与响应”这些用户行为。
信息架构
信息架构研究的是人们如何认知信息的过程,对于产品而言,信息架构关注的就是呈现给用户的信息是否合理并具有意义。
在以内容分为主的网站上,信息架构主要的工作是设计组织分类和导航的结构,让用户可以高效率、有效地浏览网站的内容。另外,信息架构要求创建分类体系,主要有以下两种方式:
从上到下
从下到上
从上到下的架构方法是由战略层驱动的,从下到上的架构方法是由范围层驱动的。两种方法都有一定的局限。从上到下的架构方法有时可能导致内容的重要细节被忽略。另一方面,从下到上的架构方法则可能导致架构过于精确地反映了现有的内容,因此不能灵活地容纳未来内容的变动或增加。
另外,架构质量最重要的标准,不是整个过程一共需要多少步骤,而是用户是否认为每一个步骤都是合理的,以及当前步骤是否自然地延续了上一个步骤中的任务。显而易见,用户会喜欢一个被清晰定义的七步过程,而不是一个令人困惑的、被勉强压缩的三步过程。
四、框架层
结构层界定了我们的产品将用什么方式来运作,而框架层则确定我们产品详细的界面外观、导航和信息设计。
在结构层,我们看到一个较大的架构和交互设计;在框架层,我们的关注点几乎全部在独立的组件以及它们之间的相互关系上。
功能型产品,通过界面设计来确定框架;信息型产品,通过导航设计来呈现信息的界面形式;功能型和信息型产品否都需要通过信息设计来呈现有效的信息沟通。
界面设计
界面设计要做的全部事情就是选择正确的界面元素。这些界面元素要能帮助用户完成他们的任务,还要通过适当的方式让它们容易被理解和使用。哪个功能要在哪个界面上完成,我们已经在结构层的交互设计中已经决定;而这些功能在界面上如何被用户认知到,则属于界面设计的范畴。
导航设计
如果去掉界面,导航设计的复杂性就会显得轻而易见。导航设计需要完成以下三个目标:
提供给用户一种在网站之间跳转的方法;
传达这些元素和其包含内容之间的关系;
传达其内容和用户当前页面之间的关系;
在物理空间中,人们可以在某种程度上依靠天上的方向感来给自己定位,但是这在信息空间中根本起不到作用。因此,在网站中清晰地告诉用户“他们在哪儿”以及“他们能去哪儿”是非常重要的。
另外,大多数网站都会提供一个多重的导航系统,每一个都要完成在各种情形中成功引导用户的任务: 全局导航、局部导航、辅助导航、上下文导航、友好导航。
这里就不对导航系统进行详细讨论,有兴趣的朋友可以自行去了解。
信息设计
信息设计常常充当一种把各种设计元素聚合到一起的粘合剂的角色,并决定如何呈现这些信息,使人们能很容易使用或理解它们。
有时信息设计涉及到视觉设计,有时涉及到信息的“分组”或“整理”,其目的都是使人们能有效地使用或理解信息。
五、表现层
在表现层,我们把注意力转移到产品用户会首先注意到的地方:感知设计。我们在这里解决并弥补“产品框架层的逻辑排布”的感知呈现问题。
在这里,内容、功能和美学汇集到一起产生一个最终设计,完成其他四个层面的所有目标,同时满足用户的感官感受:嗅觉和味觉、触觉、听觉、视觉、对比和一致性、配色方案和排版、设计合成品和风格指南等。
这里就不对感知设计进行详细讨论,有兴趣的朋友可以自行去了解。
六、最后的话
其实,同时考虑到五个层面的全部因素,对于创建成功的用户体验是至关重要的。
很多人提倡将用户测试作为确保良好的用户体验的一个主要手段。这种思路看上去是你应该做一些事,将它们摆到一些人的面前,来看看他们有多喜欢它,然后无聊抱怨什么都将其修正。
但是,测试永远无法取代一个考虑周密的、准备充分的用户推演设计过程。因为,很多问题其实隐藏在界面和交互的外衣之下。
在很多情况下,在上一层面的中的错误有可能会削弱更低层面的正确决策。例如:在视觉设计上的问题可能会让用户很快离开,从而永远不会意识到你在导航或交互设计上做了很多聪明的选择。
同理,如果那些在上一层面做出的正确决定是建立在低一级层面做出的错误决策的基础上的话,那些决定就没有任何意义。
所以,要把用户体验当做一个整体来考虑,这样才有可能建立一个成功的用户体验。