在之前的两篇文章中,我们重点讨论了数据驱动设计的考虑因素;具体来说,围绕业务数据如何代表潜在的业务价值。 关键信息是:结构化数据架构是提取固有价值的技术基础。 但这些文章主要集中在概念层面上介绍相关主题。 今天,我想通过一个更加具体、更加相关的例子来解释这些概念;一个关于如何思考构建一个符合数据优先思维的应用的故事。
不过,在直接进入正题之前,让我们先回顾一下为什么数据在今天比过去更重要。 从历史上看,许多企业都会收集和存储数据,主要是为了自身利益,出于治理的原因,例如审计和合规。 因此,数据收集和存储历来被视为对商业运营的一种“税收”,几乎没有直接的运营商业价值。
现在的变化是,人们更加充分地认识到可以挖掘收集到的数据来优化业务流程并改善客户体验。 例如,根据最近对数字零售企业的调查,57% 的受访者表示,这两个目标(升级业务流程和客户体验)是数字化转型的主要驱动力企业。 关键的观察,即“为什么重要”的本质,是数据驱动的工作流程既影响面向外部的领域(例如客户体验),也影响面向内部的领域(即核心业务流程)。 这就是为什么深思熟虑的数据策略对于确保最重要的业务工作流程的质量和成本效益至关重要。 此外,当工作流程被设计用来将其观察到的数据传输到数据收集和分析基础设施时,工作流程本身就可以不断地进行分析和改进,从而不断适应和优化业务工作流程。
顺便说一句,这些企业在数字化转型方面最严重的担忧是确保这些数字化流程的网络安全——事实证明,这也是数据遥测和分析方法发挥关键作用的另一个领域——不过我将把它留到另一篇文章中讨论。
继续我们的思想实验,我选择了一个我们许多人在当今适应冠状病毒的生活方式中可能都有共鸣的故事——一个提供餐厅订餐和送餐在线服务的应用。 餐食是客户从指定的餐厅在线订购的,用户可以选择直接让客户自取订单,或者让服务人员一起配送。
在这个故事中,我们将扮演application所有者的角色。 在这一角色中,我们需要解决许多不同的问题,我们将这些问题分为两类:第一,所需的运营活动;第二,前瞻性的战略问题。
第一组是必需的运营活动,包括以下方面:
第二组关注的问题不太涉及日常运作,但同样重要。 这些问题——如果提前考虑——将使企业变得敏捷、适应性强并持续改进。 此类担忧的例子有:
当然,这只是我们所关注的全部内容的一个子集,但即使是这个较小的集合也足以进行良好的讨论,强调结构化数据架构在支持可扩展数据处理管道方面的重要性。
在我们想象的application所有者的角色中,当我们考虑我们的整体数据策略时,我们可以首先枚举我们的业务工作流程,确定每个工作流程的数据处理需求。 一个例子是查找附近营业的餐馆,然后为每家餐馆提供菜单选择和菜品价格的工作流程——它需要根据位置和营业时间筛选餐馆,然后查找特定餐馆的菜单选择,或许还需要根据送货司机的空闲情况进行筛选。 我们可以为每个工作流程执行此操作——付款处理、匹配司机和送货等等。
或者,同样合理的是,我们可以从基本数据“原子”——所需的数据构建块开始考虑。 我们将识别和列举重要的数据原子,特别注意这些数据原子的统一表示和一致的语义以及支持我们的业务工作流所需的任何元数据词汇。 我们的示例应用中数据原子的示例包括:餐馆、顾客和司机的位置数据;菜单和发票所需的食品;用于过滤和跟踪交付质量的时间;以及与顾客和司机支付工作流相关的支付信息。
这两个潜在的起点(工作流的数据处理管道,或者数据“原子”)中的哪一个用于我们的数据策略,是一个先有鸡还是先有蛋的问题。 这两种观点都很有用,而且更重要的是,它们是相互依存的。 如果不考虑底层数据原子,我们就无法推理数据处理管道;如果不考虑处理管道的需求,我们就无法开发数据架构。 尽管如此,总的来说,我建议采用一种方法,首先遍历工作流来枚举数据原子,然后在进行数据管道的详细设计之前进行数据架构的结构化设计。 这是因为工作流程更加动态;随着业务的发展,工作流程会被添加和修改,而底层数据具有更多的历史和惯性,因此数据架构从深思熟虑中受益更多。
回到我们的例子,让我们假设,作为application所有者,我们对关键业务关键工作流和支持它们所需的数据原子有一个相当发达的了解。 在本次讨论的早些时候,我们已经确定了工作流程所需的一些基础数据元素:位置、时间、食品和付款信息。 并且,回顾之前的文章,数据架构应该实现 3 个关键目标:语法的统一性、语义的一致性以及用于推理和管理数据的元数据词汇表。 所以现在,我们可以应用这些原则来讨论今天的例子中列举的特定数据原子的数据架构考虑因素。
放大位置数据原子,考虑 3 个关键数据架构目标中的每一个。
我们只讨论了位置的要求,现在可以对其他每个数据字段进行类似的练习。 然而,我不会列举每个数据原子的所有关注领域,而是会强调一些值得注意的观察结果:
虽然这个例子还只是浮于表面,但它凸显了许多与现实场景相关的问题。 然而,在现实世界中,思考数据策略的过程不会就此结束,而是会不断迭代、持续进行。 随着数据元素被输入到体现业务工作流的数据处理管道中,数据架构会进行迭代调整和增强。 随着现有工作流程的增强和新工作流程的添加,我们会发现现有数据原子和新数据原子的额外数据架构要求。
尽管此示例已简化以简洁起见,但它仍然展示了将工作流映射到其数据架构含义的关键原则。 该过程总是从考虑业务需求开始——客户体验和满足这些需求所需的业务流程。 反过来,业务流程又定义了业务词汇的元素。 在下一个具体级别,流程映射到数据管道,该管道利用数据词汇。
关键原则是,强大的数据架构(定义语法、语义和注释的架构)构建了一个基础,允许有效增强数据管道并轻松添加新的工作流程。 在业务层抽象上,这意味着可以轻松修改现有的业务流程,并且新的或新兴的业务流程可以快速上线。 相反,如果在数据词汇、数据架构框架或将其与业务需求联系起来等任何领域都未能做出深思熟虑的决定,最终将导致系统脆弱不堪,无法灵活应对新的业务需求。