2020年12月整理 内容来源 Kate Kaplan,on November 8, 2020

大多情况下,复杂应用多出现在偏专业产品或B端产品的场景中,也多基于桌面端使用环境,因为这类产品的用户类型多样,涉及的流程、链条、业务也大多呈现出多变复杂的特征。


到底什么是复杂应用?

复杂应用可界定为特定专业领域当中,需要经过广泛培训之后使用的,有着非结构化目标、非线性工作流程的任何应用程序。复杂的应用确实在工作流类型和最终用户方面有所不同,(例如,从研究科学家到军事专业人员再到金融分析师),但是复杂的应用程序通常具有相似的品质。例如,复杂应用需要:

  • 为有专业知识和培训经验的用户提供支持(注:需要用户自身具备一定的经验和专业知识)
  • 帮助用户浏览、管理大型数据库,并提供高级的数据分析和处理的功能
  • 通过未知或可变的基础任务功能来解决问题或达成目标
  • 需要在多个角色、工具、平台之间进行协作或者切换
  • 减轻执行高影响力(或高价值)任务的风险,降低损失


What Is a Complex Application?
We’ve previously defined a complex application as any application supporting the broad, unstructured goals or nonlinear workflows of highly trained users in specialized domains. Complex apps certainly vary in the type of workflows and end users they support — from research scientists to military professionals to financial analysts, for example — but they often share similar qualities. For example, complex apps frequently:

  • Support highly trained users with specialized knowledge
  • Help users navigate and manage large underlying data sets and enable advanced sensemaking or data analysis
  • Support problem solving or end goals with unknown or variable underlying tasks
  • Require handoff or collaboration among multiple roles, tools, or platforms
  • Mitigate the risks of executing high-impact (or high-value) tasks, where high loss (e.g., revenue or even lives) is at stake

Despite the great variance, many of the same challenges exists across all complex applications, both for practitioners creating these complex applications and the end users relying on them for their work.
This article outlines 8 guidelines for complex-application design, given the shared challenges that designers and researchers face while working on these applications.


1.让新手用户立即上手使用,边用边学

问题:很多研究表明,对于复杂的应用和工具,用户更加青睐可以立刻上手开始使用,用户对花费大量时间看教程、其他类型的帮助文档感到倦怠,而且培训或手册不可能涵盖所有的使用场景。因此,边用边学是比较符合用户期望的,他能让用户在直接上手时不知不觉的积累使用能力。
解决:在用户第一次使用时应提供“跳过教程”的设置,让用户可以直接进入功能,同时,也需要设计相应的安全性设置来避免新手操作风险。

Promote Learning By Doing
Research shows that, when introduced to an application or system, users prefer to start using it immediately, undeterred by its level of complexity. Users are more motivated to begin their tasks than spend time consuming tutorials, documentation, or other types of help or setup content. (This phenomena is known as the paradox of the active user.) While it would be risky and inappropriate to rely solely on trial-and-error learning for applications in mission- or safety-critical domains, some degree of learning by doing will always be required, because it’s not possible to cover all uses of a system in a training course or manual.
Support users’ preference to begin exploring the interface immediately by allowing them to learn the interface through trial and error, without that experimentation resulting in loss of work or irreparable damages.
For example, limit users’ ability to carry out a long sequence of actions without seeing the results of those actions. Real-time dashboard construction, where a dashboard-element preview updates in real time as it is constructed, supports this principle. Users do not have to wait until the end of their task to see if the result of their actions matches their intent.
如何应对“复杂应用设计”? - 图1
在此Salesforce仪表板编辑模块中,当用户在左侧设置数据的参数和过滤器时,将在右侧实时预览和更新仪表板元素。
In this Salesforce dashboard editing module, the dashboard element is previewed and updated in real time on the right as the user sets parameters and filters for the data on the left.


2.告知用户更高效的操作方法

问题:绝大多数用户都不是进阶的专家级用户,他们在绝大多数时候会使用基础但是效率没那么高的操作方式。很多用户形成习惯之后,通常不会主动做出改变,日积月累导致大量的时间浪费且效率低下。
解决:这个时候依赖冗长的文档和教程其实很难达成效果,更合理的方式是结合用户所处的上下文环境,通过界面工具提示的方式,适时地告知用户“有更高效的方法”。通常,可以使用悬停提示,或者是弹出式工具提示来实现这一功能。

Help Users Adopt More Efficient Methods
For the most part, even users of complex applications tend to plateau at mediocre performance. In other words, the majority of users do not transition to true expert usage with the systems they use when left to their own devices. Many users will satisfice, meaning that they will keep using satisfactory (often inefficient) ways of accomplishing tasks, rather than invest time in seeking out optimal solutions for their workflows. This behavior adds up to an incredible chasm in productivity over time, as users spend years or even decades using the same system day-in and day-out in inefficient ways.
Help users transition to more efficient methods and break their ingrained behavioral patterns by finding unobtrusive ways to communicate faster, more efficient methods for their tasks.
For example, instead of relying solely on lengthy tutorials or manuals (even well-written ones), embed in-context learning cues for accelerators or additional functions throughout the application. In-context learning cues are those presented to the users only in context of the task at hand. Tooltips that suggest a faster method for accomplishing a task as the user hovers over a toolbar menu item support this principle.
如何应对“复杂应用设计”? - 图2
ArcMap是一款地理信息系统类应用,当用户将鼠标悬停在工具栏菜单项上时,通过上下文帮助引导,提醒拖放方法可以更快的将数据添加到地图。
ArcMap, a geospatial processing program, provides in-context help, alerting users of an alternative, faster method to add data to the map (here, drag-and-drop) as they hover over a toolbar menu item.


3.提供实现目标的灵活路径

问题:复杂应用的用户通常在非线性工作流中执行非结构化目标。对于这些工作流程,用户可能不知道他们的确切最终目标,而是需要通过数据分析来逐步推进,同时,在知道确切目标的情况下,通常用户也不会都是遵循一种任务顺序来达到目标。(注:非线性流程指没有固定任务顺序的流程;非结构化目标指内容不固定的目标)
解决:设计师应避免设计固定、唯一的流程,应该提供灵活路径让用户达成目标。

Provide Flexible and Fluid Pathways
Users of complex applications often carry out broad, unstructured goals in nonlinear workflows. For these workflows, users may not know their exact end goal, but rather need to analyze data to look for answers. Even if a well formulated end goal does exist, users often do not follow a known, sequential set of subtasks to reach it. Yet, out of necessity, the system has to have some sort of structure: a physical interface with which users interact and some type of linear process that they complete over time.
Allow users flexibility in their task sequence by avoiding rigid, linear workflows that force users through a set of actions from start to finish with no escape hatches or flexibility in sequence.
For example, provide methods that allow for skipping ahead, looping back to an earlier step, and moving fluidly from any step to any other. For example, a flexible, interactive sequence map within a wizard allows users to return to previous steps without losing their progress.
如何应对“复杂应用设计”? - 图3
万事达卡测试与学习是一种自助服务分析应用,它使用向导来指导用户完成复杂的任务,通过交互式序列图提供了灵活性,允许用户可以在序列步骤中来回切换。
Mastercard Test & Learn, a self-service analytics application, uses wizards to guide users through complex tasks, but provides flexibility with an interactive sequence map that allows users to move back and forth through the sequence steps at their discretion.


4.提供用户行为和思考过程的可追溯性

问题:复杂应用的流程也较为复杂,工作中断情况更频繁。例如,复杂数据分析可能需要花费数小时甚至数天的时间,而用户所面临的复杂环境可能会导致工作意外中断,即使没有意外中断,为了实现目标,那些复杂而容易变化的子任务也要求用户在操作过程中将大量信息存储起来,而这些存储的信息很容易在他们操作时丢失(比如硬件、 网络等问题),导致用户工作卡顿。
解决:在这样的复杂应用中,可追溯性是很重要的。应该允许用户在使用过程中,可以便捷清晰地记录、保存、 导出内容和记录从而减轻了工作记忆的负担,允许用户中断后可以恢复任务,并在任务进行过程中及时进行注释说明、保存提示等。

Help Users Track Actions and Thought Processes
Complex-app users often face long waits and frequent interruptions to their work. Complex data analyses can run for hours, if not days, for example, and the high environmental complexity surrounding most complex-app users can translate to unexpected and jarring interruptions in their work. Even without unplanned interruptions, the complexity and variability in subtasks executed to achieve a goal requires users to hold a lot of information in working memory during tasks, which can be easily lost as they pivot directions.
Offload working-memory burden and help users resume tasks after interruptions or breaks in workflow by enabling users to keep a record of their actions and thought processes during their work.
Allowing users to add and store open-ended notes about particular data sets, charts, or other elements is one way to support this principle. For example, during complex data modeling or analysis, user-entered comments can remind users at later points in time why they created a model and what question they were attempting to answer when they did so.
如何应对“复杂应用设计”? - 图4
在决策建模软件TreeAge 当中,用户可以在分析和建模过程中进行开放式的注释,方便后续在底部快速访问这些注释,减轻了记忆负担。
TreeAge, a decision-modeling software, allows users to enter open-ended comments during data analysis and modeling (top) that can be accessed at later points in time (bottom).


5.协调多个工具和工作空间之间的转换

问题:复杂应用的用户通常跨多个工具和多个工作区工作。即使用户在大部分工作中主要使用一个应用,由于多种原因,他们还是经常需要切换其他应用进行操作辅助。
解决:减轻工具切换负担的一种方法是,尽量使用通用的API、接口和标准,尽量兼容行业标准软件,设计和常用第三方工具之间的连接点,比如 Excel、Powerpoint ,尽量使用标准格式,等等。

Coordinate Transition Among Multiple Tools and Workspaces
Complex-app users typically work across multiple tools and multiple workspaces. Even if users rely mostly on one specialized application for the majority of their work, they frequently switch applications for a number of reasons; for example, to gather data from online databases, find and reference articles or other external documentation, or make their own notes and commentary in other applications when the primary software does not support that action. Even within the primary application, users may transition between different environments or workspaces due to software addons or other optional packages that enable various specialized functions within the application.
Reduce the burden of tool switching by supporting the transition from one environment to another, both inside and outside the primary application.
One way to reduce the burden of tool switching is by simply accepting this ecosystem and designing connection points between the primary application and frequently used third-party tools. For example, complex work often requires collaboration and reporting. Built-in functions for exporting data sets to Excel or images to PowerPoint enable users to save precious time otherwise spent converting data or screenshotting images as they attempt to compile reports and presentations.
如何应对“复杂应用设计”? - 图5
Microsoft Power BI是一种业务分析应用,提供了将视觉效果复制为图像的功能,使用户可以快速捕获数据可视化效果并将其插入到外部应用程序中。
Microsoft Power BI, a business analytics application, provides a function to copy visuals as images, enabling users to quickly capture and insert data visualizations into external applications.


6.减少混乱

问题:通常复杂的应用旨在拓展广泛的场景。例如,环境机构用来测量和跟踪蜜蜂产量的软件,也可能同时被一家汽车公司用来分析监控软件来监控机器故障。一方面,这种使用场景的多样性使得复杂应用功能非常强大,但另一方面却也导致混乱性。此外,复杂的应用程序通常必须同时支持新手和专家用户,并且专家用户需要的功能很少概率会被新手用户用到。
解决:设计者需要在不降低功能性的情况下,基于应用场景、 用户需求来进行简化和优化,在保持功能完整易用的前提之下,降低复杂度和混乱度。分阶段和层级展现就是一种降低混乱度但是不影响功能性的一种常见策略。当用户进行到特定任务、特定阶段、特等级别之后,再呈现特定功能,是有效的设计方法。

Reduce Clutter Without Reducing Capability
Complex apps are often designed to accommodate a broad range of uses. The same analytics-monitoring software used by an environmental agency to measure and track honey-bee production might also be used by an automotive company to monitor machine failure, for example. This diversity of usage scenarios makes complex applications very powerful on the one hand, but often very cluttered, on the other. Additionally, complex applications must often support both novice and expert users at the same time, and expert users may need advanced features that infrequent or novice users rarely access.
Help users manage the choice, feature and function overload prevalent within complex applications by minimizing the appearance of clutter within the interface without reducing the capability of the application.
Staged disclosure, where options are shown to the user only when they are relevant to the task at hand or the item in focus, is one way to reduce clutter. For example, displaying advanced parameters or settings only after a related field is checked in a complex form or wizard is an example of staged disclosure relevant to complex applications.
如何应对“复杂应用设计”? - 图6
这种复杂的设置对话使用分阶段公开可以减少混乱。这种情况下,当选中“将此设置标记为私有选项后,才会显示“授予权限”设置。
This complex setup dialogue uses staged disclosure to reduce clutter. In this case, the _Give permissions to _setting (bottom) is only displayed after the _Mark this setting as private option (top) is selected._


7.平稳过渡主要和次要信息

问题:即使降低了混乱度,在复杂应用当中,信息量可能依然是过载的。通常,对于这种情况可以通过区分信息层级的主次来进行快速的区分,不过,从交互上来说,这可能依然不够。
解决:对于诸如控制面板一样的界面,用户可能需要时刻查看面板上的信息,需要了解次级信息但是又不能离开界面,这就体现出主次信息之间的过渡呈现的重要性了。一般而言,使用类似与悬停显示的方式,能够比较柔和地将次级信息呈现出来,允许用户查看详细的定量数据。下面这个案例当中就是,悬停显示更多次级信息。

Ease Transition Between Primary and Secondary Information
Even when clutter is effectively reduced within an interface, not all elements and information can (or should) be displayed at once. Some information must be deferred to secondary levels; however, that secondary information is often necessary to contextualize and make decisions about information on the primary level.
Ease the transition between primary and secondary information and help users contextualize primary information by allowing users to access and view supplemental information without leaving the primary screen or environment.
Dashboards often support this principle, for example, by allowing users to view more precise quantitative data in a tooltip when the user hovers over a specific point in a chart or graph.
如何应对“复杂应用设计”? - 图7
在此仪表板中,将鼠标悬停在数据可视化上可显示更多详情,而无需用户离开主屏幕。
In this dashboard, hovering over a data visualization reveals more precise detail about a particular point without requiring users to navigate away from the primary screen.


8.视觉上突出重要信息

问题:通常,复杂应用在界面上包含大量的信息,而这个时候关键性的数据如果不在视觉上做突出显示,会被用户错过。
解决:通过视觉区分、提示、警报的方式,防止注意力不及时的问题。值得注意的是,让关键信息和元素凸显的方式,并不一定非得是使用鲜艳的色彩和较粗的字体,可以简单的放大呈现、使用图形化的元素辅助提示、或者是提供足够的留白都可以达到目的,就像下面的案例一样。

Make Important Information Visually Salient
Many of the tasks performed by complex-app users require a high degree of visual search. To name a few examples: Users may have to locate and distinguish relevant data across tabular views in huge tables. System alerts must draw attention to relevant parts of the interface so that users can notice and rectify underlying conditions in a timely manner. Simply viewing and attempting to comprehend data visualizations on a dashboard has a significant visual-search component, as well. The sheer amount of competing information and elements within complex application can hinder these tasks.
Help users find and act upon important information by making critical elements visually salient, (i.e., making them stand out from surrounding elements). It’s worth noting that making important information stand out does not always mean adding emphasis to that information (e.g., a bright color or a heavier font weight). Removing nonessential elements can be equally or even more effective at making important information visually salient.
For example, removing superfluous graphics or visual elements that serve no purpose can make the data left behind stand out. A dashboard module that eliminates nondistinctive, unintelligible illustrations from data elements supports this principle by lessening the burden of visual search for the user attempting to locate data across the dashboard.
如何应对“复杂应用设计”? - 图8
控制面板中多余的图形会弱化对重要数据的突出(左),因此处处没有不必要图标,控制面板的数据在视觉上更能占据用户注意力(右)。
Dashboard elements accompanied by superfluous graphics make visual search more difficult (left). Dashboard elements without unnecessary icons make the numerical data more visually salient (right).


结论

复杂的应用多种多样,支持的服务和功能也千差万别,此类复杂应用的设计都是非常挑战设计师的设计功底的,需要设计师在了解业务、用户基础上,通过结合合适的设计方法,使用户更高效的达成目标并完成任务。