- 更新日 2024.10.17
- カテゴリー インフラ構築
開発系エンジニアとインフラ系エンジニアの違い・それぞれの役割を解説【2024年最新版】
DX(デジタルトランスフォーメーション)を推進するためにも、「自社のIT部門を強化したい」「システム開発に対応できるIT部門を立ち上げたい」と考えている企業経営者・IT担当者の方であれば、以下のようなことを知りたいはず。
・エンジニアの職種は大きく開発系・インフラ系に分類できる?
・開発系・インフラ系エンジニアそれぞれの役割は?
・直接開発に携わらないIT関連職とは?どんな役割を担う?
そこで本記事では、一般にはわかりにくいITエンジニアの役割や職種を、開発系・インフラ系・IT関連職にわけて徹底解説!ITエンジニアを採用・獲得する際のポイントも紹介していきます。
※自社でシステム開発遂行が難しい方はシステム幹事にお問い合わせください。予算や目的などをヒアリングした上で、御社に最適なシステム開発会社を選定します。相談料などはかかりません。
システム開発プロジェクトに含まれる業務範囲
大きく開発系・インフラ系に分類できるITエンジニアや、IT関連職の役割・職種を理解するためには、システム開発プロジェクトがどのような業務で構成されているのかを理解することが先決です。
システム開発の手法には、アジャイル型を含めたいくつかの種類がありますが、以下の図は、日本でもっとも採用されている「ウォーターフォール型システム開発」を例に、システム開発の業務範囲を整理したものです。システム開発プロジェクトを遂行するには、さまざまなプロセスが必要なことがお分かりでしょう。
これらの各プロセスは、要件定義を含む「企画フェーズ」、設計・開発・テストを含む「システム開発フェーズ」、システム稼動後の「運用・保守フェーズ」に分類できます。さらに、システム開発の一部として同時進行する「インフラ構築」、全体を管理していく「プロジェクト管理」を含んだものが、システム開発プロジェクトの全体像です。
システム開発手法の詳細は、下記記事をご参照ください。
関連記事:システム開発の手法4つの特徴・メリット・デメリットを解説!【比較表付き】
開発系エンジニアとインフラ系エンジニアの役割は異なる
システム開発プロジェクトの全体像のうち、設計・開発・テストを含むシステム開発フェーズ・全体的なプロジェクト管理を担当するのが、開発系エンジニアの役割です。
インフラ系エンジニアの役割は、サーバ/ネットワークを含めたインフラ構築、ハードウェア/ソフトウェアを含むシステムの運用・保守フェーズを担当すること。開発系エンジニアが主にソフトウェアを、インフラ系エンジニアが主にハードウェアを担当すると考えればわかりやすいでしょう。
組織・プロジェクトによって役割・職種は曖昧
ただし、システム開発会社や企業IT部門などの組織の違い、システム開発プロジェクトの違いによって、開発系・インフラ系エンジニアの役割はオーバーラップすることも少なくありません。これは、IT技術の進化・多様化が進む現代では、開発に携わるエンジニアの役割を明確に線引きすることが難しくなっているからです。エンジニアの職種に関しても同様。職種名が同じでも役割が違うことは珍しくなく、インフラを含めたシステム開発に横断的に対応できる「フルスタック」と呼ばれるエンジニアも存在します。
こうした前提を踏まえたうえで、開発系・インフラ系、それぞれにどのような職種のエンジニアがいるのか。一般的な事例を次章より紹介していきます。職種名は多岐に渡りますが、現場での役割を明確にするためというよりは、エンジニアを募集する際に「どんな仕事なのか?」をわかりやすくするための便宜上の名称だと考えておけばいいでしょう。
開発系エンジニアの職種
開発系エンジニアの主な役割は、さまざまなプログラミング言語を活用して「システム開発」すること、システム開発全体を「プロジェクト管理」することです。ただし、一部「企画」「インフラ構築」「運用・保守」に関連する業務も担当します。
システム開発のプログラミング言語については、下記記事も参考にしてください。
関連記事:システム開発の主要言語を解説!業務アプリケーションによく使われている言語は?
システムエンジニア(SE)
システムエンジニア(SE)は、システム開発に携わるエンジニアという本来の意味を持つ和製英語です。具体的には、要件定義を含む「企画」、設計・実装・テストを含む「システム開発」、トラブル対応を含む「運用・保守」など、すべての工程に携わるエンジニアのことをSEと呼びます。
キャリアとしてはテスト工程や運用・保守からスタートし、経験を積むにしたがって実装・設計・要件定義を任されます。やがて、全体像が把握できるスキルを身につけたSEは、プロジェクトマネージャーとして「プロジェクト管理」を担当するようになるのが一般的なSEのキャリアです。
しかし、これでは役割があまりにも曖昧であるため、多くの現場では「システム開発の主に上流工程を担当するエンジニア」という意味でSEという言葉を使っているようです。「要件定義」「設計」を任せられる人材が欲しい場合は「システムエンジニア(SE)」、プロジェクト管理を任せられる人材が欲しい場合は「プロジェクトマネージャー(PG)」で募集するといいでしょう。
システムエンジニアの詳細は、下記記事をご参照ください。
関連記事:SEの開発に関わる業務内容!求めるべきスキル・必要な年収(人件費)を解説
プログラマー(PG)
プログラマー(PG)とは、文字通りプログラミングを主に担当するエンジニアのこと。具体的には、システム開発の実装(プログラミング / コーディング)工程を担当するエンジニアです。一般的には、テスト工程を担当するエンジニアを「テスター」として分類する現場が多いようですが、プログラマーがテスターを兼ねることもあります。
アプリケーションエンジニア
アプリケーションプログラムの開発に特化したエンジニアを、アプリケーションエンジニアと呼ぶ場合もあるようです。特にシステムエンジニアとの相違点があるわけではありませんが、モバイルアプリ / デスクトップアプリなどの開発に特化したプロジェクトを担当するエンジニアを指す場合が多いようです。
アプリケーション開発については、下記記事をご参照ください。
関連記事:アプリケーション開発の流れ|アプリの種類・仕組み、開発に必要なものも一挙解説
フロントエンドエンジニア
フロントエンドエンジニアとは、Webアプリ / Webシステム開発のプロジェクトで、フロントエンド(ユーザーの目に触れるインターフェース)開発を担当するエンジニアのこと。HTML / CSS / JavaScriptなど、Webサイト制作と同様の知識・スキルを持つエンジニアです。
サーバサイドエンジニア(バックエンドエンジニア)
サーバサイドエンジニア(バックエンドエンジニア)とは、フロントエンドエンジニアとは逆に、Webアプリ / Webシステムのバックエンド(ユーザーの目に触れないアプリケーション)開発を担当するエンジニアのこと。Webアプリ / Webシステムのバックエンドでよく利用されるPerl / PHP / Ruby / Pythonなどの知識・スキルを持つエンジニアです。
組み込み系エンジニア
組み込み系エンジニアとは、家電製品や自動車、IoT機器などに実装される組み込みシステム開発に携わるエンジニアのこと。C / C++などのプログラミング知識・スキルのほかに、RTOS(Real Time Operating System)やハードウェアの知識など、一般的なITシステム開発とはやや異なるスキルを持つエンジニアです。
※RTOS:要求される期限までに処理が実行できるOS
組み込みシステム開発については、下記記事をご参照ください。
関連記事:組み込みシステム開発とは?IoTとの関係・高機能化が進む業界の動向を解説
インフラ系エンジニアの職種
インフラ系エンジニアの主な役割は、サーバ / ネットワークを含む「インフラ構築」、システム稼動後の「運用・保守」ですが、近年では開発とシームレスに連携していく考え方「DevOps」という概念も登場しています。このため、インフラ系エンジニアでも、開発系とオーバーラップした役割を担うことも多くなりました。
インフラエンジニア
インフラ系エンジニアのメインとなる業務領域「インフラ構築」には、ソフトウェア / ハードウェア両面でのサーバ / ネットワーク構築が含まれます。このインフラ構築を包括的に担当する知識・スキルを持つエンジニアが「インフラエンジニア」です。
インフラ構築だけでなく、システムがサービスインした後の運用・保守業務もインフラエンジニアの仕事。ただし、インフラ構築(上流工程)と運用・保守(下流工程)は明確に役割分担されている場合がほとんどです。
サーバエンジニア
サーバエンジニアとは、インフラ構築のなかでもサーバの設計 / 構築 / 運用・保守に特化した業務を担当するエンジニアのこと。オープン系システム / Web系システムで使われる、Linux / Windows / UNIXなどのOS、Webサーバ / アプリケーションサーバなどのミドルウェアの知識・スキルを持つエンジニアです。
ネットワークエンジニア
ネットワークエンジニアとは、インフラ構築のなかでもネットワークの設計 / 構築 / 運用・保守に特化した業務を担当するエンジニアのこと。コードを書くことはほとんどありませんが、要求されるスループット(機器が単位時間あたりに処理可能なデータ量)を実現できる設計力、ハードウェアの知識・スキルを持つエンジニアです。
データベースエンジニア
データベースエンジニアとは、データベースの設計 / 構築 / チューニングに特化した業務を担当するエンジニアのこと。サーバに関連する業務領域であるため、インフラ系エンジニアに含めていますが、システム開発プロジェクトのなかでも「アプリケーションと密接な関わりが必要」な業務です。そのため、開発系エンジニアがSQL言語(データベース管理システム上でデータベースをコントロールする言語)をマスターして、データベースエンジニアを兼ねる場合も珍しくありません。
セキュリティエンジニア
セキュリティエンジニアとは、文字通り、システムのセキュリティを確保するための要件を検討し、セキュリティシステムの設計 / 実装 / テストを担当するエンジニアのこと。ソフトウェア / ハードウェアを含め、ファイアウォールやIDS / IPS、WAFなどの知識を持ち、適切な設計のできるスキルを持つエンジニアです。
カスタマーエンジニア
カスタマーエンジニアとは、サーバ / ネットワークなどのハードウェア設置や、サービスイン後の運用・保守業務を担当するエンジニアのこと。近年では、AWS / GCPなどのIaaS / PaaSを利用してインフラ構築することが増えたため、遠隔保守を含めたクラウドの知識を持つエンジニアが増えています。
SRE(Site Reliability Engineering)/ DevOps
エンジニアの職種ではありませんが、プロジェクトによってはSRE(Site Reliability Engineering)/ DevOpsを担当するエンジニアを配置する場合があります。
SREとは、サービスやシステムの信頼性を高めていくため、積極的にソースコードを書き換えていくアプローチのこと。DevOpsとは、開発側と運用側が連携してシステムを改善していく概念・アプローチのこと。どちらも近年になって定着しつつある考え方であり、それぞれにエンジニアをアサインするプロジェクトが増えています。
※自社でシステム開発遂行が難しい方はシステム幹事にお問い合わせください。予算や目的などをヒアリングした上で、御社に最適なシステム開発会社を選定します。相談料などはかかりません。
IT関連職
IT関連職とは、システム開発やインフラ構築に直接携わらないものの、組織やプロジェクトに応じて必要なポジションを担う人材・エンジニアのことです。参考までに、どのような職種があるのか、把握しておくといいでしょう。
下記で紹介するIT関連職を採用する際は、社内にいるエンジニア・プログラマーを採用面接に同席させ、直接採用業務に携わらせるといいでしょう。人事担当者のみでは、システム開発関連の知識や適正人材の見分けが難しいためです。
データサイエンティスト
データサイエンティストとは、統計学にもとづき、膨大なデータのなかから課題を解決する価値を見出し、提供する専門家のこと。機械学習 / ディープラーニングによるAI開発に取り組む企業が急増するなか、注目の高まる職種です。
ITシステム開発においては、データサイエンティストとしての知識・スキルだけでなく、Pythonによるプログラミングやフレームワークの知識・スキルを持つ人材が求められる傾向にあります。
AI開発については、下記記事をご参照ください。
関連記事:AI開発とは?開発の手法・手順・プログラミング言語・フレームワークを含む基本を解説!
品質管理
開発するシステム / サービスの品質保証を担当する職種です。開発チームとは異なる、ユーザーの立ち位置で各工程をテストし、品質に問題がないかどうかをチェックします。そのため、システム開発工程をひと通り経験したSEが担当する場合が多いようです。
開発系・インフラ系人材を採用する際のポイント
開発系・インフラ系といっても、役割の異なるさまざまな職種のエンジニアが存在することが把握できたと思われます。しかし、「自社のIT部門を強化したい、システム開発に対応できるIT部門を立ち上げたい」と検討する方にとっては、余計に悩みが深まったかもしれません。そこで以下からは、開発系・インフラ系人材を採用する際の、ヒントとなるポイントをいくつか紹介していきます。
職種・スキルレベルに応じたITエンジニアの年収を用意しよう
IT部門の強化、新規立ち上げ、いずれの方向性であっても、必要になるのは人材であり人件費です。まずは、スキルレベル・職種に応じたエンジニアの平均年収を知り、人件費の目処を立てておくことがポイント。少し古いデータですが、以下は2017年に経済産業省が調査した「IT関連産業の給与等に関する実態調査結果」からの抜粋です。
経産省では、IT人材のスキルレベルを「新人・初級」のレベル1から、「国際的に著名」なレベル7までの7段階に分けています。調査結果からは、チームリーダーを担えるレベル4から、エンジニアの年収上昇率が大きくなっていることがわかるでしょう。
画像引用:経済産業省
経産省では、エンジニアの職別年収平均と、スキルレベルの平均をプロットしたグラフも公開しています。おおまかには、チームリーダー / 指導者としてのスキルを持つエンジニアの平均年収を、職種別にグラフ化したものだと考えれば間違いありません。グラフを見てもお分かりのように、プロジェクトマネージャーを担当できる開発系エンジニアであれば約890万円、高度なネットワークを設計できるインフラ系エンジニアであれば約760万円、年間の人件費が必要なことがわかります。
DX戦略に基づいた組織構成をしよう
自社のDX戦略に基づき、どのようなエンジニア・人材が必要なのか。人件費を念頭に置きつつ組織構成を考えていくことが2つ目のポイント。これは組織・プロジェクトに応じてシステム開発に関連する業務が変化するためです。
例えば、4〜10名程度でチームを組むスクラム(アジャイル開発の一種)なら、エンジニアの採用数を抑えられる一方、セルフマネジメントが必要など個々の人材にはスキルの高さが求められます。エンジニア不足が深刻化するなか、スキルの高い人材の単価・年収は高額になる傾向なため、必要なエンジニアを必要なポストに配置できるスリムな組織構成を考えていかなければなりません。
足りないリソースはアウトソーシングする方法もある
システム開発を請け負う「SIer(システムインテグレーター)」であっても、プロジェクトによって外部のリソースを頼ることがあります。むしろ、組織・プロジェクトに応じて業務が変化するシステム開発では、積極的にアウトソーシングを活用するのがポイントです。例えば、コーディングが中心のプログラマーは、状況に応じて足りないときだけアウトソーシングを利用する、サーバ / ネットワークの管理・運営をMSP(マネージドサービスプロバイダ)に依頼するなどが考えられるでしょう。
アウトソーシング先を選ぶ際は、類似のシステムや同じ業界の開発実績が豊富なところを選ぶと比較的スムーズに開発プロジェクトも進みやすくなるでしょう。
開発系インフラ系まとめ
自社のIT部門を強化したい、システム開発に対応できるIT部門を立ち上げたいと考えている企業経営者・IT担当者の方に向け、本記事では、一般にはわかりにくいITエンジニアの役割や職種を、開発系・インフラ系・IT関連職にわけて解説しました。ITエンジニアを採用・獲得する際のポイントも紹介してきました。
来たるべきDXを見据え、ITを活用したイノベーションでビジネスを飛躍させるためにも、自社IT部門の強化・新規立ち上げは非常に有効です。しかし、成果を形にできる優秀なチームに育て上げるのにコスト・時間が必要なことも事実。ときにはアウトソーシングも活用しながら、プロジェクトを推進していくのがおすすめです。
※自社でシステム開発遂行が難しい方はシステム幹事にお問い合わせください。予算や目的などをヒアリングした上で、御社に最適なシステム開発会社を選定します。相談料などはかかりません。
Q. 開発系エンジニアとインフラ系エンジニアの違いは?
システム開発プロジェクトの全体像のうち、設計・開発・テストを含む全体的なプロジェクト管理を担当するのが「開発系エンジニア」です。一方でサーバ・ネットワークを含めたインフラ構築、ハードウェア・ソフトウェアを含むシステムの運用・保守フェーズを担当するのがインフラ系エンジニアです。
この記事を書いた人
梓澤 昌敏
専門分野: 音楽・映像制作、オウンドメディア、ビジネス
音楽・映像制作の現場を経て、スタジオ構築側の業界へ。マネージャー・コンサルタントとして制作現場の構築に携わる一方、自社オウンドメディアの立ち上げを含むマーケティングも担当してきました。現在アメリカ在住。作曲を含む音楽制作も提供しています。
このライターの記事一覧