Press "Enter" to skip to content

好的工程师、坏的工程师和邪恶的工程师——一个数据领导者的轶事

我区分各领域(包括数据)中好的、坏的和邪恶的工程师的黄金框架

作者提供的图片(使用Canva的魔法媒体应用生成)

工程师是使用科学原理设计或构建某物-《剑桥词典》。

我们都喜欢好的工程师,他们建造了奇妙的桥梁、道路、火箭、应用和数据结构,使我们的生活变得更加轻松和愉快。

按照同样的逻辑,坏的工程师不会使生活变得更好。如果雇佣他们,他们会设计和构建某些东西,但会花费我们更多的时间、金钱和精力。

但你是否也知道,在好和坏的范畴之外,还有邪恶的工程师,他们的心态不是建设,而是不建设。

作为一名工程师,我自己作为产品所有者/项目经理与多个工程团队合作的经历告诉我关于好、坏和邪恶工程师的总体经验。我喜欢好的工程师,对坏的工程师有同情心,对邪恶的工程师深恶痛绝。

在本文的末尾,我将告诉你,这些类型的工程师之间的基本差异是什么。但首先,让故事从更具有个人色彩的角度来讲述。

好的、坏的和邪恶的工程师的一些常见观察

回顾你自己对工程界的经验和了解,你认为好的、坏的和邪恶的工程师的共同行为有哪些?

以下是我的观察:

好的工程师:

  • 他们识别问题
  • 他们使用可持续的方法解决问题
  • 他们还解决与确定根本原因有关的其他问题

坏的工程师:

  • 他们识别问题
  • 他们只解决问题的短期需求
  • 他们解决原始问题时却产生了更多问题

邪恶的工程师:

  • 他们假装没有看到问题

看一个具体例子

通过描述数据工程领域的一个具体例子,让我更容易地想象这三个工程师角色。

以数据工程师构建数据管道为例,该管道将一组原始数据表从事务性数据仓库复制到云中的容器中。按照勋章架构,数据经过铜、银和金层,首先将数据进行清理并转储到指定的数据湖中的铜层表中。接下来,他们在银层中对表进行规范化,并建立它们之间的关系。最后,他们在一个视图中将多个表连接在一起,并创建新特征来表示供 Tableau 仪表板使用的业务指标。

在仪表板测试中,注意到某个列中的某些记录存在缺失值。业务用户担心,因为他们看到超过50%的记录在该列中有缺失数据,但他们也承认数据可能在源头上不完整。现在,工程师们需要调查并解决这个问题。

好的工程师会:

  • 首先,他们非常清楚该列是如何从铜层转化为金层再到银层的。换句话说,他们将了解该列的确切数据血统。
  • 确定在金层中存在缺失数据的样本记录,但源数据中该列有数据。如果他们在整个数据集中找不到任何记录,则宣布数据本身是不完整的。
  • 如果找到有效的带有缺失数据的记录,他们会手动应用转换逻辑再次查看为什么该列的数据没有出现。这里有两种情况:
  • 情况1:样本记录包含一些意外特征,导致其列值被排除在金层之外。简而言之,这是一个设计问题。在这种情况下,好的工程师将与产品所有者讨论这些意外特征,并确定一个针对它们的处理计划。他们可能决定可以安全地忽略此子集的数据,因为具有这些特征的数据与业务目标不相关;或者他们将为它们提出自定义的转换逻辑,以将数据纳入其中。
  • 情况2:列值在手动转换中出现,这意味着他们对初始数据血统的看法是错误的。简而言之,这是一个执行问题。好的工程师将返回检查数据流水线或数据血统实际上是什么。然后他们重复剩下的步骤。

一个糟糕的工程师会:

  • 对数据血统了解不足。
  • 识别到金属层中的一个样本记录缺少数据,但是源数据对于那一列是有数据的。如果他们找不到任何记录,他们就会宣称数据本身是不完整的。
  • 如果发现一个缺少数据的有效记录,会尝试在具有缺失数据的记录上应用手工逻辑转换,以查看为什么该列不通过。
  • 对于为什么列值不通过的错误结论产生错误理解,主要是因为他们对数据血统和整体数据流程的理解是错误的。
  • 如果他们的观察导致上述情况1的结论(设计问题),他们会通知团队这是数据质量问题,并结束工作。他们假设设计完美,没有改进的空间。
  • 一个更具道德但也更灾难性的工程师将尝试为受影响的记录提供自定义处理(即修改设计),然而,由于他们对数据血统的理解本来就是错误的,他们会造成更大的混乱。
  • 如果他们的观察导致情况2的结论(执行问题),他们将回顾实施和设计的数据流程之间的差距,并可能在下次找到正确的解决方案。

邪恶工程师会做什么?

  • 他们可能知道正确的数据血统,但这并不重要。
  • 他们宣称由于源数据是不完整的(根据业务告诉他们的),当然在仪表板上数据会缺失。
  • 然后他们假设数据流程没有问题,因为数据本质上是不完整的。
  • 他们结束工作,回家了。

好工程师、糟糕工程师和邪恶工程师之间的根本区别

希望我上面的例子让你更清楚地了解了这三种类型的工程师。然而,在你掌握好工程师、糟糕工程师和邪恶工程师之间的根本区别之后,这个例子只能在未来帮助你。要系统地区分这三者,找出他们的基本特征是至关重要的:

这是我对此的看法:

  • 好工程师具备3个品质:卓越的知识真理的坚守结果的坚守
  • 糟糕的工程师缺乏卓越的知识结果的坚守。然而,他们对真理有相当高的坚守程度。
  • 邪恶的工程师对真理的坚守几乎没有或毫无兴趣。对结果他们也不关心。他们关心其他方面(可能是结果的外表),或者根本不关心任何事情。邪恶的工程师很少具备卓越的知识,但即使他们具备,也不相关,因为他们既不关心真理,也不关心结果。

你们中有些人可能会发现,在这里糟糕工程师和邪恶工程师之间没有明确的区别。通常,邪恶经常造成伤害,因此您预计邪恶工程师会故意引入恶意代码,或者掩盖他们过去的错误。我同意这一点。然而,我想在这里强调的是我在糟糕和邪恶之间划分界限的地方:

工程师不一定需要有恶意行为才能成为邪恶的,一旦工程师开始无视他们眼前的真理(即假装没有看到问题),他们就进入了邪恶的领域。

而他们忽视的事实越多,他们就越邪恶。

如何辨别好工程师、糟糕工程师和邪恶工程师?

因此,下一次当你遇到一个工程师时,寻找所有这三个品质的迹象。如果你只发现一串资格证书、认证或数十年的经验,不要那么自信——它们只是卓越知识的指标。

坚守是一种积极的心态。要找到对真理或结果的坚守的迹象,需要仔细调查历史行为模式、不断分析思维过程,以及观察他们对挑战的反应。

忽视寻找承诺或真实的迹象,就是忽视自己的成功,并让其由所谓的“有知识”的工程师决定。

最终,这是关于你对自己的招聘/合作决策负责。如果你不想浪费金钱,那就开始认清优秀、糟糕和邪恶的工程师。

***

嗨,如果你正在阅读这篇文章,那么你很可能关心数据。你认为从数据中可以提取出无价的价值,并且你渴望找到最佳的策略、实施方法和工具,尽可能多地从你的组织(或你个人的)数据资产中提取价值。

如果这是真的,那么请查看我的每周通讯——Data & Beyond Dispatch。每一期都会为你带来数据社区的富有见地的内容,经过精心策划和总结,向你提供真正有效的数据领袖使命、愿景、战略和工具箱方面的新鲜、明确和实用的观点。

Leave a Reply

Your email address will not be published. Required fields are marked *