未経験エンジニアに一番必要なスキルは…

## はじめに

**「未経験エンジニアに一番必要なスキルはなんでしょう？」**

所属する会社の規模や業務内容によっても異なりますし、色々な回答もあると思いますが、今回はITの仕事といった観点で考察してみたいと思います。


## 業種別企業数

ITの業種別の企業数から考察してみます。

![業種別企業数.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136165/49e0734d-a725-0f55-c0d7-78930dfb0982.png)

(出典)
[総務省トップ > 政策 > 白書 > 令和2年版 > 情報サービス業 : 図表5-1-6-16　業種別企業数と売上高（アクティビティベース）](https://www.soumu.go.jp/johotsusintokei/whitepaper/ja/r02/html/nd251650.html)より抜粋、グラフ化

「受託開発ソフトウェア業」が2位以下に2倍以上の差をつけて多いことが分かります。
加えて「未経験エンジニア」で特殊なスキルを持っていないとしたら、何を受託しているかは分からない~~闇鍋~~ 「受託開発ソフトウェア業」に就く可能性が高そうなので、以下「受託開発ソフトウェア業」について考察します。


## 元請け、下請け

元請け、下請けの状況から考察します。

![x次請け.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136165/3d9a647f-3957-92a7-cc0f-950608c727c6.png)

（出典）
[総務省・経済産業省「2019年情報通信業基本調査」](https://www.soumu.go.jp/johotsusintokei/statistics/statistics07.html)

３次請け以降の会社は遠くない未来に仕事がなくなってしまうようにも見えます。

「ウォーターフォール開発」の考え方でいけば、元請け企業が要件定義や外部設計を行い、開発を二次請けに流すので二次請け会社に入ればプログラムが書けることになりますが、このグラフからは読み取れないですし、以下の様な疑問も残ります。

- 最近はウォーターフォール流行らないけど分業や責任の範囲は？
- 3次請け以降の仕事って何？
- **中抜きして丸投げしてない？**


## ICT投資額

ICT投資額から考察します。

![ict-日本.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136165/5c21b6ac-aa3b-03ee-aa6e-2794a2ae03c6.png)
（出典）図表1-2-2-1　日本のICT投資額の推移（名目）/ OECD Stat

![ict-米国.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136165/7999baf7-1069-f67f-7108-21b39bb7d5e3.png)
（出典）図表1-2-2-2　米国のICT投資額の推移（名目） / OECD Stat

1989年からの30年間で、米国では4倍以上に増加しているのに対して、日本ではほぼ横ばいでじわじわと投資額は減っていることが分かります。

その場合、モダンな言語でのモダンな開発案件自体が少ない中で、未経験のエンジニアがそこに参画できる確率というのは厳しい数字になることが想像できます。

また、ICTの費用の大半は人件費です。投資額が減っているということは、昔は5人-10人でやっていた仕事を3人-5人、ひいては1人で行わなければならない状況になることも考えられるでしょう。

ところで、このグラフからは、システムの運用維持管理費の扱いが読み取れないです。
クラウドサービスはサービスを続ける限りは固定費が発生します。また、運用維持管理にも人件費が発生します。
これらもICT投資額に含まれいている場合、新規の開発案件はグラフの見た目以上に減少傾向にあることも考えられます。


## 仕事のサイクル

一般的に企業は１年以内の **事業年度** 毎に、儲かったとか儲からなかったとかの計算をしています。その計算をする月を **決算月** といい、その月は3月、9月、12月が多いようです。

この月がバラバラならいいのですが、決算月が大体同じことで「プログラマ」には困ったことが起きます。
そうです。**4月は「プログラム」工程の案件が少ないのです。**

決算月に来期の予算が決まって、その予算をどうやって使おうかーという話を、4月(や10月や1月)にはじめます。
継続してお付き合いのあるお客様ならもう少し前から会話を始めるかもしれませんが、大きな流れとしてはそうなります。

ということで、4月の時点では開発案件はないし、この時点で開発案件の相談に乗る(コンサル・要件定義・外部設計)ことができないと、いつまで経っても開発案件が発生しないことが想定できます。

![工程.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136165/dec06fe8-4e5a-823a-af05-8dfdcc3f4041.png)

また、ウォーターフォールではなくアジャイル開発の場合は、案件における「プログラミング」の作業の割合には大きな変化はない上に、アジャイル開発を行うためのスキルが必要になるため「プログラミング」能力だけでは参画が難しいと考えられます。

未経験エンジニア目線で見ると、JavaやPython等のプログラム言語のどれを覚えるのがよいのかという話が度々話題に上がりますが、「受託」の業務の観点では、そもそも「プログラミング」以外の業務を行う確率が高いと考えられます。


## まとめ

「受託開発ソフトウェア業」では、元々の業態では「ウォーターフォール」と呼ばれる開発手法で１次請けが要件定義・外部設計や交通整理を行ってくれていました。
ただ、**なぜか**ウォーターフォールは機能しない、 **顧客を巻き込んだアジャイル** が必要と言われる様になりました。
アジャイル開発やスクラムは意識高い方法論が先行しがちですが、**単にチームメンバー全員に高いコミュニケーション能力と要件定義～試験までを短いサイクルで実施できるスキル**が求められていると考えると分かりやすいかもしれません。

といった状況を鑑みると、長期的には **「一番必要なスキルは案件に関するスキル全部」** みたいな雑な結論になるのですが、未経験エンジニアとしては **「日本語ライティング」** から手を付けるのが効率がよいと思います。

(参考)

https://qiita.com/kaku3/items/fb949aa1a53f1f71c796


## おまけ1

営業A短編シリーズ

https://qiita.com/kaku3/items/03aae7b9e3c70c55f513

https://qiita.com/kaku3/items/3378ea55b1240d7360a1


## おまけ2

2030年にIT人材が最大79万人不足するらしいので、学習用の資料をgitで**無料**公開してます(不定期更新)。
よろしければどうぞ。

[エンジニアのためのお仕事問題集](https://github.com/kaku3/workbooks)