Richard Bao 的显示图片
Richard Bao
La vie est belle !
2009/5/26 12:22:32

用户体验是一种态度

近些年来,用户体验(User Experience,UX/UE)被提及得越来越频繁,无论是软件、IT 还是任何其他行业都开始日益重视用户体验,例如:

  • 成立专门的用户体验部门/小组
  • 新增与用户体验相关的专职设计师、工程师甚至高层管理人员
  • 引入与用户体验相关的新开发设计流程
  • 用户体验以需求或主要评价指标的形式单独出现

这场用户体验革命的浪潮让几乎所有人都意识到了重视用户体验的意义以及带来的价值,但在实践过程中,人们也发现它对传统的软件开发产生着巨大的冲击。很容易可以找出在企业或者产品团队中用户体验设计人员与开发人员之间的矛盾与对抗:

设计人员认为 开发人员认为
  • 开发人员不理解用户的需求
  • 开发人员总是从程序的结构角度来考虑问题
  • 开发人员总是用性能或者其他各式理由来拒绝一些设计上的要求
  • 开发人员不愿意把时间花在进一步提升用户体验上
  • 设计人员对技术一窍不通
  • 设计人员的想法经常是天马行空、不切实际
  • 设计人员总是喜欢标新立异,用户根本不习惯这些怪异的设计
  • 设计人员的设计复杂度远远超出了项目初期的预算,我们根本不可能按时交付

在这些“抱怨”中我们可以注意到,最主要的矛盾在于设计人员和开发人员往往不能理解对方的工作内容,能够在对方知识背景方面有深厚积累的更是凤毛麟角。也正是因为这一点,很多产品经理(PM)并不能很好地对设计和开发进行权衡,使得很多决策必须通过设计人员与开发人员的反复“对抗”来进行。无疑,不管是团队内部的人员关系还是配合效率都有严重的负面影响。

是主导还是妥协?

一山不容二虎。如果设计人员和开发人员都各行其主张,产品永远无法不可能被开发出来。为了提升用户体验的地位,或者说是为了引入更加“用户体验”的开发设计流程,一些原本是“开发驱动”的流程开始转向“用户体验驱动(UX-driven)”。用户体验驱动的本意可能是强调“用户体验的重要性”,避免用户体验处于被动地位。对于强调“以用户为中心(User-Centered Design,UCD)”的开发流程中,更是起到了保障的作用。

勿容置疑,用户体验驱动开发确实提升了用户体验设计的主动性,但是遗憾的是:用户体验仍然是最终做出让步的一方。通俗地说,虽然现如今设计人员有了软件设计的主动权(而不是被动根据开发的要求进行设计支持),但是开发人员仍然可以(而且应当)拒绝一切在技术和资源上不合理或者不切实际的设计。如果设计妥协,产品只是不太好用而已;如果技术妥协,产品根本无法开发。一旦到了需要权衡的时候,牺牲的只能是用户体验。任何所谓“设计高于技术”的信条,只是市场宣传的一套说辞和吸引公众的口号罢了:没有哪一个企业能够容忍自己的产品开发永远处于未知状态。

所以,作为企业来说,只有商业驱动,没有技术驱动,更没有用户体验驱动。

是研发还是开发?

很多企业在这一点上界定并不明确,这里列出“研发”和“开发”的一些主要区别:

研发 开发
  • 创新、探索式的
  • 以得到某项数据或者实现某项新技术为目标
  • 没有严格的时间限制,往往是长期的
  • 研究失败是正常的、可以接受的
  • 项目工程式的
  • 以生产制造某项产品为目标
  • 有明确的时间限制和详细的开发计划
  • 非市场因素造成的失败会被视为严重事故

一般来说,产品开发人员不会把“研发一项新技术”写进产品开发的需求列表,因为他们很清楚无法进行这样的规划和预算,他们也不会承诺在产品中实现某项目前还不存在或者没有掌握的技术——这是新技术实验室的研究人员做的事情。产品团队在制订开发计划时,只会选用现有的技术,因为只有这样,才能最大限制地保证在给定的时间范围内,用给定的资源完成项目开发。谁知道新技术猴年马月才能被研发出来呢?

不过,这一切在引入了用户体验设计之后就被打破了。“更好的用户体验”进入了产品开发的需求范围,用户体验设计人员并不是利用现成的技术在生产产品,而被要求进行“创新”。设计人员在几乎没有约束的状态下进行用户体验研发(而非开发),项目范围(scope)和工作量都处于严重模糊甚至失控的状态。开发人员不知道设计人员设计出来的软件需要多少工作量来“生产”,甚至往往连设计人员都无法预计自己的工作量。

是技术还是态度?

现在一提到“以用户为中心”,大家都会联想到用户体验的一套研究设计方法流程。但是如果提到“用户导向”这个概念,可能大家已经习以为常。对于以商业为目的的企业活动来说,我(至少目前)并不觉得这两个概念有什么区别,只不过前者听起来更加亲切,后者的学术感更强而已。“客户至上”“顾客就是上帝”“顾客永远是对的”这些口号无一不在反映着“以用户为中心”的根本思想。很多年前,市场营销学家们就提出了变“生产导向”为“市场导向”,后又将“市场导向”重新表述为“用户导向”。但是无论是哪种导向,市场营销还是市场营销,客服还是客服,并没有让用户体验团队来取代他们的职责。对于各种职能部门来说,无论是“用户导向”还是“以用户为中心”都是一种理念,一种新的思维方式,而不是新的技术。

回到软件开发行业。最早的软件开发就是编码,能把程序写出来就万事大吉——那个时候可以算是“功能导向”的。当软件规模越来越大时,这种随意的开发不再适合,于是开始有人研究软件开发的工程化,出现了面向软件开发的流程管理和质量控制,形成了软件工程体系。这一阶段,软件内部的质量有了明显的提高,开发过程的质量也得到了控制。当“生产导向”变成“市场导向”时,软件开发商不得不开始重视用户对软件的感受,于是开始试图提升“软件面向最终用户的质量”,也就是我们常说的“用户体验”。

在用户眼中,一切都是用户体验。无论是软件的界面美观性、可用性、说明书的装订、包装盒的印刷、杂志广告的内容、还是销售和客服人员的服务态度等等,都是用户体验的范畴。用户体验部门如果对于界面设计事事具细,理应对生产印刷、物流、广告、售前售后等都应进行详尽的设计和规范。但事实上又没有哪个组织的用户体验部门能够如此“全能”。因此,在我看来,无论是说“用户体验”还是说“以用户为中心”,都不是在指具体的技术或职能,更多的是一种工作态度,就和认真仔细、耐心、热情、有责任心等等方面一样,是一种横跨所有技能职位的行事态度。换句话说:要做 UX 的人,而不是 UX 的事。

如何发挥用户体验的价值?

经过之前三个方面的讨论,现在应该来说说用户体验以及用户体验团队应该如何更好地在 IT 企业中发挥价值。

首先,“以用户为中心”是一种理念,“关注用户体验”是企业每个部门每个岗位的责任,而不只是专职人员的工作。也正因为如此,用户体验部门的主要职能不再是细节的界面设计,而是对整个公司各项活动进行宏观指导和规范,以整体提高每个环节的用户体验。此时的用户体验部门不再是一个垂直部门,而是变为横向部门。

其次,原来的那些事情还是需要人来做的,比如信息架构设计、交互设计、视觉设计、用户研究、可用性测试等等。这些职能仍然需要相关的专职人员,但不再属于用户体验部门,而是根据其具体的业务对象,回归各个部门的职能。就好像开发需要前端、后台、测试工程师等等一样,需求工程师、交互设计师、视觉设计师、可用性测试工程师也是开发团队中的职能,没有必要非要用“用户体验部门”将其独立和分离,更不可与开发团队并行。至于用户研究人员则可以回归市场营销部门。在一个完整的产品小组中,各职能人员是在 PM 的带领下协同工作,而不是某部分去“驱动”另外的部分。真正的用户体验部门则应当制订更好的跨部门工作流程并给予各部门专业指导,以保证大家确实是在“以用户为中心”的方式工作。

最后,也是最重要的:研发与开发的分离。用户的反馈收集与研究、用户体验的提升、交互方式改进等等应当是研发的范畴,由研发部门进行。产品部门要做的仅仅是从研发部门中选取适合自己的研究成果,并把一些问题和想法提给研发部门——而绝不是在产品开发过程中给研发部门下达计划任务。用户体验设计从根本上来说是一种创新活动,而在产品开发过程中是很难做到充分创新的,因此用户体验设计应当放入科研轨道。更彻底的做法是:即使是在研发团队中,用户体验设计也应当只是研发团队的一部分,研发团队向其他部门输出的不能只是空洞的“创意”和“想法”,而必须是经过技术研发的、可行的“解决方案”,保证产品开发团队只需要“拿来主义”。只有这样,才能让科研人员没有束缚地不断追求更好的用户体验并将其付诸于实现,而产品团队也不至于对产品需求、范围和工期难以掌控导致项目延期甚至失败。

当然,要建立这样的体系需要强大的资金支持。追求好的用户体验与实现好的传统软件工程一样,都需要组织自身的积累和支撑。对于实力并不雄厚的小企业来说,除了发挥英雄主义之外,还有很长的路要走。

最后更新: 2009/5/26 12:22:32 | Windows Live Space 网站中的链接 添加评论 此链接将在新窗口中打开 | 评论 评论 (7) | Windows Live Space 网站中的链接 原文地址 此链接将在新窗口中打开
评论 (7)
泽木 陈
2009/7/20 0:06:50
恩 这个问题不那么简单
韡 赵
2009/7/8 12:28:04
en
Richard Bao
2009/5/29 15:00:48
我觉得估计是我原文里没说清楚,或者是固有的思维定式造成的影响。我在本文中已经把 UX 的泡沫抹去很多,在提到分工的地方,我说过应该让这些职能回到原来的位置,而不是都套上用户体验的帽子。用户体验说白了就是“给用户好的体验”,这是战略层面的,不是操作层面的。
JiaChuan Guo
2009/5/28 0:04:42
比较认同Tod的comments.
UX被作者理想化,甚至夸大化了,但我并不怀疑UX的重要性。
Tod
2009/5/27 4:28:14
这个问题相信Microsoft和Apple有一套成熟的且实践成功的解决方案,毕竟Windows和Mac OS已经这么多年了,没有去考察过。不过他们的情况跟一般企业的软件开发不同,OS搭的是基本,有idea就有实现;企业软件开发一般是二次开发(用人家的语言你就已经败了),没有这么强的技术力,研发的东西同样受此局限,咱们的一切都得在人家的框框里面。
Richard Bao
2009/5/26 19:50:09
Tod 同学,我们说的其实都是一个意思,你从 DEV 的角度又表达了一遍。不过,我要说的最核心的就是“不确定的 design 归属研发,而不是开发”。这是针对矛盾的本质提出的解决方案,比什么互相增进了解和沟通要有效得多。
Tod
2009/5/26 14:29:08
受邀过来求同存异,引入一些developer的声音。
Richard对于ux有自己一套比较成熟的见解,很多想法一high-level后其实都是相通的, 不因为平时是个ux guy还是个dev guy而不同。所谓通即是不通,不通即是通。
comments写不了很长的篇幅,提几点dev的看法:
1. 首先咱不能欺骗customer, 人花了多少钱要让他觉得自己花得钱值,就像你去商场买东西一样,你愿意掏这些钱买某个牌子的衣服之类的东西。所以技术,体验都是手段。这是共通的。
2. 不光光外在存在design, 回到软件这个比较不一般的东东,它不是硬件,它的内部同样存在design。如果一个developer看不到存在于软件内部的这些design, 他就不是一个好的developer/engineer, 只能说是一个coder/programmer。软件不同于瓷器,计算机硬件,不是由外观design出来之后,把原料浇灌到模具里面就好了,软件目前发展水平还达不到这个要求,这在稍后会讲到。
不论是code, framework, architecture, test, deployment, management都存在复杂度很高很美很优雅的design, idea。为什么?ux, customer能很容易发现外在美,很直观,但是就像刚说的,软件不是这样的具有一般自然物属性的东西。软件不是一个杯子,一锤子买卖,坏了customer不会再来换。它需要维护,并且套用以前书上的数据,其成本占据整个软件开发的90+%。并不是说design完了,开发完了就不管了,后面还有一大把事情等着来处理。
一个没有好的design过的, architect过的软件, 就像一个没有多少生命力的小孩,经不起折腾,如果开发周期延长到一年往上甚至在开发后期开发不下去推倒重来或者直接over了。软件的生命在这样的过程中由developer一步一步送上死亡,release尚且不能,更别说见到维护阶段。所以,一个好的ux在design上要求完美无缺; 同样,一个好的devoloper,要求在design上完美无缺, 只不过此design非彼design。
3. 以前developer懂技术,不能很好理解用户需求。用户有需求,但是不懂技术。后来就需要一种具有相应的domain knowledge,理解用户需求并且懂得技术架构的这样一类人来做为客户和开发之间的桥梁,这就是后来出现的系统架构师。由架构师来架构软件的基础,scope和将来的路。如果ux和dev之间存在很大的认识分岐,也许也需要有这样一类人的出现。有些developer不好ux方面的实现,有些喜好,强制这类人来交流也许不是个好的方式。大型的软件开发一直有分前后台开发人员,让后台开发人员跟ux交流不顺畅是可以预见的。不知Microsoft和Apple的的设计和开始团队是怎么沟通合作的?
4. 软件的开发也许有一天能够像生产汽车一样,汽车的design出来,然后到各厂商去买零件然后自动组装在一起然后漆成汽车设计人员所想要的颜色外形。

很多的东西来不及细写,比如用户体验是研发之类的,如果design是研发,所有的design都是研发。。。有时间再上来发表看法。

Tod.Li