All posts by Sijie

设计个智能灯泡?(1)

无意间路过一个关于什么才是真正的智能产品的知乎问题。想了一会儿,貌似是个哲学问题。

为了简化,就用个简单的物件为例——家里洗手间的灯。灯只接受两种操作,打开和关闭。个人而言,我认为智能的灯就是在用户需要的时候自动点亮,其他时候保持关闭;用户不需要的时候又能自动熄灭(*)。那么,一盏灯是否能完美达成这个目标呢?

通常情况下,貌似是很简单的,只要它能感知洗手间是否太暗,以及是否有人在洗手间里。如果两个问题的答案都是Yes的话,就自动点亮。

但问题在于边界情况。比如用户半夜起床如厕,也许就不希望从黑暗环境突然转换到灯光之下。那么,就给这盏灯增加一个内置时钟,如果是睡觉时间则不亮灯?

还是不能解决问题。如果这个用户正在熬夜看球呢?虽然是深夜,还是希望灯能够亮起。所以就需要监测用户的活动,根据他之前是否已经入睡来决定是否亮灯?

……

只要一直钻进这个牛角尖,这个灯泡就会指数级别的变得复杂,因为每增加一个传感器,就是给状态空间增加一个维度。从实际角度出发,一款产品只能在完全手动操作和完全准确的自动操作之间寻找一个平衡点。追求100%的达成(*)目标几乎不可能。

设计师的屁股

很久没有写博客,偷懒的理由千千万,不再细说。

—–进入正题的分割线—–

标题党了一下。事情缘由是一位产品经理同事严肃认真的跟我讨论转到设计岗的可能性、需要做什么准备。她非常熟悉我们的产品,熟悉市场,熟悉整个团队,每次都会对我的设计挑肥拣瘦,简直是完美的人选,也许缺的只是蓝翔的一门Photoshop培训课。

然后,最近在看Alan Cooper的The Inmates Are Running the Asylum。感触很深的一个观点是,哪怕一个工程师对设计有非常深的见解,非常重视用户体验,他也很难做出一个体验很好的产品,原因很简单——他坐在工程师的位置上了。

人的决策大部分时候都是非理性的,这已经是不争的事实。聪明绝顶者如工程师,也很难逃出这个咒符。于是,当面对用户体验和优美代码之间的抉择时,肩负写代码重任的他们难免会多少倾向后者。正所谓屁股决定脑袋。

这时候,一个与代码质量数量没有直接利害关系的职位就体现了自己的价值——设计师可以完全(或者绝大部分)从用户体验出发,去跟工程师们争取利益。同时,随着用户体验设计越来越为人所知,如果一个产品非常难用,被扔臭鸡蛋的就是设计师了。所以,设计师可以、也必须为产品的体验奋力抗争。

那么,是不是设计师80%的作用来自于他们的屁股呢?当然不是。噢,也许……不是?有待深入挖掘。

由Google收购Bumptop说起

在校内上再次看到这个视频,很早以前Bumptop的演示片,没想到现在被Google收购了。视频里TechMessager的评论讲得很振奋,在校内上的流行度也跟那个烂了大街的six sense有一拼。其实吧,手势操控除了看着炫,它的真正效用还是要加个问号的。前几个月大佬Don Norman也在Interaction杂志上发表了”gestural interfaces are unnatural“的观点。我最近刚刚重新整理完相关的研究综述,其中几个关键论文很适合用来分析Bumptop、多点触摸、以及手势操作。

先挖挖祖坟。第一个多点触摸系统早在1982年就在多伦多大学的Input Research Group实现了。可是此后的20年间,这个地球上也许没有多少人知道multi-touch是啥玩意儿,直到苹果抛出了iPhone,multi-touch才登上舞台。想起Bill Buxton说的,这二十年what the heck are we doing? 这是闲话。

接着看多点触摸好在哪。它是直接交互(direct interaction,相对于鼠标的indirect),也就是输入和输出发生在同一个空间里;它允许双手操作,Yves Guiard那篇很有名的Kinematic Chain的文章就指出,相比与单手操作,双手操作并不是1+1=2那么简单,非对称的双手操作(asymmetric bimanual action)其实能起到1+1>2的结果。直观上,这样直接的、双手的交互形式肯定比鼠标更自然、更简便.

再来看看多点触摸的缺点。人的手指比鼠标光标大了可不是一点两点,手指操作的精确度大大降低,想想在iPhone上选择一段文字有多么困难就能明白;二者,谁长了透明的手指呢?伸手去触摸的同时,你最关注的那部分屏幕内容也被手给挡住了;第三,有研究发现在触摸屏上,很多用户倾向于使用对称式的双手操作,与我们最熟悉的非对称方式有差距;再者,虽然增大屏幕可以相应地增大屏幕上物体的尺寸,适应我们粗大的手指,可是屏幕大了,再来个触摸操控,用起电脑来岂不是跟做广播体操一样(如下图,引自腾讯CDC)?

接下来,更学术点。多点触摸属于post-WIMP界面(W=window, I=icon, M=menu, P=pointing device)的一种,Robert Jacob在2008年的CHI上提出了Reality-Based Interaction,即RBI framework,这个框架建议在评估一个post-WIMP界面的易用性的时候,可以从四个方面进行考虑:

  1. 是否有模拟简单的物理定律。因为正常人对简单的物理定律,如重力、摩擦力等都有很自然的认知,充分利用这方面的知识能帮助用户理解虚拟系统的工作方式。从这点上看,Bumptop做得很好,比如图标之间的碰撞,用手指同时拨动多个物体等,这些操作方法很直观,易学不易忘。
  2. 是否有利用身体的空间感知和空间技能。在物理世界中,很多时候我们并不需要视觉反馈来完成操作,因为即使闭上眼,我们也能知道身体各部分之间的相对位置关系,这样视觉系统就能专注于获取更有价值的信息。此外,我们在长期生活中培养出了很多复杂的空间技能,比如协调身体各部分的运动来准确踢中一个足球。如果能利用人类在这方面的优秀感知和技能,人机交互将更有效率。对于包括Bumptop在内的触摸界面来说,在这方面有天生的不足,因为二维的触摸屏在空间上太过简单,谈不上什么空间感知,而且缺少有价值的触觉反馈,手指碰到的是哪个物体、一个按钮是否被成功按下等,都依赖于视觉反馈,用户不得不在屏幕的各个区域间频繁转移视觉关注点。
  3. 是否有利用人对环境的感知和技能。凭借一些简单的线索,比如光线造成的阴影,我们就能轻易地获得所处空间的特征,并利用这些信息指导自己的动作。Bumptop模拟了一个三维房间,让用户运用其布局来组织信息,比如把照片贴到墙上等,比WIMP界面中的抽象的树状文件夹结构更直观明了。
  4. 是否有利用社会感知和技能。在日常的社会活动中,我们掌握了如何与他人交流的技能,也知道如何遵守约定俗成的守则,在多用户的交互环境中,用适当的设计来模拟同样的社交环境,也是很有好处的。Bumptop也许目前还只是单用户的系统,在这方面就N/A了。

说了这么多,总结以上四点就能看出,Bumptop做得出色的是第1和第3点,但偏偏这两点跟“手势”都不太搭边,而应该说,出色的根源在于对现实世界的模拟而非对手势的直接模拟,只不过对现实的模拟顺带使得其操作方式跟日常的手势很相似罢了。这样看来,Bumptop里其他手势的定义就很武断,比如用手指一划来剪裁照片,用手指划圈来选中多个文件再用两根指头顺序浏览。这样造成的问题就是,用户很容易忘记某个功能对应的手势,因为二者之间不像“手指拨动多个物体”那样有明显的逻辑关联;一旦忘记了手势,界面上又没有其他方式可供执行该命令,这个界面就一点也不直观了。

所以,Bumptop将三维空间的概念引入计算机界面是很成功的, 用多点触摸取代非鼠标保证了这样的改进是可行的,但它对手势的滥用是没有前途的。

我觉得,对手势的应用应该严格限制在那些直观的操作上,例如缩放、旋转一张图片,用手扫过多个物体等,其他不那么直观的功能还是应该交由传统的菜单、图标来执行,而在这方面,完全可以借助多点触摸、甚至Tangible User Interface来达到比鼠标键盘更高效更直观的操作。

Don Norman at IIT Design Research Conference 2010

Don Norman at IIT Design Research Conference 2010 from IIT Institute of Design on Vimeo.

唐老爷子的讲话。

主题两个:研究与实际产品间的缺口,两种不同类型的创新。

Research-product gap

HCI学术界大多是充满创新精神的人,但这些研究者并不擅长制造可以商业化的产品,更缺乏对市场、制造业、物流等的知识。研究成果往往以发表文章、学术演讲的形式呈现。而工业界则需要可行的、具体的产出。这个缺口不好也不坏,只能说是天生如此。所以Norman提议应该在这两个领域间增加一个中间层──translational group,也就是能将学术创新与商业化产品结合起来的人。

Two types of innovation

两种创新:渐进性的和激进性的。

通常而言,激进性的创新是由科技发展驱动的。新的科技出现,然后思考其可能的应用领域,最后才是需求的出现。比如最早的人类并不真正需要厕所,反倒是厕所的出现导致了现在它的不可或缺。另一个例子就是福特的那句名言了。

而渐进性的创新一般就由UCD(user-centered design)驱动了。它能不断完善一个新创的产品,将其推到顶峰。

总体而言,一个产品(或产业)的发展是个二维坐标系,纵轴是技术的发展,横轴是这个产品“含义”的发展。比如计算机产业,技术发展推动了硬件、软件水平的前进,而设计上的创新则为其带来了新的应用,从最早的科研到现在的娱乐行业。

另一个例子是计算机的界面。最早的命令行界面,用的是离散的指令来处理离散的文件。图形界面和各种传感器的界面,虽然不必再记忆那么多指令而可以用菜单甚至手势取代,但本质上还是两个离散量。而Norman预言,我们将会用手势、身体语言等来进行连续性的操作。听起来挺抽象,我的理解是人机交互不再具有一个明确的目标,不再是以完成某个任务为导向,而是由智能化的环境无处不在、一刻不停地根据环境和人产生的信息来即时产生输出。

—-以下是笔记原文—-

Research-product gap

  • First computer first telephone etc. were not from design innovation
  • Design research doesn’t lead to new product categories
  • Technology first, application next, needs last: there was no fundamental need for indoor toilet, but now it is.
  • Creative minds in technology, design ,science: Ideas first, justification later
  • Who is the audience for design research (esp. human-centered design): end user? store? distributer? Engineers, programmers, marketing, sales.
  • There is a gulf between the product and the research
    • Research output: publications, conference talks. Manufacturing, marketing, etc. are absent
    • Company product wants practical results, specifics, its output is shippable products
  • Steve Jobs fired usability people and designers at his return, just kept some graphics designers, but led to better products
  • Researchers are good at creativity but not producing reliable shippable products
  • The gap is not bad nor good, but fundamental
  • The need of a group between research and product – the translational engineering

Two types of innovation

  • Radical innovation
  • Incremental innovation
    • what human-centered design does
    • Technology drives innovation – the y dimension, meaning changes driven by design – the x dimension: e.g. Swiss mechanical watch and Japanese electronic watch and swatch; computers shifts from for work to for entertainment

笔记 – Interaction Design, (3.x)

采访Abigail Sellen

什么是用户研究(user study)?

用户研究就是去观察用户在实验室环境中或者在实际环境中,如何使用某种现有技术产品或某种新的技术。用户研究分为两种,一是为了评估和改进某个产品原型,二是为了发现用户没有被满足的需求。

对于前者,认知学方面的信息尤为重要,因为评估该产品包括评估用户是如何理解这个产品的,他认为这个产品运作的机制是什么。从中即可发现设计师想要传达的那个思维模型(mental model)与用户感知到的实际情况有多大差距,如何修正。

我们要从用户研究中发现什么?

首先,根本问题在于发现产品到底为用户带来了什么帮助,它的价值何在。更具体的问题包括,发现产品应该给用户带来什么样的特性,应该如何传递(deliver)这些特性,怎样设计界面等。

由于交互设备越来越普及,移动性越来越强,它们可能会在各种环境下被各种不同背景的人使用,这就要求把用户研究放到更重要的位置上来看待。

笔记 – Interaction Design, (3)

第三章 – 了解用户

什么是认知(cognition)?

Norman讲它分为两类,体验的认知(experiential cognition)和深层的认知(reflective cognition)。从产品设计上来说,前者往往代表产品带给用户的感官体会,比如是不是好看、是否有吸引人的颜色等;而后者则是对产品深层价值的认识,比如品牌的形象。

另一种方法是依照任务类别分类(从底层到高层):注意力(attention),感知和识别(perception and recognition),记忆(memory),学习(learning),阅读、说和听(reading,speaking and listening),解决问题、规划、推理和决策(problem solving, planning, reasoning and decision-making)。

  • 注意力:将注意力集中在某种信息上的难易程度取决于是否有一个明确的目标(比如要寻找某个特定的句子),以及这则信息是否被合理有效的呈现。所以,在设计中应该注意在一则信息需要被注意到的时候,运用图形、颜色、动画等手段引起用户注意,并且避免界面上充斥过多信息。
  • 感知:这个过程中,通过各种感觉器官获取信息,并最后转换为体验(experience)。在设计中应该将图标、音效、语音、文字、触觉反馈等设计得易于理解、易于识别其含义,并合理运用空白和边界等元素来归纳组织信息。
  • 记忆:过滤掉一些信息,将剩余部分存储下来。
    • 有个编码过程,该过程判断哪些信息是重要的,以及如何解析这些信息。
    • 这个编码过程进行的好坏决定了此后回忆的难易。比如对某些信息,我们用比较、关联的方法处理,能大大提高对它的记忆。所以应该为用户提供多种多样的编码方式,如根据颜色、分类、时间顺序、图标等。
    • 在接触一则信息时对它的解释(interpret)方式也会影响它如何呈现在记忆中,是否在今后容易被回忆起。
    • 另一个影响记忆的因素是获取这个记忆的环境,在不同的环境中去回忆往往更困难。这也就是为什么我们经常闭眼回想当时情景以努力回忆起某个信息。
    • 人们更擅长识别,而不是回忆。George Miller的7±2理论即指出,人的短期记忆中只能同时保存7±2块信息。这个原则可以应用在很多地方。比如Mac OS X的搜索spotlight,根据用户的一些模糊回忆如关键词等,列出可能符合的各种文件,这样就能利用让用户利用更为有效的识别能力(而不是回忆能力)从中找到正确目标。这被称为recognition-based scanning。
    • 包括照片在内的某些种类信息更容易被记住。
  • 学习:分为两种情况──学习使用一个系统,或者使用这个系统来学习某个问题。
    • 对于前者,人们更倾向于边用边学,而不是按照说明书一步一步学习。这个探索过程中肯定会发生错误,这就需要系统提供及时的撤销功能,另一个方法是在初学阶段只提供某些简单的功能,限制对高级功能的使用,随着学习的深入再逐渐开放。
    • 对于后者,交互技术的优势在于提供了传统的课本、视频等所不能提供的多样化的交互方式,让用户更容易地理解其表现的内容。
    • 交互技术能有效地帮助建立“动态连接”(dynalinking),也就是通过交互将抽象的的事务具体化,便于理解各部分之间的关系。比如允许用户触发一个食物链中的事件,并观察所造成的影响。
  • 阅读、说和听
  • 解决问题、规划、推理和决策:
    • 这些过程通常需要比较多方面信息、听取他人意见、做出最佳决策。
    • 缺乏经验的人通常从自己熟悉的方面出发,用效率不高的尝试-错误(trial and error)方法解决问题。而有经验的人则能做出更长远的规划、更准确地预料到某个选项将会导致的结果。
    • 设计支持这一类型任务时应该注意提供某些隐藏信息以便希望更深入探索的用户使用。在界面上运用简单、容易记忆的功能以支持快速决策等情景。

认知学框架:理解人的思维如何运作

思维模型(mental model)

  • 一个成功的系统的标准是,它所基于的概念模型(conceptual model)能让用户很轻松的接受。比如通过隐喻模拟现实中为人熟悉的系统,让用户能利用现有知识来理解新系统的运作方式和使用方法。
  • 通常,用户更熟悉如何与一个系统交互,而不是一个系统如何运作。
  • 用户对如何与一个系统交互的理解,加上对一个系统如何运作的理解,就是对这个系统的思维模型。
  • 那么,怎样让一个系统更容易被理解呢?方法是增加透明度(transparency)。包括为用户输入提供有效的反馈,以及设计易于理解、直观的交互方式。

行为理论(theory of action)──由Norman提出

  • 用户使用一个界面的过程分为7个阶段:确立目标──明确行动意图──明确一个行为──执行改行为──感知系统状态──理解该状态──评估该状态与预期的差距
  • 这个理论主要用于指导设计一个允许用户监视自己行动效果的界面。当然,并不一定每个阶段都一定会出现。但可以指导设计师理解用户在每一阶段的目标,相应地设计界面以便辅助。
  • 需要克服的两个深渊
    • 执行(gulf of execution):用户到系统的距离,也就是下达指令的难度
    • 评估(gulf of execution):系统到用户的距离,也就是反馈的有效性

信息处理(information processing)

  • 信息处理器模型:将人脑想象为类似电脑的信息处理装置
    • 将信息处理分为如下步骤:接收输入──编码──比较──选择一个反馈──执行反馈──产生输出。该模型可用于预测、量化使用者的表现,如从接受输入到理解、做出反应需要多长时间。
    • 缺点是只考虑了大脑中的活动。但现实中,我们会借助许多外在资源、通过改变物理世界来辅助这一过程,而不仅仅是作为一个信息处理器。比如我们在考虑晚饭要吃什么的时候,不是坐等信息输入再做决策,而会主动打开冰箱查看有什么食材可用。

扩展认知(external cognition)

  • 通过扩展辅助认知的手段来降低思维上的工作量(mental load)。
  • 通过使用计算设备降低思考的难度,最简单的例子就是用计算器。
  • 通过批注(annotating)和跟踪(cognitive tracing)来辅助思考。前者的例子是在超市采购时把购物单上已经买好的商品划去,后者的例子是把手上的扑克牌按花色、点数排序,方便思考。

分布认知(distributed cognition)

  • 将多个用户、他们共享或独有的工具和设备整体考虑,考察这个整体是如何进行认知活动的。比如在飞机驾驶舱中,驾驶员和副驾驶以及各种设备的关系。

    笔记 – Interaction Design, (2.x)

    采访Teny Winograd

    • CS(computer science)主要关注某种机制如何运作,而HCI关注如何合理运用技术以适应使用者的能力和意愿。
    • 交互设计的独特之处在于它有对话性的成分──也就是人机交互发生的次序(sequence)和流程(flow)。所以交互设计就是要设计一个能与人交流的空间(space)。
    • 优秀设计的秘诀在于学会从其他优秀设计中“偷师”。所以作为一个设计师应该努力地开拓视野。
    • 交互设计的挑战在于要在其他人还无法预见的时候就发现用户尚未被满足的需求。

    笔记 – Interaction Design, (2)

    第二章 – 如何理解并概念化交互行为

    • 假定和主张
      • 假定(assumption):把某个条件作为设计过程中必然成立的前提。
      • 主张(claim):认为某个条件、结论是正确的,但并不确定。
    • 理解并概念化交互行为,需要概念化设计空间(design space),因为设计中最重要的事就是用户的概念模型(conceptual model),也就是用户对一个系统的运作、组织方式的抽象的理解。一个很好的例子是VisiCalc通过模拟传统纸质表单来帮助用户理解这个软件的工作原理。
    • 交互行为的核心分类(core types)
      • 下达指令(instructing):输入对系统的命令
      • 对话(conversing):用户输入,系统产生相应的输出
      • 操作(manipulating):跟某个对象交互,比如在Word里改变一段文字的颜色和格式,或把一个文件拖到垃圾桶中
      • 探索(exploring):让用户探索一个虚拟的环境,或者一个分布着传感器的物理环境。这个环境往往是高度仿真的,让用户能用自身具有的生活经验来进行交互,例如导向。
    • 用户需要有多少控制权限?
      • 基于命令行的界面、允许用户跟某个对象交互的界面让用户具有最多的控制权
      • 一个能感知环境的系统(context-aware environment)、向导(wizard)等,让计算机拥有最多的控制权。
      • 如何决定这个权限的分配?可以把所要完成的任务根据四种交互分类细分,以便合理做出决策。
    • 超越WIMP(window,icon,menu和pointing device)
      • 传统的WIMP环境中,设计的目标是让计算机和用户顺利完成对话(dialog),但后WIMP时代就要设计一种类型的界面和交互形式。因为现在系统能获得更多的环境相关的信息(contextually-relevant information),比如随身携带的手机,设计师要考虑的是如何根据这些信息为用户提供更准确的反馈。也就是说,以往设计的是如何让用户更好的控制系统,现在设计的是如何把用户的行为和这个行为造成的影响对应(couple)起来。
      • 这种对应关系可能是明显的,比如打开开关能让灯立刻亮起来;也可能不那么明显,比如用户无意中触发了某个隐蔽的传感器,结果在手机上接受到某个信息。前者适用于需要即时反馈的情况,后者则更适用于交互游戏等。
    • 交互设计的理论、模型和框架
      • 理论:用于详尽地解释HCI
      • 模型:用于HCI的某些方面,为设计和评价一个系统提供基础
      • 框架:指示性的,在设计用户体验时为设计师提供需要考虑的概念、问题以及原则,并给与启发
        • 其中一个重要的框架是关于设计师的思维模型与用户脑中的思维模型间的关系。设计师脑中对系统有一个模型,系统在界面上表现出的是另一个模型,而用户感知到的又是另一个模型。理想情况下,这三者应该相同。

    笔记 – Interaction Design, (1)

    第一章 – 什么是交互设计

    • 交互设计师无法直接设计用户体验(user experience)而只能通过设计来达成预想的用户体验。比如,设计某个有趣的功能使用户产生新奇、愉悦的感觉。
    • 用户体验的组成
      • 一个产品的行为方式
      • 实际情况中它是如何被用户使用的,产生了何种感觉
    • 交互设计(interaction design)的流程
      1. 发现需求,建立用户体验设计的目标
      2. 制作多种设计方案
      3. 为这些方案制作可交互的版本,以便(与其他开发者或用户)沟通和评估
      4. 评估这个方案所实现的交互流程和用户体验。这是交互设计的核心部分,通常是由“以用户为中心的设计”(user centered design, UCD)途径来进行,也就是说必须考虑到具体用户的背景、能力、文化、年龄等。
    • 交互设计的目标:主要分为两部分
      • 可用性(usability)
        • 有效(effectiveness):这个产品是不是能有效完成预想中的任务?
        • 效率(efficiency):它完成任务的效率如何?
        • 可靠(safety):用户掌握它的使用方法后,是不是能持久使用?
        • 功能(utility):它提供的功能如何?
        • 易学(learnability)
        • 易记(memorability)
      • 用户体验(user experience)
        • 是否有趣、令人愉悦、对用户有帮助和鼓励……
    • 设计的原则:包括透明度(visibility),反馈(feedback),限制(constraints),一致性(consistency),功能可见性(affordance)
      • 透明度:它的两极分别是:完全将流程自动化,和完全交由用户控制
      • 功能可见性:是否能为用户提供如何使用改功能的线索,比如图形界面上一个有三维效果的按钮就能较为清晰的暗示用户它可以被点击这里有几个很棒的例子)