奈飞Netflix两年数据工程经验 - XInran

22-10-19 banq

首先,我想讨论几个数据工程的具体方面:可见性、协作和多样性(技能)。

可见性
鉴于数据工程工作的性质,在许多公司,数据工程经常生活在数据科学的阴影之下。
因此,数据工程团队的可见性往往是一个问题,直接影响到数据工程师的士气和生产力。
在Netflix,数据工程团队被认为是数据组织中的一个重要支柱。
我一直在思考:是什么造就了一个成功而健康的数据工程团队?

以下是我从Netflix学到的东西:

1、数据工程团队独立于数据科学团队。
组织结构很重要,非常重要。当你的数据工程师直接向数据科学经理报告时,数据工程师工作的优先级将99%由数据科学需求驱动。其他长期受益的重要工作,如工具或基础设施创新,往往会被取消优先级。当你有独立的数据工程团队时,自然会有更多的背景分享和对共同数据挑战的讨论,因此有动力以可扩展的方式解决这些问题。

2、数据工程论坛
在Netflix,我们有许多论坛,在那里我们分享和庆祝数据工程工作。举办这样的论坛不仅提供了一个庆祝数据工程社区的平台,而且还鼓励团队进行创新和采用最佳实践。我承认并不是每个人都喜欢做演讲,但演讲仍然是提高你工作知名度的最佳方式之一。

3、伙伴关系
建立伙伴关系是创建一个健康和成功的数据工程团队的关键。作为Netflix的数据工程师,你的合作伙伴包括PM、数据科学家、后端工程师和算法研究员。数据工程师和他们的经理都有责任培养良好的伙伴关系。

与伙伴团队建立界限和信任都很重要,以下是原因:

  • 边界意味着能够对请求说不。它有助于避免数据工程师的倦怠。它还可以帮助项目管理人员更好地规划项目,在承诺时间表之前首先了解数据工程师的带宽。
  • 缺乏信任总是会导致不好的结果。与合作伙伴建立信任会让你的工作生活变得更加美好:互动减少了交易性,人们会更加理解并更乐于给予建设性的反馈。
  • 在Netflix工作期间,当我的名字和我的团队因我对项目的贡献而被明确地叫出来时,我总是很感激。被人称赞,成为更大的团队努力的一部分,这种感觉很好。


真正的协作
在我以前的团队中,"团队合作 "意味着几个人向同一个经理报告,每个人执行自己的任务。加入Netflix后,我了解到在一个数据工程团队中是如何进行有意义的团队合作的。

虽然每个团队成员支持不同的子领域,但我们仍然每天积极地相互协作。

1、团队会议
我们的团队每周都会开会讨论最重要的话题,例如,最近的一个待命问题以及我们如何在未来预防它,即将推出的产品功能会影响到许多数据管道,对早期系统设计的反馈,或跨领域共享的共同数据挑战。每个季度,我们还利用团队会议进行状态更新和项目规划。

2、深入的代码视图
我们会问为什么使用这个Iceberg事实表而不是另一个,这个Spark内存配置有什么必要,或者质疑这个逻辑是否应该嵌入我们的数据集而不是在上游/下游,等等。我们的代码审查是一个在团队中学习和分享知识的好方法,它真正显示了我们奉献了时间来帮助对方成功。(在我写这一段的时候,我意识到我应该做更多的代码审查)。

3、帮助和请求帮助
我们大部分的团队合作实际上都发生在线下。如果你在我们的团队频道中,你会经常看到这样的对话。"我正在做XYZ的工作。有没有人有关于ABC的背景?","这里有一个正在进行的平台问题,可能会影响到我们的系统......","团队--我有一个家庭紧急情况,有人能帮忙代班吗?","有什么我可以帮助的XYZ吗?"

一方面,团队合作会产生巨大的成果。另一方面,参与各种团队讨论和代码视图会导致不断的上下文切换,会让人感到疲惫。我有时会因为被太多的Slack线程提示而感到焦虑和压力,不得不完全关闭Slack以获得低头时间。

数据工程师=X战警
Netflix的数据工程师就像X-Men,因为每个人都有自己独特的超能力(技能组合),对不同的恶棍(数据问题)有效。因为每个领域的数据问题都不同,每个团队都建立了自己的面试小组,以便找到最合适的数据工程师来解决这些问题。
例如,财务报告所需的数据工程技能与个性化的数据工程技能有很大不同。此外,领导们授权并鼓励数据工程师们用优势发挥影响,而不是强迫每个人都擅长一切。

此外,我想分享一下我对Netflix文化的看法,以及它们是如何反映在数据工程团队中的:

详细点击标题

1