【问题标题】:Designing a complex workflow diagram设计复杂的工作流程图
【发布时间】:2010-07-15 14:39:18
【问题描述】:

我们有一个非常复杂的工作流程,需要由具有内部网络应用程序的准技术员工监控。大约有 30 个步骤,其中一些是手动的(编辑),一些是半自动的停止点(例如“文件已收到”或某些模板的客户批准),还有一些是完全自动化的(文件转换、搜索索引、等等)。所有这些步骤的流程图都很大而且很复杂,三个人可能同时处理三个完全不同的步骤。

您将如何尽可能有效地向您的用户展示如此大量的信息?仅显示整个图表似乎是蛮力解决方案。但它很大,随着我们做更多的事情,它可能会变得更大。更不用说用 HTML 编码整个图表所需的复杂性了。

【问题讨论】:

  • 当你说“管理”是什么意思。是否期望这些用户需要修改工作流或只是监控/报告工作流组件?
  • 它只是监视状态并重新启动失败的步骤。当步骤失败时,用户会在此应用程序之外修复问题,然后他们会回到这里并重新运行失败的步骤。

标签: user-interface flowchart


【解决方案1】:

我假设您不想仅仅为了娱乐或嘲弄而展示这些内容,而是一路帮助用户,尽可能自动化,记录流程等。如果您明确定义目标或目的,这可能会有所帮助您的应用程序。

除了“调试业务规则”或者客户希望看到它之外,我认为展示整个工作流程没有任何意义。

如果您的目标是帮助用户完成他们的工作,我会介绍“项目”(或任何更适合的术语)的状态,以及可能的过渡 到其他州。

状态可能是多个主要是自变量,例如可以描述内容的进展 - 例如“不完整”/“完成”/“由第二名员工审核”/“由第二名员工签署”,其他可能包含并行制定的时间表,例如“测试打印日期 = 未计划”、“打印日期 = 未计划”、“最终交付 = 明天,最好是昨天”。

转换可能是“发送给客户进行审核”、“标记为内容完整”、“内容已修改”等。

这是你的想法吗?

【讨论】:

  • +1,从我阅读 Plutor 的问题来看,这听起来是个好主意。我要补充一点,假设该过程具有最终目标/状态,请显示某种“您在整个过程中走了多远”指示器。作为用户,一步一步地执行并且不知道您正在取得什么进展(如果有的话)可能会令人沮丧。
  • +1 表示“进度”;) 我自己也在想这个,但想确认这 是 Plutor 寻找的。某些节点可能被标记为“里程碑”或将“完成点”分配给某些状态。
  • 除此之外,如果他们确实想查看整个工作流程,您可以简单地将流程图作为 PDF 或图像,如果他们愿意,他们可以下载查看。尝试在 HTML 中执行此操作更容易...
【解决方案2】:

我建议将您的工作流程划分为模块,并代表每个模块的活动状态。

模块是您主要工作流程的一个子集。例如,它可以按任务、人员、角色、部门等进行划分。这将大大简化工作流的表示。假设有人在许多关键时刻负责数据输入。我们可以将他的所有任务分组到一个包含相同活动、输入、输出和条件的模块(或子工作流程)中。模块可以是相互依赖和相关的。

A state 是我们在模块中所处的位置。在简单的工作流程中,只有一个活动任务。在现实生活中,我们是多线程的!因此,也许在一个模块中,许多状态可以同时处于活动状态。状态还包括活动输入、输出和内存位。

输入 是执行用于评估布尔条件的活动所需的东西。它可以是一份文件、一段数据、一个信号……

输出是由任务产生的东西:信息、文档、信号……

足够的定义?

然后只需将您的工作流程转换为 LADDER LOGIC,您就有了自己的状态!
See Ladder Logic definition on Wikipedia

您只显示活动状态:

  • 模块的活动任务
  • 需要输入/确认输入
  • 需要输出/实现输出
  • 继续的条件

看起来很抽象?

这是一个小例子……

珍妮特在系统中输入数据。她管理图表的绿色任务。我们只关注她的工作,而不是其他任务。她知道如何完成工作流程中的 16 项任务。我们正在等待她继续执行以下操作,她的 Intranet 仪表板显示:

优先级 1:您必须发送采购订单,以便根据销售报告为下个月订购足够的铅笔。

  • 任务:发送采购订单
  • 输入:营销部门的预测报告
  • 输出:采购订单、供应商、项目、数量
  • 完成条件:已发送订单并收到供应商的订单确认

优先级 2:您必须将生产拒绝的橡皮擦数量输入金融系统

  • 任务:数据输入
  • 输入:生产中的拒绝计数
  • 输出:拒绝数
  • 完成条件:数据输入并确认

我们对具有数十万阶梯步骤的自动化生产系统进行了大量故障排除(工作流程过于复杂,无法整体表示)。当系统被阻塞时,我们会查看每个模块并确定激活任务完成时缺少哪些输入。

祝你好运!

【讨论】:

    【解决方案3】:

    这听起来像是BPEL 适合的那种应用程序。

    当然,您现在不想重新设计您的系统。但是有许多 BPEL 实现,其中一些包括图形编辑工具。其中之一可能会对您当前的情况有所帮助,因为它们擅长处理范围和隐藏细节。因此,我认为您可能会从将工作流绘制为 BPEL 图中受益,即使您不使用该语言做任何其他事情。

    维基百科页面列出了several of the available implementations。此外,Oracle 的 JDeveloper IDE 包括一个 BPEL Diagrammer 作为其 SOA 套件的一部分;不幸的是,它不再是标准安装的一部分,但它仍然可用。 Find out more。

    【讨论】:

    • 所有关于 BPEL 的信息似乎都是从中间水平开始的。没有“所以,你是 BPEL 新手”教程吗?
    【解决方案4】:

    尝试分层进行。您已经完成了最详细的层,现在添加隐藏细节的附加文档,并分组到更高级别的业务流程中。用户应该能够安全地忽略其中的一些细节,但了解他们的部分如何融入整体对他们来说是件好事。

    您可能需要多个更高级别的文档。

    【讨论】:

      【解决方案5】:

      您可以使用Prezi 将这些信息以清晰的方式呈现给用户。

      • 将工作流程拆分并呈现为多个阶段,以便最终用户能够轻松识别他当前所处的阶段。
      • 显示与输入数量一样多的相数。工作流程从 6 个不同的输入开始,因此在屏幕上显示六个不同的按钮,使用户能够选择他想要的输入。
      • 在选择按钮时放大描述后续步骤的工作流。这也将帮助用户验证他到目前为止所做的操作以达到当前状态。

      这也将帮助用户验证他到目前为止所做的操作以达到当前状态。但是随着用户完成的步骤数量的增加,这种呈现方式对于用户来说可能会变得很麻烦。假设用户几乎已经到达工作流程的末尾。为了检查下一步,他应该完成所有可能让用户感到沮丧的步骤。

      为避免这种情况,您可以将整个工作流程按时间顺序分成 3-5 个阶段。阶段应该在逻辑上进行划分。最终目标是不要让完整的工作流程让用户不知所措。如果按照您展示的方式呈现,我个人会尽量避免涉及此工作流程的任务。没有冒犯的意思。我打赌你也有同感。

      如果您可以在用数字替换州名后重新发布图片,可以为您提供更好的图片。

      【讨论】:

        【解决方案6】:

        我建议将整个流程记录在某个地方,但就分发给用户的内容而言,关注面向任务的流程怎么样?没有一个用户会对我想象的整个过程负责。
        例如,假设我有 2 个角色,A 和 B,以及 6 个任务,1 到 6,按顺序执行。每个任务可能有多个步骤,但都是独立的(例如下载文件、审核、运行流程、再次审核、上传)。 A 执行偶数任务,B 执行奇数任务。
        A 需要了解包含任务 2、4 和 6 的详细步骤,但不需要了解 1、3 和 5 中发生的情况。因此,为 A 提供他负责的任务的详细流程集,以及将每个任务视为黑匣子的图表。 如果无法以这种方式将流程模块化,您可能需要查看流程本身以了解它为何如此复杂。

        【讨论】:

          【解决方案7】:

          如何展示一个工作流场景的示例,即展示一个可能通过工作流的转换?您可以针对特定的用户配置文件进行调整,并突出显示相关状态,使其他状态变暗。这使他们可以通过查看真实示例来清楚地了解过渡。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-08-23
            • 2011-03-02
            • 1970-01-01
            • 2014-02-28
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多