的用户复杂的应用程序在他们的工作流程中经常被中断,开始一项任务只需等待一段较长的时间才能完成。这些长时间等待的发生有多种原因-例如,系统可能需要大量时间来处理请求(例如,运行模型、查询数据库),或者用户可能需要从外部来源获得更多信息才能继续,并且在收集信息和恢复任务之前被迫等待。

无论在何种情况下,遵循以下5条原则可以减轻复杂应用程序用户在长时间等待或工作流程中断时的挫败感:

  1. 明确指出已完成的进度和剩余的时间或步骤
  2. 将成功对话框消息上下文化,并添加更多细节
  3. 在系统中启用用户生成的注释和注释
  4. 提供对历史内容的访问
  5. 允许在后台运行冗长的进程

本文的其余部分提供了这些指南的附加细节和示例。

1.清楚显示已完成的进度和剩余的时间或步骤

复杂应用程序的用户经常分析大型数据集、运行复杂模型或查询健壮的信息源——所有这些过程都需要大量的系统处理时间。在这些相对漫长的等待中,系统状态可见度是特别重要的,这意味着应该向用户提供关于在合理时间内发生的事情的反馈。

由于复杂应用程序中的处理时间通常相对较长(至少与日常在线活动(如向购物车添加商品)相比),复杂应用程序用户可以从系统处理过程中发生的事情以及相对于过程结束时他们所处位置的详细信息中获益。进展指标它提供了一些细节,如经过的时间(或完成的步骤)和剩余的时间或步骤,使得长时间的等待更容易忍受,并增加了用户的信心。

例如,下面的地理信息系统(GIS)应用程序提供了关于已完成工作百分比和当前步骤的详细信息(软渲染多边形特征……)在长时间的系统处理期间这些信息可以帮助用户了解流程是否按照预期进行,流程将需要多长时间,以及在此期间是否应该等待流程完成或开始另一个任务。

进度指示器包括一个明确的完成百分比动画,并传达当前步骤(“光栅化多边形功能……”)。

如果不提供这些细节,即使是频繁的长期用户也会感到困惑和沮丧。例如,在最近的一次情境调查会议上,一位城市规划师试图分析人口数据,揭示了缺乏进展细节可能造成的不确定性。在等待数据处理时,他描述了该系统提供的“进度指标”:

让我们看看会发生什么,我知道它在做一些事情,只要它有这个东西在下面。如果这个小球体在旋转,它仍然在做一些事情。如果我看到地球仪停止转动,或者不显示出来,那我就知道我的软件可能崩溃了。

在此应用程序中,系统正在处理请求的唯一指示是窗口底部的微小旋转地球仪(红框)。这种方法不能帮助用户了解系统正在做什么,或者这个过程需要多长时间(更不用说这个指示器的低发现性)。

而像这样的循环动画可以帮助用户理解系统正在做什么某物,这是早已确定的它们不适用于超过10秒的等待,这是复杂应用程序中的一个常见场景。这是因为忙碌状态循环动画并没有告诉用户是否值得等待进程结束,或者他们应该在等待期间投入另一个任务或动作。

向复杂应用程序的使用者清楚显示进展情况:

  • 交流超过10秒的等待所完成的工作百分比或剩余时间。
  • 当无法提供合理准确的完成百分比或剩余时间估计时,通过提供已完成和剩余步骤的列表来指示相对的进展。
  • 适当时,指示当前步骤。(但是不要让用户过多地了解系统操作的详细信息。)
  • 确保进度指标是非常显著和可发现的。

2.将成功对话信息与附加细节结合起来

在漫长的等待期间,复杂应用的用户可能会离开他们的工作,去完成不同的活动或启动系统内的其他任务;这些活动将增加它们的总体数量认知负荷. 例如,一位海岸工程师在最近的一项研究中描述了在一个典型的一天内,在70台计算机上启动分析的分数:

不幸的是,当您有千兆字节的数据时,它们[运行]可能要花上几个小时……仅在[这个项目]上进行区域统计可能就需要半天时间。[我]点击区域统计然后…离开半天…这就是为什么我有70台计算机,我只是在不同的计算机上启动进程,让它们运行一段时间。

为了减轻返回用户的工作记忆负荷,并帮助他们恢复上下文,在流程完成后,提供总结用户离开时发生的事情的细节。

成功对话框(提醒用户进程已成功完成的系统消息)可以提供有用的上下文信息,如时间流逝、进程完成的时间戳,以及与已完成进程相关的任何相关信息的链接(例如,创建的新记录、错误的相关文档、日志)。使用这些信息,用户可以了解典型的处理时间,对是否应该在未来的类似流程中投资于其他任务做出更明智的决定,并增加流程按预期执行的信心。

这个成功对话框包括关于过程的有用细节:开始和结束时间以及总持续时间。

成功对话框也是提供有关执行过程结果的详细信息的合适位置——创建的新记录、数据匹配或发生的验证、发生的错误或跳过的步骤。

除了提醒用户流程已完成外,此成功对话框还以匹配记录数的形式提供有用的详细信息。

更好的是,成功对话框可以在适当的时候提供与细节相关的任何相关内容的直接链接。

为复杂应用程序的用户介绍成功信息:

  • 提供长流程的启动时间、停止时间和总时间。
  • 提供有关过程中发生的情况的信息(例如,创建的新记录或跳过的步骤)。
  • 适当时,链接到“成功”对话框中提到的相关文档或其他内容。

利用情态动词对于在长时间等待后出现的成功对话框(例如,不要让它们在没有明确的用户交互的情况下消失)。

3.在系统内启用用户生成的注释和评论

中断后返回到特定工作流的用户可能不记得他们在寻找什么信息,他们完成了哪些步骤,或者为什么他们采取了特定的操作序列。帮助复杂应用用户记住他们之前的目标和行动的一个经常被忽视的策略是用一些来源来补充工作记忆外部存储器,用户可以在系统中保存和访问工作流程中所需的信息。

支持创建外部内存源的一种相对简单的方法是允许用户在应用程序中生成注释或注释。使用此功能,用户可以在复杂的工作中跟踪其思维过程。

例如,下面的决策建模软件允许用户在试验对数据进行各种分析时,为不同的分发选项创建和附加评论。当分析模型时,可以在工作流的上下文中查看这些注释,帮助用户回忆他们在寻找什么或者他们为什么采取这些行动。

在这个决策建模软件中,用户可以创建各种分发选项并附加注释,从而创建一个外部内存源。

当用户没有能力在他们的工作流程中留下开放式的注释时,他们面临着理解和记住复杂模型或项目中对象的目的的过度负担。例如,在最近的一次研究中,一位工程师抱怨说,他没有能力在自己的工作中添加注释:

没有评论或任何…所以你必须打开每一个条目,这是检索数据,这个是做别的…和你总是不断地这么做……我应该能够添加一个注意……在这里说这是由于销售的副总裁需要它,或者因为这意味着“x”。

没有添加开放式笔记的能力,用户通常求助于创建和维护各种外部文档——比如一系列电子表格——来记录他们的行动和思维过程。在复杂的工作流程中,这些外部文档成为管理和引用的负担。

为了帮助复杂应用程序的用户跟踪他们的思维过程:

  • 允许用户在系统内留下注释和评论,以解释他们的操作、添加或查询。
  • 允许注释是开放式的。
  • 在工作流的上下文中显示先前创建的注释。
  • 不要强迫用户离开应用程序去跟踪他们的思维过程,并创建外部内存来源。

4.提供对历史内容的访问

对于复杂应用程序的用户来说,效率至关重要。即使看似很小的交互,比如要求用户点击几个额外的屏幕为了访问列表或表选择和加载一个项目之前,编译为浪费时间和精力经常项目或文件之间切换的用户一天几次,甚至小时。

为了支持在工作流中断后快速重新进入任务,在用户登录到应用程序后,尽快提供历史内容,例如最近查看的文件或页面列表。这些列表提醒用户他们在哪里停止了工作,并提供一些快速的入口点回到他们的工作流程。例如,Azure DevOps在标题下提供了最近访问的内容列表继续你停止的地方当用户登录到程序时。

Azure Devops:用户可以使用标题Continue where you left下的列表,立即跳转到最近访问的内容。

在提供最近的、喜欢的或常用的项目列表时,请正确地标记内容,以便用户理解它是什么,如上例所示。相比之下,许多应用程序将项目钉在主页或概述屏幕上,而没有明确地将它们标记为最近的内容继续你停止的地方,这就不清楚他们是否经常最近访问内容。此外,还不清楚用户是否可以自定义这些项目(例如,从该区域pin或unpin项目)。

特别是对于具有高度信息复杂性的工作流——例如需要很长时间加载的文件,或者可能具有模糊的、难以记住的、系统生成的名称——提供历史内容的预览也是有用的。例如,下面的应用程序提供了最近文件的缩略图和最近文件名。正如使用该程序的机械工程师所描述的,“这里的文件预览很好,因为加载这些文件需要很长时间。如果你打开了错误的文件,就会浪费很多时间。”

在此应用程序中,“最近使用的文档”对话框中的文件名随附缩略图预览图像,帮助用户快速查找和访问所需文件。

要帮助用户快速重新输入以前启动的任务,请执行以下操作:

  • 提供最近访问的页面或项目的列表。
  • 明确地标记这个项目列表,以便用户理解它是最近的内容。
  • 让这个列表尽可能的快。不需要用户转到页面、项目或项目的单独概述屏幕来查看列表。
  • 在相关的情况下,用预览增强历史内容(例如,当文件的名称不明确或加载时间较长时)。

5.允许长进程在后台运行

通常,当进程运行时,用户更愿意执行另一个任务、查看附加信息或引用应用程序中的其他内容。不要强迫用户在系统工作时处于空闲状态,从而使他们在这些进程中陷入长时间等待。允许用户选择在后台运行长时间的进程,这样他们就可以在进程运行期间继续在应用程序中工作。

此进度指示器包括在后台运行进程的选项,允许用户在等待期间自由启动或恢复应用程序中的其他任务。

因为在后台运行的进程对用户不是高度可见的,所以在这些进程完成时显示的成功对话框应该是非常显著和可发现的。模式成功对话框(必须被用户明确地忽略)是合适的,因为用户在继续他们的工作时可能不会注意或思考这些过程。

结论

在复杂的工作流中,长时间的等待通常是不可避免的,但是有几个策略可以帮助用户处理这些等待的时间,并在等待结束时支持任务重新进入:

  1. 明确指出已完成的进度和剩余的时间或步骤
  2. 将成功对话框消息上下文化,并添加更多细节
  3. 在系统中启用用户生成的注释和注释
  4. 提供对历史内容的访问
  5. 允许在后台运行冗长的进程

这些指导方针和更多内容将在我们的全天课程中讨论,为特定领域设计复杂应用程序