0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ソフトウェアエンジニアの職種と歴史まとめ

0
Posted at

近年AIの一般化でAIエンジニアという職種が生まれましたが、今後も開発環境の変化に伴い新たなエンジニア職種が生まれていくと考えられます。
現在ソフトウェア開発に関するエンジニア職にはどういったものがあるの整理してみました。

※本記事はAIの支援をもとに整理しています。内容の正確性には配慮していますが、誤りや補足があればぜひご指摘ください。


1. インフラ・運用系

SRE(Site Reliability Engineer/サイト信頼性エンジニア)

  • 役割: システムの可用性・レイテンシ・パフォーマンス・効率性を維持・向上させる。ソフトウェアエンジニアリングのアプローチで運用課題を解決し、手作業(トイル)の自動化、SLI/SLO/エラーバジェットの管理、インシデント対応、キャパシティプランニングを担う。
  • 話題になった時期: 2003年にGoogleでBen Treynor Slossが7人のチームを率いて創設。2016年にO'Reillyから『Site Reliability Engineering』が出版され、業界全体に広まった。Facebook(2010年頃)、Netflix・Uber(2016年頃)などが採用し、現在では企業規模を問わず普及。

Platform Engineer(プラットフォームエンジニア)

  • 役割: 開発者向けの内部開発プラットフォーム(IDP)を設計・構築・運用する。CI/CDパイプライン、インフラのセルフサービス化、開発環境の標準化などを通じて、開発者の認知負荷を軽減し生産性を向上させる。
  • 話題になった時期: NetflixやAmazonが先駆的にセルフサービス開発者ポータルを構築。2019年の書籍『Team Topologies』でプラットフォームチームの概念が体系化された。Gartnerが2022年・2023年の戦略的テクノロジートレンドに選出し、急速に注目度が上昇。

Cloud Engineer(クラウドエンジニア)

  • 役割: AWS・GCP・Azureなどのクラウド環境の設計・構築・運用・最適化を担当。IaC(Infrastructure as Code)によるインフラ管理、コスト最適化、セキュリティ設定などを行う。
  • 話題になった時期: 2006年のAWS開始以降に徐々に登場。2010年代前半にクラウド移行が本格化する中で、独立した職種として確立。

Network Engineer(ネットワークエンジニア)

  • 役割: ネットワークインフラの設計・構築・運用・障害対応を担当。ルーティング、スイッチング、ファイアウォール、VPN、ロードバランサーの管理など。
  • 話題になった時期: 1990年代からインターネットの普及とともに存在する伝統的な職種。Cisco認定資格(CCNA等)の登場(1998年)で職種として広く認知された。

Database Engineer / DBA(データベースエンジニア/管理者)

  • 役割: データベースの設計・構築・チューニング・バックアップ・リカバリ・セキュリティ管理を担当。パフォーマンス最適化やデータ移行も行う。
  • 話題になった時期: 1980年代のRDBMS普及期から存在する伝統的な職種。Oracle、SQL Serverなどの商用DBの成長とともに定着。

2. 開発系

SWE(Software Engineer/ソフトウェアエンジニア)

  • 役割: ソフトウェア製品やサービスの設計・実装・テスト・保守を担当する、最も基本的かつ汎用的なエンジニア職種。
  • 話題になった時期: 1960年代に「ソフトウェアエンジニアリング」という概念が提唱され、NATOの1968年の会議で用語として定着。職種としてはIT産業の発展とともに常に存在。

Frontend Engineer(フロントエンドエンジニア)

  • 役割: ユーザーが直接触れるUI/UXの開発を担当。HTML/CSS/JavaScriptを中心に、React・Vue・Angularなどのフレームワークを用いてWebアプリケーションのクライアントサイドを構築する。
  • 話題になった時期: 2010年代前半にSPA(Single Page Application)とモダンJSフレームワーク(Angular 2010年、React 2013年、Vue 2014年)の台頭とともに、バックエンドと明確に分離した専門職として確立。

Backend Engineer(バックエンドエンジニア)

  • 役割: サーバーサイドのロジック、API設計、データベース連携、認証・認可、パフォーマンス最適化などを担当。
  • 話題になった時期: フロントエンドとの分業が明確化した2010年代に、独立した職種名として広く使われるようになった。それ以前はサーバーサイド開発者などと呼ばれていた。

Full-stack Engineer(フルスタックエンジニア)

  • 役割: フロントエンドからバックエンド、場合によってはインフラまで幅広い技術領域をカバーして開発を行う。
  • 話題になった時期: 2010年代前半にスタートアップ文化の中で注目された。Facebookが2010年頃に「フルスタック開発者」を積極的に求人し、用語が普及。

Mobile Engineer(モバイルエンジニア)

  • 役割: iOS(Swift/Objective-C)やAndroid(Kotlin/Java)向けのモバイルアプリケーション開発を担当。Flutter・React Nativeなどのクロスプラットフォーム開発も含む。
  • 話題になった時期: 2008年のApp Store、2008年のAndroid Marketの開始以降に急速に需要が増加し、専門職として確立。

Embedded Engineer(組み込みエンジニア)

  • 役割: ハードウェアに組み込まれるソフトウェア(ファームウェア)の開発を担当。IoTデバイス、自動車、医療機器、家電などのリアルタイムシステムを扱う。
  • 話題になった時期: 1970年代のマイクロプロセッサの登場以来存在する伝統的な職種。IoTの普及(2010年代後半)で再び注目度が上昇。

3. 品質・テスト系

QAE(Quality Assurance Engineer/品質保証エンジニア)

  • 役割: ソフトウェアの品質を保証するためのテスト計画・実行・不具合管理を担当。テスト設計、手動テスト、自動テストの導入・運用、リリース判定への参画などを行う。
  • 話題になった時期: ソフトウェアテストの概念自体は1950年代から存在。QAEとしての専門職は1990年代のソフトウェア品質管理プロセス(ISO 9001、CMMなど)の普及とともに確立。

SET(Software Engineer in Test/テストソフトウェアエンジニア)

  • 役割: テストの自動化に加え、テスト容易性(testability)の向上、テストインフラの構築、CI/CDパイプラインへのテスト組み込みなどを担当。Googleが提唱した呼称。
  • 話題になった時期: 2012年にGoogleの書籍『How Google Tests Software』で広く紹介された。Google社内では2000年代後半から使われていた。

SDET(Software Development Engineer in Test/テスト開発エンジニア)

  • 役割: 開発スキルとテストスキルの両方を持ち、テスト自動化フレームワークの構築、テストコードの開発、テストインフラの整備を行う。純粋なQAよりも開発寄りの役割。
  • 話題になった時期: Microsoftが2000年代前半(2005年頃)に用語を考案。その後Amazon、Google、Appleなどの大手テック企業が採用し、業界全体に広まった。

4. 開発生産性・開発者体験系

DPE(Developer Productivity Engineer/開発生産性エンジニア)

  • 役割: ビルド時間の短縮、テストの安定化、CI/CDパイプラインの高速化、フレーキーテストの撲滅など、開発者の生産性を阻害するボトルネックをエンジニアリングで解決する。データ分析とアクセラレーション技術を活用し、開発フィードバックサイクルを改善する。
  • 話題になった時期: Gradle社のCEO Hans Dockterが2020年代初頭にDPEの概念を体系化・推進。Netflixが2016年頃からDeveloper Productivityチームを編成。2022年以降、DPEは独立した分野として急速に認知が広がった。

DXE(Developer Experience Engineer/開発者体験エンジニア)

  • 役割: 開発者が日常的に使うツール、ドキュメント、オンボーディングプロセス、開発環境の体験全体を改善する。DPEと重なる部分が多いが、より「体験(Experience)」に焦点を当てる。
  • 話題になった時期: 2020年代に「Developer Experience(DX)」が業界のバズワードとなり、専門職として登場。DPEとほぼ同時期に注目が高まった。

5. 顧客対応・フィールド系

FDE(Field Development Engineer/フィールド開発エンジニア)

  • 役割: 顧客先で技術的な課題解決やシステムの導入支援を行う。顧客のフィードバックを開発チームにフィードバックする橋渡し役でもある。
  • 話題になった時期: 半導体業界やネットワーク機器メーカーでは1990年代から存在。ソフトウェア業界ではクラウドサービスの普及とともに2010年代に増加。

Solutions Engineer(ソリューションエンジニア/プリセールスエンジニア/技術営業)

  • 別名: プリセールスエンジニア、テクニカルセールス、技術営業、ソリューションアーキテクト。日本のSIer文化では「技術営業」が最も通りが良い。
  • 役割: プリセールスの段階で顧客の技術的な要件を理解し、自社製品・サービスによる解決策を提案・デモする。セールスチームと開発チームの間をつなぐ。
  • 話題になった時期: SaaS企業の成長とともに2010年代に需要が急増。特にB2B SaaS領域で重要な職種となった。

Sales Engineer / SE(セールスエンジニア)

  • 役割: 営業活動における技術的なサポートを担当。顧客への技術説明、PoC(概念実証)支援、RFP対応などを行う。
  • 話題になった時期: ITベンダーでは1980年代から存在する伝統的な職種。日本ではSIer文化の中で特に定着している。

CRE(Customer Reliability Engineer/顧客信頼性エンジニア)

  • 役割: 顧客のシステム信頼性を向上させるため、SREの手法を顧客向けに適用する。顧客のSLO策定支援、運用改善のコンサルティング、障害対応支援を行う。
  • 話題になった時期: Googleが2016年にCREプログラムを発表。SREの概念を顧客支援に拡張した職種として注目された。

6. データ・ML系

Data Engineer(データエンジニア)

  • 役割: データパイプラインの設計・構築・運用を担当。ETL/ELT処理、データウェアハウス・データレイクの構築、データ品質管理、リアルタイムデータ処理基盤の整備を行う。
  • 話題になった時期: ビッグデータの潮流とともに2010年代前半に独立した職種として確立。Hadoop(2006年)やSpark(2014年)の普及が背景。

ML Engineer(Machine Learning Engineer/機械学習エンジニア)

  • 役割: 機械学習モデルの設計・学習・デプロイ・運用を担当。研究(Data Scientist)と本番システム(SWE)の間をつなぎ、MLモデルのプロダクション化を推進する。
  • 話題になった時期: 2015年前後のディープラーニングブーム(TensorFlow公開:2015年、PyTorch:2016年)とともに急速に需要が拡大。

MLOps Engineer(ML基盤エンジニア/機械学習プラットフォームエンジニア)

  • 別名: ML基盤エンジニア、機械学習プラットフォームエンジニア。「MLOpsエンジニア」もそのまま定着しつつあるが、実務の中核は機械学習基盤の構築・運用であり「ML基盤エンジニア」が実態に近い。将来的にはMLプラットフォームエンジニアに収斂するとの見方もある。
  • 役割: 機械学習モデルのライフサイクル管理を自動化・効率化するインフラとプロセスを構築。モデルのバージョン管理、学習パイプライン、モニタリング、再学習の自動化を担当。
  • 話題になった時期: 2018年〜2019年頃に「MLOps」という用語が登場し、2020年代に入って専門職として定着。DevOpsの考え方をML領域に適用したもの。

AI Engineer(AIエンジニア)

  • 役割: LLM(大規模言語モデル)やGenerative AIを活用したアプリケーションの開発を担当。プロンプトエンジニアリング、RAG構築、AIエージェント開発、モデルのファインチューニングなどを行う。
  • 話題になった時期: 2023年のChatGPT普及以降に急速に出現した新しい職種。2024年〜2025年にかけて求人が急増している。

7. セキュリティ系

Security Engineer(セキュリティエンジニア)

  • 役割: システムやネットワークのセキュリティ対策全般を担当。脆弱性診断、セキュリティ監視、インシデント対応、セキュリティポリシーの策定・運用を行う。
  • 話題になった時期: 2000年代のサイバー攻撃増加とともに需要が拡大。CISSP認定(1994年開始)の普及も職種確立に貢献。

AppSec Engineer(Application Security Engineer/アプリケーションセキュリティエンジニア)

  • 役割: アプリケーションレベルのセキュリティに特化。セキュアコーディングの推進、SAST/DAST/SCA導入、脅威モデリング、開発チームへのセキュリティ教育を行う。
  • 話題になった時期: 2010年代後半にDevSecOpsの概念とともに注目が高まった。OWASP Top 10の広まり(2003年初版)が背景にある。

8. DevOps・CI/CD系

DevOps Engineer(CI/CD・自動化基盤エンジニア)

  • 別名: CI/CDエンジニア、デプロイ自動化エンジニア。DevOps自体は文化・手法であり本来は職種名ではないが、「DevOpsエンジニア」が求人では広く使われている。近年はPlatform Engineerとして再定義されるケースも増えている。
  • 役割: 開発と運用の橋渡しとして、CI/CDパイプラインの構築・運用、IaC、コンテナオーケストレーション、モニタリング基盤の整備を行う。開発プロセスの自動化と効率化を推進する。
  • 話題になった時期: DevOpsの概念は2008〜2009年にPatrick Deboisらによって提唱され、2009年にベルギーで初のDevOpsDaysが開催された。2010年代中盤から「DevOps Engineer」という職種名での求人が急増。

Release Engineer(リリース管理エンジニア)

  • 別名: リリースマネージャー、構成管理エンジニア、デプロイ管理エンジニア。「リリース管理」と言えば、ビルドからデプロイまでの配布プロセスを管理する役割として伝わりやすい。
  • 役割: ソフトウェアのリリースプロセスを管理・自動化する。ビルドシステムの管理、リリースブランチ戦略の策定、デプロイメントパイプラインの構築・運用を行う。
  • 話題になった時期: 大規模ソフトウェア開発では1990年代から存在。Googleの『Site Reliability Engineering』書籍(2016年)でリリースエンジニアリングの章が設けられ、改めて注目された。

Build Engineer(ビルドエンジニア)

  • 役割: ソフトウェアのビルドシステムの構築・最適化・保守を担当。ビルド時間の短縮、依存関係の管理、ビルド環境の標準化を行う。
  • 話題になった時期: 大規模プロジェクト(特にC/C++)では2000年代から存在。CI/CDの普及に伴い、DevOpsやDPEの役割に吸収される傾向にある。

9. その他の専門職

Chaos Engineer(カオスエンジニア)

  • 役割: 本番環境に意図的に障害を注入し、システムのレジリエンス(回復力)を検証する。障害シナリオの設計・実行、システムの弱点の発見と改善を推進する。
  • 話題になった時期: Netflixが2010年にChaos Monkeyを開発し、2011年にSimian Armyとして発展。2012年にオープンソース化され、業界に広まった。2016年にGremlin社が設立され、エンタープライズでの採用が加速。

Observability Engineer(監視基盤エンジニア/可観測性エンジニア)

  • 別名: 監視基盤エンジニア、可観測性エンジニア。「オブザーバビリティ」は日本語に定訳がなく、実務的には「監視基盤エンジニア」が最も伝わりやすい。厳密にはモニタリング(監視)とオブザーバビリティ(可観測性)は異なる概念だが、日本語の通りの良さを重視するなら「監視基盤エンジニア」が適切。
  • 役割: システムの可観測性を向上させるために、ログ・メトリクス・トレースの収集・分析基盤を構築・運用する。OpenTelemetryなどの標準を活用し、障害の迅速な検出と原因特定を支援する。
  • 話題になった時期: 2018年頃から「Observability(可観測性)」がモニタリングの発展形として注目され始めた。分散システムの複雑化とOpenTelemetryプロジェクト(2019年〜)の台頭が背景。

CorpIT / Corporate Engineer(社内IT/コーポレートエンジニア)

  • 役割: 社内の情報システム(ID管理、デバイス管理、SaaS導入、ネットワーク、セキュリティ)を担当。従来の情報システム部門の役割をエンジニアリングのアプローチで遂行する。
  • 話題になった時期: 「Corporate Engineer」という呼称はMercariなどのテック企業が2018年頃から使用し始めた。従来の「情シス」をエンジニアリング志向に再定義した職種名。

時系列サマリー

年代 主な出来事
1980年代〜 DBA、Network Engineer、Sales Engineerなどの伝統的職種が存在
1990年代 QAE、Embedded Engineerなどが専門職として確立
2003年 GoogleでSREが誕生
2005年頃 MicrosoftがSDETの概念を考案
2006年 AWS開始、Cloud Engineerの萌芽
2008〜2009年 DevOpsムーブメントの誕生(DevOpsDays初開催)
2010〜2012年 Chaos Engineering登場(Netflix)、SET紹介(Google)
2010年代前半 Frontend/Backend/Full-stack Engineerの分化、Data Engineerの台頭
2015〜2016年 ML Engineer需要拡大、SRE書籍出版で一般普及、CRE登場
2018〜2019年 Observability Engineer、MLOps Engineer、AppSec Engineerが台頭
2019〜2022年 Platform Engineerが急速に注目(Team Topologies、Gartnerトレンド入り)
2020〜2022年 DPE/DXEが専門分野として確立
2023年〜 AI Engineerが新職種として急速に出現

補足:職種と役割の重なりについて

本記事で紹介している職種は、厳密に排他的なものではなく、
企業や組織によって役割が重複・混在することが一般的です。

例えば以下のような関係があります:

  • SRE / DevOps / Platform Engineer は大きく領域が重なる
  • ML Engineer と AI Engineer の境界は現在も変化している
  • QAE / SDET は組織によっては Software Engineer に統合される

そのため、本記事では「代表的な役割の整理」として俯瞰的にまとめています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?