エンジニア人材の不足と求められるエンジニアの基準（主観）を考える

:::note warn
本稿は新卒（文系未経験）エンジニア育成講師が個人の現場経験から感じた課題と考察です。
:::

## 「エンジニア不足」とは何か
誤解を恐れずに言えば、多くの方が想像されている「現場開発経験者」と相違ない。

と言ってしまうと、本稿が何のために存在しているのか分からなくなるため、具体的に「エンジニア不足」について掘り下げていく。
筆者が身近に感じる「エンジニア不足」の例を挙げると

- 各業界の専門分野に特化した（ドメイン知識がある）開発実務経験者の不足
  - 各業界を個別に見た時に、ドメイン知識と開発経験の双方があるエンジニアが少なくなる
  - エンジニアリング経験者がエンジニア以外への転職を選択しやすい（転身自体には問題ないので、エンジニア以外になってはいけないという事ではない）
- 「実務経験」文化
  - エンジニア以外でもある。例えば求人サイトでいう「コンビニ経験者」とか「イベント経験者」のようなもの
  - エンジニアも分類すると「フロントエンド」「インフラ」のような職域から「Java」や「PHP」など言語など、様々な要素が考えられる
  - 開発領域を広げるとPM/SE/PG/ディレクターなど肩書きも大別でき、SREなど◯◯
エンジニアやエンジニアマネージャーなどといった称号のような分類が存在する

のように分ける事ができる。
ぱっと思いつくだけでも

- 開発言語（フレームワークを含む）
- 開発領域（フロント・バック・インフラ…）
- 開発フェーズ（システムコンサル・PM・SE・PG・QA…）
- 業界（官公庁・金融・医療・モビリティ・エンタメ…）

が考えられる。

もちろん、これだけではない。少し補足しよう。
昨今では、ここにAIエンジニアやデータサイエンティストなど、いわゆるPG枠に収まらない内容（いわゆるDX推進役）の需要が高まっており、新たな技術職の需要が高まっている。
**これだけ複雑にポジションが分けられているのでは、ピンポイントに需要を満たす人材は不足するというものだろう。**
ただし、誤解しないで欲しいのはこれだけ分類しないとサービスの品質を上げるのが難しいぐらいITシステムは高度化しているという事である。
つまり「エンジニア不足」は人が足りないのではなく「（サービスの質に対応できるスキルを持った）人材が見つからない」という意味である。[^1]
本稿では「エンジニア不足」という問題もだが、本稿を超えてアドベントカレンダー全体としてエンジニア不足をスキル面で評価していくこととすることをご留意いただきたい。

[^1]: **【人が足りないとは、＝人材が見つからないなのか？】** 人がいないから人材が見つからないのか、人材が見つからないから人が足りないのか、どの視点で市場を評価するかで表記が変わるように思う。事実として、プログラミングスクール出身者は増えているが案件自体は発生し続けているので本稿では後者に寄せて考えたい。

### 開発経験者を欲しがっている求人は多い
繰り返しになるが、有効求人数は減っていない。
プライム案件（エンドの一次請け）に限定すると数は分からないが、二次請け〜以降も考えると広く人材を募集できるので、エンジニア人材を発見できる可能性は当然に高まる。

とすれば、エンジニア不足とは人よりスキルと考えるのが妥当であろう。

## 「エンジニア不足」の問題点
エンジニアの総数が増えているのかどうかは有効なデータが不明のため分からないが、筆者の感覚値としてエンジニア人材の総数は減っているのではないかと思われる。
プログラミングスクール出身者が簡単に入れる案件の数はおよそ決まっており、すべてのプログラミングスクール出身者がエンジニアになるわけではない。
また、開発経験者が異職種に転職する事もあるため、「人口が減ったから新規でエンジニアになる人が減った」という図は当てはまらないと筆者は考えている。
どちらかというと、リスキリング社会人の存在も考えるとエンジニア予備軍の総数は増えているのではないかと考えている。
様々なスクールで異業種からの転職組を含めてエンジニア研修をtoB,toC問わず検討されているが、実際問題としてエンジニアとして実務に耐えるようになるには、現場に入れるかどうかが一番最初のポイントになっているように思う。
その上で、IT業界は実務未経験にとって厳しい現実としてブラック体質であると感じられるような独特の業界であることは認識せざるをえない部分があることは否定できない。[^2][^3]
つまり、他業界以上に専門性の高い研修が必須であり、その上で実務経験としてのOJTも必要である。**およそプログラミングスクールを卒業するだけではエンジニアの業務ができないのはOJTがないから**である。

[^2]: **【IT業界はブラック？】1** まず前提として、ブラック企業といわれる存在を決めるのは主観的な価値観によるところが否定できないため、必ずしもIT業界がブラックだと筆者は思わない。ただし、他業種の方が新規参入できるかという観点で考えると改善の余地は多く存在している事も認識する必要はある。
[^3]: **【IT業界はブラック？】2:** 本稿を執筆するにあたって、故あってIT業界以外の複数の業界の現場業務を経験する機会があった。その中で感じたのは「IT業界は他業種の研修と比べて非常に教育コストがかかってしまうという問題だった。たとえば、介護職員初任者研修は約16回の座学・実地研修を経て試験に臨んだり、交通雑踏警備は現場に入るだけなら研修がない会社もある。コンビニや飲食店、工場系も基本的にはOJTなので研修らしい研修はない。

いくら自ら調べて学ぶ力があったとしても、いわゆる「現場のお作法」といったことはtoCのプログラミングスクールで指導されることもなければカリキュラムにも存在しないため、一番重要な「現場でのセンス」について学ぶ機会はない。
そのため、プログラミングスクール出身者（プログラミングの知識）より現場経験者（現場のお作法を知っている）が求められているのだろうと考えている。
これに加えてドメイン知識も求められるため、駆け出し（新卒を含む）エンジニアにとって実務へのハードルが高い事が伺える。

## エンジニアへの転身（既卒社会人のリスキリング）
昨今はドメイン知識を持っているものの、システム開発の必要が発生してエンジニア（プログラマーを含む）に転身するケースもある。
所属している会社を辞める事なくエンジニアリングを学んだり、あるいは会社を辞める前提でエンジニアを転身するというケースだ。
この場合は先述の想定と違い、ある程度のドメイン知識があることを担保した状態での話となる。

このケースだと開発者というよりは、ベンダーマネジメントのスキルとして学ぶ事が目的になるので、いわゆる「エンジニア」というのではケースが異なる事がある。
大きな枠としてDX社員という観点ではハイスキルな教育を受けることになるので、何かしらの機会があればエンジニアとして活躍できる事が想定されうる。
もちろん、toCプログラミングスクールの中でもエンジニアに近いポジションであることは言うまでもない。

本稿ではtoCプログラミングスクールの役割や課題などについては言及しないが、現状のエンジニア教育だけでは現場の要望を満たせていないと言う事実について認識されたい。

## このアドベントカレンダーでやりたいこと
本稿のようにエンジニア人材・求人の課題を解決するための方法を考察していきたい。
その結果としてQiitaが意図するプログラミングをテーマとした内容であったり、ビジネス面やマインドセットなどにも言及していく。
脱初学者を望む読者が本カレンダーを読破された際は、今後エンジニアとして活躍するための心構えや考え方、近道などを自ら探し、気づけるようになっていただければ幸甚だ。

## こぼれ話
記事を書く時にChatGPTに「エンジニア育成の重要性と基本戦略」というタイトルを提案されたんですが、そこまで大層な実績がない内容のため、現場視点を意識していじっています。

## 注釈