这是数据架构解决方案系列博客的第三篇,系列的其他文章:

  1. 概述
  2. 数据架构组成
  3. 数据流水线和数据湖

所有的数据系统的最终目的都是为了让一个组织从它拥有的数据中能发掘出有价值的东西,如果不能有效地从原始数据中挖掘出能为提升组织作出贡献的价值,技术栈再怎么厉害都是没有用的。

本篇文章主要介绍一些数据分析和处理方法论来更有效地挖掘数据价值。

对于这个主题,可以从两个更高层次的角度来拆分:

  • 搞清楚我们要解决的问题是什么;
  • 如何实现具体的处理和分析方法来解决这些问题。

定义问题

通常情况下(只要你不是在一个刚成立的创业公司里),为了让数据产生价值,你们已经有足够多悬而未决的问题了。。。但这并不意味着所有这些问题都是值得被解决的,或者说,解决这个问题的收益/付出比可能很低。

为了实现让数据产生价值的目标,问出正确的问题是很难的一件事情。 尤其是为了同一个目标有很多看起来很有意义的问题被提出来的时候,这些问题中有些是有潜在影响力的,有些则不然。当然,也有可能正确的问题从来没被提出来过。

对于一个数据系统而言,先弄清楚几个最基本的问题比如何构建是更重要的:

  • 我们想从已有的数据中榨取出什么样的价值?
  • 什么样的数据或者指标可以对业务有真正的影响?
  • 这些数据中,哪些是通过现有的数据和技术可以实现的?

想要知道这些问题的答案,你必须和相关利益方坐下来开好几个长会。。。更坏的情况是,你们讨论了好几轮之后还是没有明确的答案,大家都不知道他们想要的究竟是什么

看了一些资料并结合我自己的经验,我总结了一些可以开启讨论的问题:

  • 对于可追踪的与用户参与相关的指标而言,哪些是最重要的?
  • 影响用户使用公司产品的指标有哪些?
  • 相比用户期望得到的,我们产品提供的有什么差距?

为了得到这些问题的答案,下一步就是要开始工作了:定义具体的指标,绘制可视化数据等,并且在开始后的过程中,可以发现新的相关问题和解决方法

总而言之,要得到有用的问题的关键点在于:

  • 提供足够多的相关信息;
  • 明确要实现的目标;
  • 理解这个问题的影响力。

风险管理

兼听则明

和之前的过程一样,确保你的信息是来自多个团队和相关利益方,而不仅仅是管理层或者直接相关团队。道理不用赘述了,从多个视角看待同一个目标会得到不同的问题,事前了解清楚个团队对这个目标的态度有助于提前做好各种准备。

在多个团队中建立信任

注意:要表现出你在组织中是一个合作者,而不是来挑刺儿的。你需要和相关利益群体紧密合作,获取他们的信任,一起把事儿做成了。

这个阶段的挑战是确认你正在定义正确的问题。一个有效方法是:经常公开地就要达成的目标和各相关团队进行交流。这看起来似乎是常识,但通常可以避免将责任推到组织的某一个团队。在某些情况下,把注意力放在某一个特定问题上可能会使组织中的某些人员或团体受到负面影响。你懂的

一个可行的绕过这些政治陷阱的方法是:找到跨部门的联系人,确保他们了解定义问题的迭代过程,然后经常与这些人沟通,从而减少任何意外。

实现解决问题的方案

一旦问题和解决办法被确定,接下来就是如何实现了。

在实现的时候,一定要记得我们试图解决的原始问题是什么,因为在很多时候,我们在解决问题的过程中容易走到另一条路上。当然,我们在解决的过程中还应该保持足够的灵活性,以适应需求的改动。

另外有两点需要在实现的过程注意:

解决方案必须是可维护的,而不能是一次性的

为了解决一个问题,最直接快速的方法是写一个一次性的解决方案,但这种方法是完全不可维护的:这意味着如果有后续的需求改动,必须要再重新写一套解决方案。

更好的方法是,构建一个可以解决多种类型问题的平台。这有点类似传统的数据仓库理论中的数据集市和数据仓库的关系。

解决方案必须可以被不同的人运营和维护

通常,我们会认为构建解决方案的人同样会来运维这个解决方案,这本来是没有问题的。但是需要考虑到人员流失和团队内角色重新分配的情况,因此,最好每个解决方案都有详细的文档和运维方法,让团队内甚至团队外所有人都可以胜任运维的工作。

数据处理和分析团队的人员组成

和构建数据流水线和数据湖不同,数据分析团队的首要能力是发现问题,其次是夸团队合作,以及找到解决问题的方法。因此,团队需要的角色有下面这些:

  • 善于找到正确问题的人

    团队内最重要的角色,他们需要在日常业务中发现问题,而这些问题可能对组织有巨大影响。为了做到这一点,需要对业务非常熟悉,而且需要和组织里的其他团队有频繁交流。

    通常情况下,这个角色都是由团队内熟悉业务的成员担任,比如项目管理,产品管理,或者是团队 leader。当然也可以是研发人员或者是分析师。

  • 架构师

    这里架构师的作用就是构建上面说的能解决多种相似类型的平台。

  • 解决问题的人

    有了问题和平台,就需要解决问题的人了。通常情况下,需要数据分析师和数据工程师将解决问题的方法实现。

    另外,还需要运维人员负责将整个方案部署上线并进行运营和维护。

总结

本篇文章主要介绍了一些在数据处理和分析方面如何提出正确的问题以及如何解决它们的方法论。