1.2 共享语言

语言是协作的基础。如果你在一个团队中工作,你的设计语言就需要在所有参与产品创建的人之间共享。如果不共享语言,团队成员就无法有效地进行共同创造——每个人都对他们想要实现的目标有着不同的心智模型。我们不妨回到按钮的例子。即便是这种界面上最基本的元素也能具有不同的含义。按钮到底是什么?一个有边框的可点击区域?一个用于从一个页面跳转到另一个页面的交互元素?还是一个让用户提交某些数据的表单元素?

Abby Covert在她的How to Make Sense of Any Mess一书中指出,在开始构建界面之前,就应该通过讨论、审议和记录语言决策等方式建立起一套共享的设计语言。不仅高等级的概念需要这样处理,讨论设计决策的日常用语也需要如此。共享语言,便意味着我们能以相同的方法为界面元素命名,为设计模式下定义,并能让设计文件和前端代码使用相同的名称。

仅仅做到这些还不够。有时,团队里的人以为他们形成了共识,因为他们建立了共享的词汇表并已付诸实践,但他们对这些词的理解其实根本不同。例如,团队的核心概念里面有“场景”(scenario)这个术语,但用了一年以后才发现,团队里不同的人对这个词的理解完全不一样。我们不仅要对语言形成共识,还要对语言的用法形成共识。仅仅对按钮这个词的含义达成共识是不够的,还需要对不同背景、不同目的下使用按钮的原因和方法形成共识。

假设我们在界面中用到了一个名为“序列”(sequence)的元素。当将它呈现在界面上时,我们想通过它向用户传达的信息是,应以特定的顺序按步骤走完流程(见图1-6)。

图1-6 “序列”模块的例子

理想情况下,参与产品创建的每一个人都应该知道这个元素是什么:它的名称和目的是什么,为什么会被设计成这样,应该如何使用它,以及何时应该使用它挑战不光在于引入“序列”的定义或概念,还在于让人理解其使用环境。例如,用户体验团队可能需要在一个连贯统一的框架内实现不同类型的序列(例如对FutureLearn来说,就包括课程、运行、步骤、用户操作等多种元素的序列)。。这种共享的信息越多,就越有可能恰当地使用它。设计师和前端开发人员都应该了解这些信息,如果其他领域的人(如内容、营销、产品管理等方面的人)也了解其中的一些信息,那也是有好处的。

每个人都需要知道这个元素称作“序列”,而不是“向导控件”或者“一串气泡”。如果设计师将其称作“一串气泡”,开发人员将其称作“向导控件”,用户将其视作一组标签页,就可以断定设计语言没有起到作用。为什么用户的理解很重要?我们不妨回顾一下Don Norman的开创性著作《设计心理学》,在这本书中,他指出,系统映像(界面)和用户模型(用户通过与界面交互而形成的感知)之间存在着一道鸿沟。如果用户的交互心智模型与设计团队提供的系统映像不契合的话,用户就会不断地受到意料之外的系统行为的挑战。有效的设计语言可以弥合系统映像和(假设的)用户模型之间的差距。

随着你的设计语言变得更加丰富、更加复杂,你需要一种高效的方式来对其进行捕获和共享。在如今的互联网领域,模式库已经成为良好设计体系实践的重要组成部分。