本帖最后由 陈小宝 于 2020-7-30 16:45 编辑
, x% }' ?/ y' H* I& `% w& U
g9 z9 f& D9 w& l/ L) ?3 s. q- M
- ?, Z6 y# c7 i
- u' w0 ~. b" f! c& Q$ e' f* j. Q& v7 K8 R
具有工作流能力的许多自动化产品都具有相互重合的大量专有的和普遍的功能,因此经常令潜在的购买者或工作流设计者感到困惑。 * B8 w, b8 o$ E. m" H T
在现代的数字化环境中,我们可以简化自动化产品的选择和实施过程。使用专门的自动化工具像编写软件程序一样来定义工作流,但是需要从更高的层次上使用可视化和/或声明性方法(“as code”的方法)来实现。
' K9 A. M7 V" {, g; z$ P
" B$ R9 o0 r" J( w2 J7 D: G除了将活动分组来实现逻辑上易于复用、维护和控制的模块化功能分解,您在定义工作流时还应考虑以下几点:
- Q" t1 o1 r' Q( z9 G, Y4 K2 Z: Y
● 需要使用的输入数据/信息 ● 需要采取的动作 ● 需要在开展一项或多项其他活动之前进行推断的逻辑决定 ● 需要生成的输出数据/信息 ● 需要满足的约束条件 ● 需要处理的例外 ( N& x; ?) T, B" K2 O
7 z9 f& r9 K* q* J考虑到工作流设计和软件开发的相似性,将软件开发领域中一些成熟的软件设计原则、模式和实践加以调整后应用到面向工作流的自动化设计中是有意义的。
( m' m2 K* O0 \" ]) ]! o% x# n2 z7 J/ D0 ^& H) ~
受到软件工程启发的以下工作流自动化结构设计原则有助于创建易于理解、复用、逐步完善和诊断的工作流: 1 以仅实现一个主要功能目标为原则对工作流单元中的活动进行分组。 ﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏2 较高级别的工作流(趋向通用的工作流)可以调用较低级别的工作流(趋向专用的工作流),反之不成立。 ﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏3 将易于变更的活动组与具有伪静态变更趋势的活动组相隔离。 ﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏4 将工作流中极有可能因相同原因而引发变更的活动分成一组。 ﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏9 h. n; |) i5 O' p; R( i
7 K J; v' N8 C前两条原则更直观,也更常用,虽然在工作流的初始版本发布之后,工程师可能会因为忘记或不了解工作流的初始意图而时常违反第二条原则。6 X& Y3 m5 S* Q) \8 `
8 P# |) U1 g2 x! [; [: Y0 P) l! N! H第三条原则很重要,因为它有助于将工作流中稳定的活动组与可能需要更改和重新测试的活动组相分离。
8 u2 P1 i4 N- r, ^8 U( @
, ^9 O, R! z8 q. L$ q! C$ i第四条原则是最重要的工作流设计原则。这条原则不仅在自动化产品选择过程中最有价值,而且还能帮助许多企业实现提高整体业务敏捷性的目标。
i) F. |7 F w# C6 {2 a. }, ^5 b3 p1 N* g
如果不能通过快速调整工作流设计过程来消除现有差距,那么,可重复的、安全的、不存在人为错误的工作流很快便会转变成需要频繁更新的工作流,并放大现有差距的负面影响。 ; [9 x v6 Z7 s/ T/ C5 n3 h
8 Y, J8 r) T2 m1 p) V9 V9 f" i7 U如果贵公司由于各种原因而需要频繁进行变更 — 例如,适应市场变化、采用最新的创新成果、采用DevOps或正在进行组织转型等 — 那么,为了避免无法达成新目标,您可能还需要更改过程、流程和活动工作流。这意味着您必须在工作流设计过程中保持谨慎并遵循上述原则,选择能够帮助您解决相关变更问题的通用自动化产品,并通过允许轻松实施重复性变更的方式来设计自动化过程。(Iulian Ursache) |