データ系エンジニアの職種の違い

はじめに

自分は Martin Kleppmann が言うデータ指向アプリケーションやそれを実現する周辺の技術領域が好きで、業務としてそのような領域のエンジニアリングを引き続きやっていけたらなと思っています。 世の中には関連する職種の求人が多々ありますが、同じ名前のロールでも職務内容がコンテキストによって異なることが多かったりします。 ここではそれぞれの職種の違いについて自分の観点からまとめます。

1. データエンジニア

求人を眺めていると、データエンジニアは企業によって割と役割がぶれるので分けて説明します。

1-1. 小さめの事業会社のデータエンジニア

まずは、小さめの事業会社のデータ分析基盤の構築・運用をするロールです。 ここでは ETL 処理の実装・運用のほかに、各種ツールを使ったデータ基盤の構築・運用知識やクラウド上のアプリケーション構築の知識などが求められることが多いです。 さらには、データ分析業務や機械学習アプリケーションの構築もそこに含まれる場合もあります。

1-2. 大きめの事業会社のデータエンジニア

一方、例えば保険系や金融系なんかの大きめのトラディショナルな企業ではより職責が狭くなって、複雑な ETL 処理をコード化したり、そのトラブルシュートをしたりするような職種であることが多いです(以前 Apple もデータエンジニアの求人を出していましたが、話を聞いたところそんなそんな感じでした)。 このような企業では小さめの事業会社で求められる能力とは異なり、インフラやツールセットの知識よりも ETL の実装そのものに比重が置かれます。

1-3. コンサル企業のデータエンジニア

さらに、コンサルサービスを提供する企業でもデータエンジニアの求人を募集していることがあります。 上記二つのケースがインハウスの社内システムに関するロールである一方、こちらはお客様のデータ処理基盤の面倒をみるロールとなります。 上記のプロダクト向かいのロールと違い、お客様向かいになるので、求められる能力は技術知識以外にもお客様と関係性を維持しながらプロジェクトを運用していく能力が求められます。

2. ソフトウェアエンジニア(データプラットフォーム、MLOps)

こちらは、自社のデータ処理関連プラットフォームをソフトウェアエンジニアとして開発していくロールです。 社内外向けのサービスを開発するロールとなり、バリバリにコードを書く能力が求められます。 (現職のスマートニュースも自分が入社したころはデータエンジニアとして求人をしていましたが、現在はこちらの肩書きで募集しています) MLOps エンジニアとなる場合は、特徴量エンジニアリングなどではデータ処理基盤と重なる部分はありますが、効率的なトレーニングやサービングなどの機械学習ドメインに関する知見が特に重視されるでしょう。

4. ソリューションアーキテクト(データ処理関連プロダクト)、ビックデータコンサルタント

テックベンダーかコンサル企業で、ソリューションかコンサルサービスを提供し顧客サポートをするロールとなります。 コンサル企業のデータエンジニアと同様に、顧客向かいのロールで、技術的知見以外の能力が求められます。

5. データアーキテクト

そんなにポジションが存在する職種ではなく、データアーキテクトは企業によって役割は異なることが多いです。 基本的にはインハウスのシステムのデータ設計やプロジェクトリードなんかが主な業務だと思います(ドメイン知識が必要なことが多い)。 一方で、ソリューションアーキテクト的なロールであることもあります。

6. SRE

インフラ知識のあるエンジニアは、SRE としても働いて良いかもしれません。データエンジニアのロールを用意せず、SRE やインフラエンジニアがデータ基盤をインフラの一部として面倒を見るようなステージの企業は多いと思います。 この場合、データ基盤技術領域以外の SRE 的なインフラ的な知見が求められます。

まとめ

上記にあげたものの他にも、Analytics Engineer や Database Reliability Engineer、Data Reliability Engineer だったり、企業ごとに独自の役割を付与してロールにしていることがあります。 これは、この問題領域におけるロールが比較的新しく、それぞれの組織の運用の形に合わせて手探りで役割を与えていることによるものでしょう。

キャリア面に関しては、データエンジニアを続けていくと、将来その先はどうなるだろうかという話はあります。 IC でいることに飽きてマネージメントに挑戦したくなった場合、データエンジニアはわりと条件が厳しい印象があります。 BigQuery 含むマネージドサービスの勃興で企業規模に対して必要なインハウスのエンジニア数が少なくて済むようになっており、小さな企業ではマネージャーを置くまでチーム規模を大きくする必要がないからです。 一方、事業規模が大きくなりデータエンジニアが多めに必要な事業体を選ぶとなると、小さな事業体とは必要とされる能力も異なってきて、ゲームが変わってきます。

DX 文脈もあり、関連技術の重要性は増すでしょう。キャリアの方向性を考えるためにも、市場でどんなロール・能力が求められているか、自分はどの方向性に向かいたいかを継続的に確認していくことは重要かと思います。