随着数字产品产量的激增,包括了电脑、桌面应用程序、基于网络的应用程序,另外还有移动及嵌入式装置等等,用户对这些产品的用户体验(UX – UserExperience)的质量决定了它们的成功与否。想要对非技术性的用户打造一个具有生命力,娱乐性及商业性的应用程序,一个简单易用的界面更是必不可少的。
在商业软件王国里,越来越多的订单是通过‘验证性的’演示来赢得的。顾客在不同的互相竞争的软件公司在不同的产品演示室之间参观比较,希望能够找到合适的合作伙伴。虽然很多开发商业软件的公司都把用户界面设计及其可用性的开发看作很重要的一个环节,但还是有很多仍然未把它列入整个软件的开发周期中。典型的看法是,产品的市场营销和工程方面的需求仍然比来自用户的需求要更加重要。其实大多数的开发公司都知道他们的电子产品需要一个好的用户界面而这点又需要一些专门的用户体验设计(UX)的专家来负责,但实际上他们并不知道如何高效的使用这些专家。他们总是将用户界面设计和可用性研究这两样活动看作是强化产品在视觉上的吸引力,以及借着可用性测试,在单独的网页或对话框里寻找错误或可用问题等等。在这方面上,设计部的主管需要通过一些加强沟通,确定主次及合作的目标设定等方法和过程来改变这种看法。
相反的,消费产品生产商则较为注重在产品的工业化设计和建立品牌等两方面上采用传统的设计管理方针。所谓设计管理,基本上,是指令产品的设计融入到公司文化的过程和生产出优良设计的承诺。这些生产商积极地将他们的研究方向、产品管理和市场架构等与产品的设计组织整合在一起,因为产品设计与品牌密不可分。他们通常把产品设计及定义的阶段从施工和投产的阶段里分离出来。产品设计的大部分在产品正式投产之前一年或以上,已经完成甚至连测试都完全通过了。
在软件开发过程中,比较多的情况是,在产品开发阶段开始前只有一部分的设计工作是完成了的,产品的设计在开发和测试阶段还会不断的变化。这正是所谓的“一边开飞机一边造飞机”的含义。虽然很多人把这看作是软件开发过程不可避免的事,但我们却坚持这种开发手法实际上是无效率的、高成本的;并且可以说,所开发出来的是具有不成系统的用户界面的低质产品。
一个成功的用户界面设计需要以下几点:
在一些研讨会上,UX专家通常只会听一些关于以用户为中心的设计过程,或只是怎样为一个特别的产品进行设计甚至对其一个特性的设计,但很少有人会注意到怎样推动促进在产品开发周期里对设计管理的包含以及怎样才能成功地制造出完美设计的产品。
答:答案很简单,就是人才,人才,还是人才。做出优良的设计工作实际上是软件用户界面设计过程中的较为简单的部分。因为实际上,人才市场上有很多高技术的、受过高等教育的以及具足够经验的设计师和可用性研究工程师,他们精通做出一个完美设计的道理以及测试的方法,熟悉良好的设计步骤。
然而,真正的挑战在于怎样将他们的设计在产品中实现。很多设计师都习惯于稳步前进,只试图尝试解决眼前所遇到的设计上的难题,最后当别人不接受他们的工作时,感到非常沮丧。为了让我们的设计得到别人的认同,我们实际上需要参与公司内其他人的工作,与别人一起合作。要实现这一点很不容易。想想有多人与产品设计的成功有关:最明显的,当然是用户界面设计师和可用性研究工程师,其实还有拥有产品的总监、决定产品特色的产品经理、编写产品源代码的开发员、直接与顾客接触的销售员、以及对产品线,甚至整个公司的成功直接负责的经理们。
以上的这些群体都认为他们自己了解用户,他们也确实都从自身的角度了解用户。用户界面设计师和可用性工程师通过用户研究和可用性活动,与用户直接接触来理解他们的用户。开发经理们认为他们知道用户需求,因为他们认为自己经过了多年的产品支持的经验已经累积了大量的该领域的知识。那些产品经理和销售人员觉得他们也都很清楚他们的用户,因为他们直接收到来自顾客的反馈意见。而那些主管经理们认为自己了解用户,因为他们知道什么因素能达成或中止交易,并且他们要对公司的可持续健康发展负责。
当然,以上所有对用户的不同观点都可能在理解上存有大量的潜在性的错误。依据典型的可用性研究方法,UX专家和可用性研究的专家们,招募能够代表该产品的使用者的典型用户来进行相当长时间的调查研究。因此,他们充满自信地认为自己能够得到产品用户的一些具代表性的数据。产品经理和销售人员直接与消费者接触,而那些消费者通常是为了其它人来购买计算机软件的,对软件的技术需求和价格的考虑超过了对用户体验的考虑。最后,开发者和主管认为自己对产品有一个很高资格的拥有权并把自己看作是它的典型的使用者。
虽然每种观点从自己的出发点来看都是正确的,但当把这些人聚集在一间屋子里来讨论用户对产品的需要时,每个人都是从自己的特定角度来出发。他们经常让用户的名字变得没有意义!对于用户是谁缺少一致的概念,也认识不到产品拥有大量的观众。产品团队应该考虑每个群体的需求,不忽视任何其他人的需求。
另外一个挑战是要明白软件设计的背景以及在组织里的开发步骤。在产品生产团队里UX专家可以完全按照以用户为中心的设计流程,但是要让这个过程以及它的最终设计结果整个被接受就完全是另一码事了。通常,在软件开发公司里,只有UX专家们进行用户为中心的设计,伴随着部分来自理解他们的产品经理和开发人员的帮助。在这种情况下,以用户为中心的设计方案并不是产品开发和发布的核心部份。与此相反,在消费类产品公司里,用户为中心的设计方案正越来越被整合到整个产品的开发流程中。
另外一个挑战就是组织结构。在软件开发公司里,UX专家组可能来自他们的组织架构中不同的部门。在某些情况下,UX专家是属于负责不同产品的开发部门的工程师;在其他情况下,他们集中在一个队伍里负责不同产品的开发。还有一些情况下,他们是产品市场营销的一部分、或向执行董事的办公室汇报;而在更多情况下,UX的工作会由专门的顾问公司负责。
另外一个问题是究竟要建造什么?正因为设计的步骤没有很好的整合到整个的开发过程里,产品开发团队时常是基于还剩下多少开发时间、或者问题的难度来决定产品的功能特色,而不是按照产品使用者的需要。与传统的工业设计过程不同的是,软件工程的设计程序很容易受这些问题所影响,因为产品生产团队通常不在开发开始前完整地定义产品。
软件公司可以就这些挑战性的形势对症下药,这里有些原则可提供作为参考。一个软件产品的设计步骤可以分为四个因素:
通过设计和可用性测试的循环,UX专家定义和开发产品。不过,设计实践和沟通才是决定产品能否成功打造的因素,而且它们也更具有挑战性。最后,一个值得考虑的重要因素就是人们有时会忽略掉的-设计师的个人风格。
这里有五项重要的原则提供给UX专家来提高沟通的效率。
正式的沟通 – 正式的沟通是最容易和最受控的一种方法。专业化地展示你的工作能够带给你自信。一个组织良好的,包括了当前和以前的设计,事务当前状态列表,以及察看相关可用性报告的接入的网站就是正式的沟通的一个好例子。
管理期望 – 导致关系变坏的最厉害的一个因素是缺乏可靠性。譬如你说你要做这件事,就要去做,一旦事情有了改变,就要立即通知所有相关人员重新设置期望值。
推动进程 –我们不能够期望开发团队处理所有的设计管理过程,这实在是我们的责任。不过,帮助他们理解整个过程和参与其中最重要的阶段是非常重要的。在团队精神的指引下,令其它人投入你的进程里。通过提高他们产品的用户界面的设计而令产品更好,就可以向他们展示我们所做的事情的价值。
尊重文化的差异 –在开发团队里亦有属于各自的不同的文化。请不要把你自己的用户为中心的设计文化强加于他们身上。相反,到他们那里去,弄清楚各自的文化特点,然后找出切入点加上有价值的东西。我们把与客户之间的关系看成长线的投资。每一个产品的发布就表示着另一个影响开发过程的机会的到来。
认清共同的目标 – 到最后,我们想产品生产团队所想,思生产团队所思,要团结并有共同的目标:完成良好的产品,完满我们的工作,看好我们的管理,以及有可能的话,报酬得到增加。
设计实践就是运用我们手艺的方式。
交付质量 – 质量并不只是简单地做一个让产品组叫好的设计方案。它通常是对设计范畴里面较为精细的问题的考虑的结果,好似要配合问题解决方案的尺度-不要高估或低估设计-在适当和有价值的地方进行革新而不是为了革新而革新。太费劲的设计会让整个产品团队感到厌烦。
具前瞻性 – 具前瞻性的设计师总是寻找更聪明的工作方法。他们熟练于独立解决问题。为了精化产品的设计,他们会聚在一起讨论和沟通,以寻求一些最适当的解决方法或者是通过探索其它的选择,包括不需要设计的可能性。这些会带来良好的效果。
具有弹性 – 一个具有弹性的设计师会有这样的想法,“有柠檬,就把它做成柠檬水吧”。他们知道何时要作出牺牲,并且能够抓住机会。他们是具有很好的适应性的人群,特别是当开发过程遇到阻力时,会避免将问题主观化。
个人风格是无法伪造的。要取得别人的信任,你必须展示你自己是值得别人信任的。你要能够言出必行,以及对你所做的事负责。所有类此的东西会最终地决定别人对你的信任。
我们在一个下一代智能商业工具的UX设计上实践了以上所说的原理原则。在上一代产品的开发过程中,开发队伍和UX团队并没有很有效的配合。开发队伍不相信UX团队具有所需要的足够的知识,并认为他们不可靠,因此他们决定自己来担起设计的担子。但UX专家们则认为开发团队没有一个很清晰的计划,又因为管理层近期的一些变动,在整个开发和产品管理层的决策制定过程非常混乱。由于没有一个主要的决策者,特色功能计划处于一个不断变化的状态。
设计挑战本身就是很值得考虑。所开发的产品是甲骨文(Oracle) 公司的首要的商务智能应用程序,包括实时查询,分析和报表等。产品团队使用JAVA重建整个应用程序,并且加入一些新的功能。
因为UX团队负责达成公司的目标,譬如遵循标准和指南、运用特定的技术,以及通过可用性测试来对保持产品的质量负责,我们需要重新得到对UX工作的控制权。为了达到这个目标,我们决定将自己定位于能够影响及控制开发时间表的位置上(有弹性,有前瞻性)。
我们的第一个任务就是要知道目前的形势。管理层早就已经决定了发布的日期,并且我们已经开始我们的设计工作,但所需要的功能清单却仍未完成。为了避免其它的组员把我们看成一种威胁或是一些爱管闲事的人,我们与各个产品经理进行非正式的会面,了解他们对所需功能的优先级。我们请求他们就每项功能按照它的重要性、所需开发的时间、难度以及所具有的附属品等排一个顺序(注重文化的差异,推动进程)。
之后,我们将他们不同的意见结合组成一个统一的清单,并且根据设计工作所需的时间和功能的本质来统筹这个清单的内容,譬如:究竟这个设计方案是全新的、复杂的设计、还是现有设计的一部份、或者只是一个简单的新特征、或图形呢?这个阶段的产物会是一个可行的完整的设计计划书,内附产品功能定位和需时评估,以及可用性测试的时间表。这样,我们将自己放在了领先于生产曲线的位置(具前瞻性)。
我们与开发管理层的主管一起来讨论我们总结出来的这个清单,并与他一起研究一些案例。整个功能集实在是太庞大了,开发团队不可能在第一次发布时就实现所有的功能,因此我们详细的计划出了一个三层计划。顶层包括所有的基本功能,就是产品能够工作所需要的基本功能,以及那些产品经理认为是必不可少,用以提高产品竞争力的首要的新功能。第二层是那些产品经理们认为是最好有,不过并不一定必须有的功能。第三层则是清单上剩下来的功能。每一层都组成系列,并能够提供一个完整的和有说服力的用户体验(认清共同的目标,产品质量)。
一旦产品团队明确了在时间和资源的限制之下,一定要实现的功能之后,我们的那个已经确认的功能计划书就为我们以后的UX工作打造了一个良好的基石。对于每个功能的负责人,我们也跟新的开发管理层进行了磋商。介定了一名用户界面设计师,一名开发员和一名产品经理负责搜集输入数据、检查设计、确认开发人员们能够按设计的规定进行开发,并且确认某个设计迎合了所有的需求并在功能计划书所定义的范围内。这可以避免产品团队试图通过投票来做决定所产生的没完没了的干扰(管理期望)。
之后,我们就开始设计工作。我们和不同功能的负责人进行反复的工作。我们可以说,整个计划实现得非常好。
这个流程的最后部分就是确保产品开发组编出的产品符合我们先前所设计的。我们通过比较经过确认的原型和真实的系统保证了这项需求。我们并且将所有问题都记录在了问题(bug)数据库里 (正式的沟通,产品质量)。
我们很成功的应用了这个开发流程,提前两个月完成了整个用户界面的设计,并最大程度的避免了功能蔓延(featurecreep,编者注:或译作“特征蠕变”)。开发队伍所建造的这个产品在可用性测试室里测试结果很好,具有非常好的反馈,令整个高级管理层都很高兴。长远的利益甚至更好。整个开发团队,包括产品经理们,都承认了我们的贡献。即使在第四次发布之后的今日,他们依然如此。我们的用户界面设计组现在成了决定这个产品成功与否的关键因素。我们同时还继续在同样生产线的其它项目上成功地套用了整个开发程序。
如果你同样就我们曾经面对的问题奋力地寻找答案的话,不如尝试以下这些建议。
第一,不要奢望可以一次完全改正你以前的方法。看清楚你目前的情况以及问清楚自己哪里是较为容易做改变的地方。正式化你的沟通和提高你工作的质量都是UX队伍的良好能力且对于其他组织具有最少的依赖性。当你开始在外面取得影响力的同时,评估你的组员各自的强项。除了评估他们的最关键的设计技巧外,注意一下他们的其它技能。有些设计师拥有很强的组织能力、有些很具有魅力、有些擅长和人打交道、有些则就是纯粹技术性的。综合他们全部的技术,应用到整个项目里。调配适当的设计师一起工作,使他们能互相补足。
第二,要时常把远景放在脑袋里,即使是当你正在处理一些较具体的工作的时候。这样做能够让你在项目进展不如理想时,不会太泥足深陷,并帮你确定问题范围的框架,以及能够有效的提醒你不要主观化。改变其他小组的现有工作流程需要坚定不移的毅力。
第三,要经常诚实的表现你自己和设计步骤。为要令你的UX团队所付出的努力发挥最大效用,开发团队一定要准确的测量你所做的东西,信任你能够做到你的承诺。随着一遍又一遍的与开发团队走过这个对于每个人来说都是良好的经历的过程,随着时间的累积,你会建立很大的势力和影响力;并会发现你最紧迫的问题是你太受信任和欢迎了,以至于别人乐于交给你做的工作越来越多。
参考文献
Ashley, Jeremy, and Baciagalupi Michelle. The Heuristics of Design Management, studio2001 conference (2001), Seattle, WA.
JeremyAshley拥有14年将交互设计应用到软件产品中取得经历。他于1996年加入甲骨文公司(Oracle),目前是可用性和界面设计组的领导者,管理众多不同的设计师和可用性工程师小组。他曾经为苹果公司(Apple)和Taligent公司工作。他拥有格拉斯哥艺术学院工业设计学士学位以及位于伦敦的皇家艺术学院的计算机相关设计硕士学位。Kristin Desmond 拥有10年交互设计和信息设计的经验。她于1995年加入甲骨文公司(Oracle),目前是负责销售和制造应用软件的用户界面经理。她拥有加州大学伯克利分校建筑学学士学位。
联系客服