【エンジニア採用講座】第四回:エンジニアのポジションや職種名をわかりやすく解説

engineer_position

※この記事は3分で読めます。
エンジニア採用担当に向けて必要な知識をまとめてお届けする本連載。
第四回では、エンジニアのポジション名や職種について解説していきます。

 ITエンジニアと一口に言っても、細かく分けると、様々な職種があります。
「サーバーサイドエンジニア」、「サーバエンジニア」、「データベースエンジニア」「フロントエンドエンジニア」、「スクラムマスター」「SRE」「PMPL」など

エンジニア採用に関わったばかりの採用担当者だと、何を指すのかさっぱりわからないのではないでしょうか。
本記事では、エンジニア採用初心者に向けて、ITエンジニアを3つの軸で分類することで、明快に理解できるように解説していきます。

分類を理解し、具体的な要件定義をできるようになることで、現場エンジニアとの認識のズレを無くし、エンジニア採用を成功させましょう。 

エンジニア採用時に頭に入れておくべきエンジニアの分類方法

engneer_occupation

色々な分類の仕方があると思いますが、最もシンプルで理解しやすい形で分類します。

まず1つ目の軸として、「他社のシステムを開発するか、自社のシステムを開発するか」で「受託エンジニア」と「事業会社エンジニア」に分類できます。

2つ目の軸はエンジニアの「専門領域」です。アプリケーション開発が得意なのかインフラ構築が得意なのかなど、エンジニアの得意分野で分類します。

そして3つ目の軸は、「役割・役職」です。こちらはイメージしやすいのではないでしょうか。

これらの3つの軸について、追って説明していきましょう。

    

engineer_position_name

① 受託エンジニアと事業会社のエンジニアの違いとは

「受託エンジニア」とは、SIerやコンサルティングファーム等、お客様が作りたいシステムの開発の依頼を受けて、開発するエンジニアの事を指します。この受託エンジニアは、エンジニア全体の就業人口の7割を占めます。

 受託エンジニアと対をなすのが、「事業会社」のエンジニアです。

事業会社のエンジニアとは自社でシステムを開発するエンジニアです。メルカリなどweb系サービスを作るエンジニアや、Oracleなどのソフトウェアを作るエンジニアを指します。また、社内の業務系システムに関わる社内SEも含まれます。
業務系システムとweb系システムの分類は第三回の記事で解説していますので、分からない方は復習してみてくださいね。

これらのエンジニアは、システムの要件定義までは自分たちで行う場合がほとんどです。開発工程以降は、自分たちでシステム開発する場合もありますが、自社のエンジニアだけでは開発できない・しない場合には、上述した「受託エンジニア」に依頼します。 

つまり、自社のシステム開発を「依頼する側」と他社からシステム開発を「依頼される側」のエンジニアで分けられているのです。

 エンジニア採用担当が特に認識しておくべきポイント

「依頼する側」と「依頼される側」で分けた理由は、仕事内容や働き方が大きく変わるからです。

依頼を受けて開発する受託エンジニアから依頼を出す側の事業会社エンジニアへの転職を考える方は多いですが、逆はあまり一般的ではありません。なぜなら、受託エンジニアは、あくまでも仕事をもらっている側ですので、お客様の要望に応えなければいけないプレッシャーがあるからです。さらに、自分が作りたいシステムを作ることはできない場合が多いです。

一方、事業会社側であれば、作りたいシステムの要件定義をして、実際に開発する部分は、受託エンジニアにお願いしてしまうことができるので、いいとこ取りと考える方もいます。そのため、発注側である事業会社側に転職をしたいと考えるエンジニアは多くなります

さらに、受託エンジニアは未経験採用を行っていますが、事業会社のエンジニアに未経験で入れる求人はほとんど無い事からも、受託→事業会社という構図が成り立っている可能性があります。

もちろん、幅広い案件を扱い、成長したいと考えるエンジニアにとっては、受託エンジニアの方が魅力に感じるかもしれません。年収を重視したいのであれば受託のコンサルタントが良いでしょう。

② エンジニアの専門領域とは

2つ目の軸は「専門領域」です。

専門領域の解説をする前に、簡単にシステムの構造について見ていきましょう。

1つのシステムは、複数のシステムが絡み合って構成されています。

システムがどのように構成されているのかはイメージしづらいですが、マンションに例えてみるとわかりやすいです。

Building_apartment

マンションを建てるには、まず土台をつくる必要があります。システムも同様、開発するための土台(=基盤・インフラ)が必要であり、これらを開発する人は「インフラエンジニア」と呼ばれます。ネットワークやサーバーもインフラの1つです。

マンションの土台ができたら、そのマンションで提供する機能を考えます。水道や電気は基本的にどのマンションにも必須の機能ですし、高級マンションであれば床暖房などのオプション機能もあるでしょう。これらを実現するために、配線等の工事をしていきます。システムも同様、「検索機能」がついているシステムもあれば、「いいね!機能」がついているシステムもあります。これらの機能(=アプリケーション)を実装していくのが、「アプリケーションエンジニア」です。

最後に、実際に水道を使うには、どのような蛇口を使うか、どのような場所にあったら便利か、実際に住む人が見たり触れたりする部分をデザインし配置する必要があります。システム開発でも、ユーザーの目に触れる部分を作りこむ人がおり、「フロントエンドエンジニア」と呼ばれます。

エンジニアの専門領域とは、これらの「インフラ」「アプリケーション」「フロントエンド」等のどこを得意とするかを指します。

受託側であれば、大きく「インフラ」と「アプリケーション」の2つに分けられる場合が多いです。

事業会社側の場合、「フロントエンドエンジニア」、「サーバーサイドエンジニア」、「インフラエンジニア」、データベースを構築する「データベースエンジニア」に加えて全てこなせる「フルスタックエンジニア」があります。

他にも複数の専門領域があるので、詳しく理解したい方は、こちらの書籍がお勧めです。

book_recruiting_engineer

③ エンジニアの役割・役職とは

engineer_role

専門領域についてご理解いただいたところで、3つ目の軸である「役割・役職」についてご説明します。

一定規模以上のシステム開発の場合は、チームで開発を行います。

例えばアプリケーションを開発するチームには、同じ「アプリケーションを専門領域とする」エンジニアが集まりますが、全員が同じ作業を行うのは非常に非効率です。システム全体の要件定義をする人や、システムを実際に作り上げるために全体を統括する人、実際に手を動かして作業する人などに役割分担されます。

※役割・役職は、システム開発工程と密に関連しています。企画・要件定義から設計、開発、テスト、運用保守といった用語がよくわからない方は、第一回の開発工程に関する講座を参照してください。

受託の場合、企画・要件定義を行う場合は、「コンサルタント」「アーキテクト」といったポジションがあります。プロジェクトをまとめるエンジニアは、「PM(プロダクトマネージャー)」「PL(プロジェクトリーダー)」と呼ばれますし、実際に手を動かすエンジニアは「プログラマー」「SE」と呼ばれます。

事業会社側では、メンバーやプロジェクトを統括する「PM」「PL」といったポジションもあれば、技術部門のトップである「CTO(Chief Technology Officer-最高技術責任者)」「VPoE(Vice President of Engineering-技術部門のマネジメント責任者)」などのポジションもあります。

エンジニア採用担当が特に認識しておくべきポイント

この部分においてのITエンジニアの呼称は、会社やエンジニアによって、変わる場合があります。

例えば、「サーバーサイドエンジニア」の事を「フロントエンド」と対比して、「バックエンドエンジニア」と呼ぶ場合もあります。その場合は、「バックエンド」は「サーバーサイド」と「インフラ」の両方を指す場合もありますし、「サーバーサイド」だけを意味する場合もあります。

したがって、「何を開発するエンジニアなのか」「その中でどんな役割をもつエンジニアなのか」、という事も合わせて確認し、認識をすり合わせる必要があるでしょう。

まとめ

ITエンジニアについて、「他社のシステムを開発するか、自社のシステムを開発するか」「専門領域」「役割・役職」の3軸で説明してきました。 

自分が採用担当で、現場から「営業経験者を採用したい」と言われても、法人向けか個人向けか、無形商材か有形商材なのかを明確にしないまま採用活動をしては、現場が求める候補者を見つけられません。

ITエンジニアを採用する場合も同様で、「PM経験者を採用したい」と言われた際に、PMと言われても、「受託側か?事業会社側か?」「受託側であれば、インフラか?アプリか?」を考え、よりターゲットを明確にする必要があるのです。

そこで、エンジニアの職種名を聞いた時に、下記の構図に当てはめて、要件定義を行いましょう。

「受託エンジニアなのか?事業会社エンジニアなのか?」
「専門領域は何か」
「役割・役職は何か」

上記分類で、どこに分類されるエンジニアなのか、常に考えながらエンジニア採用を行いましょう。

次回の記事では、JavaやPHPといったプログラミング言語について解説していきます。ついに最終回となりますので、お楽しみに!