IT業界で気づいたことをこっそり書くブログ

くすぶってるアプリエンジニアが、日々気づいたことを適当に綴っていきます(受託→ベンチャー→フリー→大企業→ベンチャー→法人化(今年))

なぜエンジニアが将来も安泰な職業なのか、その理由(若手向け)

最近、フリーランス同士で飲む機会が多かったんですが、みんな大体似た悩みを抱えてますね。特に頭がいい人ほど同じルートで同じ考えに至って、皆同じ壁の前で立ち往生すると言った状況が生まれていて面白いです。
同じゲームをして「みんなここでハマるよね!」みたいな。

 

今回はそれとは違いますが、学生〜20代がよく悩みがちな話をTwitter経由でリクエストされたので書いてみます。

これです↓

マクロに見れば、将来的には技術はどんどん簡単になり、エンジニアの仕事自体価値が下がるのでは、と考えています 

 実際には全然そうなってないよね。という話が起点です。

 

※長いです(約10000字)

 

 

川の水はなぜ枯渇しないのか?

「仕事が枯渇するのでは?」は「川の水が枯渇するのでは?」のような話です。
これを知るためには「それがどのように循環しているか」を知ると良いと思います。水の大循環!

https://upload.wikimedia.org/wikipedia/commons/d/d5/Watercyclejapanese.jpg

Wikipedia

 

エンジニアの仕事が枯渇するかどうかを知るには、エンジニアの仕事をとりまく生態系全体を見る必要があります。
「川」だけでは足りません。
「世の中」「市場」の動きや気持ちも考えてみます。

 

問題設定

  1. エンジニアの仕事は減らないのか
  2. エンジニアの価値は落ちないのか
  3. 更にその先の話、エンジニアのキャリアはどうするべきか

 

注意

エンジニアとプログラマーシステムエンジニアの違いは無視します。
面倒なので以下「エンジニア」とします。乱暴ですが。

 

1.エンジニアの仕事は減らないのか

なぜ枯渇すると思うのか?

技術はどんどん簡単になり

これですよね。

エンジニアというのは、プログラムを書いて自動化・効率化することができます。するとメタ的に考えて、今やっている作業もどんどん自動化・効率化していくと、最終的に自分たちは何もしなくて良い状態になるのではないか!?って想像をします。

 

エンジニアの仕事は何か?

プログラミングをすることです。
システムを作ることです。
アプリを作ることです。
DBをいじることです。

どれも正しいんですが、もうちょっと根源的な外延の話をしてみます。
頭を柔らかくしてください。 

f:id:otihateten3510:20190419003631p:plain

エンジニアの仕事は、上図の製造のところです。

みんなで何をしているかと言えば、世の中の課題を解決しています。
いやそんなこと言ったらどの仕事だってそうだろう?という話ですが、特にシステムで解決できる課題を解決しています

 

そしてエンジニアがなぜ安泰かは、上図で半分説明が完了しています。
社会の課題をシステムを持って解決し、お金を得る仕事なので、社会の課題が無くならない限り仕事はなくなりません
そしてもう一つ重要なのが投資の存在です。例え社会の課題が解決できなくても、課題を解決すると儲かるという予測が存在する限り投資が行われます。もちろん限度はありますが。

エンジニアはこの出資や事業の儲けに直接は関わっていません。課題解決や、投資を受けた時に労働者として動くのがエンジニアです。だから損すること無く仕事をし続けられます。大雑把に見れば第一次産業第二次産業とやってることは変わらないです。土地を与えられ、そこで働く小作人のようなものです。

 

課題は、問題・改善・革新がある

課題というと「問題」ばかり想像してしまいますが、例えばPCのスペックを上げるというような「改善」、PCをスマホに置き換えるような「革新」というのも課題の一つです。
人類や社会が進歩するためのもの全般という意味です。

 

社会の課題が無くならない理由

社会が回っている限り、課題はほぼ無限に湧いてくると思います。

でも感覚的にはそうではないですよね。一個一個、解決はしていってるはずなので、課題は減っていきそうです。

「改善」でイメージする

課題を改善と考えると少しイメージが変わるかもしれません。
ダウンロード速度を100秒から10秒に改善することで、様々な問題が解決できますが、10秒を1秒にできたら、もっと問題が解決できます。
どこまで続くかと言えば

  • 人の欲が尽きるまで
  • 儲からなくなるまで
  • 他社が諦めるまで
  • 技術、ビジネスにおける限界まで

とりあえず「もう無理」というところまで改善します。そして1段階改善するのに年スパンの時間を要します。

 

「革新」で課題が増える

課題に対するソリューションというのは2つのタイプに分けられます。
既に皆が課題を認識しているものに対するソリューションと、皆が課題を認識していないものに対するソリューション
プロダクトインとマーケットアウトと言ったりします。

プロダクトアウト/マーケットイン - Wikipedia

 

課題を認識していないもの=プロダクトアウトは、簡単に言えば発明であり革新です。基礎研究なんかも近いですが。
例えばスマートフォンの登場は、様々な「できること」を生み出しました。
その「できること」が新しい社会の課題(解けるもの)を増やします
課題が増えると言うと、悪いイメージがありますがそうではありません。より改善できるチャンスが得られたという見方もできます。

こういうのをブレイクスルーとか、イノベーションと言ったりします。

私はよく七並べで例えます。「8さえ出れば、9〜Kまで全部出せるのに!」という時に8が出てくる感じです。ちなみにKまで出し切って、もう改善しきった〜となるのに5年〜10年スパンかかります。

f:id:otihateten3510:20190419072002p:plain

このイノベーションを無視することは可能でしょうか?
「いいや俺は今までのままで満足だ!」
これは可能なのですが、ビジネスで負けます。ユーザーは少しでも良いものを選択するので、社会圧によって対応せざるを得ない。そしてその対応はエンジニアが行います。

 

どうやらいくらでも課題は増えるらしい

自分も「課題量は十分に有限」と思っていた時期があったのですが、そうではないようです。
ゲーム業界の存在が教えてくれました。

世界ゲーム市場規模「15兆円」超へ、拡大を呼ぶ3つの要因 - 日本も過去最大へ | Beyond(ビヨンド)

今やゲーム業界のほうがでかいのでは?というくらい仕事(課題)が沢山です。

なぜそうなっているかと言えば、やはりこの図です。

f:id:otihateten3510:20190419003631p:plain

とにかく新しい産業を盛り上げて儲けようとする人たちが、投資をしてでも「美味しい課題」を増やすので、減りようがないんです。
この生態系が続く限り、課題は枯渇することはないです。

 

エンジニアのやることは刻々と変化する

ほとんど無限に思えるほど大量の課題が存在する、と言っても、普段は一つ一つ解決していく作業をしています。
当然、課題を解決したら、その後は別のことをします(プロジェクト型)。最後まで同じ下腿に取り組み人は少数派でしょう。
別の課題を解く時には、別の技術が必要になることがあります。そしたら習得するのがエンジニアというものです

だから局所的に見れば「仕事はなくなる」わけですね。

 

これはまさに川のようですね。

ゆく河の流れは絶えずしてしかももとの水にあらず

です。

 

2.エンジニアの価値は落ちないのか

価値が落ちる原因は何があるでしょう?

ざっくり以下のような構造になっていると思います。直接要因は、課題量、投資量、エンジニア量、簡単さ、そして雇用の流動性です。このうち雇用の流動性は大きく変わらない、課題量は十分に無尽蔵と考えると、残り考えるべきは「投資量」「エンジニア量」「簡単さ」でしょう。

f:id:otihateten3510:20190425084812p:plain

 

エンジニアリングは簡単になる?

実際簡単になっている

昔に比べて遥かに簡単になっています。
過去の天才たちが築き上げた技術の上に立って、今のエンジニアは作業できています。
ありとあらゆる「煩わしい、考えたくないこと」を考えなくても作れるようになってきています。(こういうのを「巨人の肩に乗る」と言ったりしますね)

f:id:otihateten3510:20190419004830p:plain

簡単になった結果、どうなったか?

QCDという概念があります。
Qは品質 (Quality)、Cはコスト (Cost)、Dは納期 (Delivery)の略です。(納期=スピード)

これらはそれぞれトレードオフの関係にあります。品質を高めるにはコストが高くなったり納期が長くなったり。

今、「簡単になった」結果、余ったステータスをQCDどれかの改善に当てられるようになりました。するとどうなったかと言えば、QとDが改善されました
つまりより高品質に、より素早く実現することに注力して、コストは大して変わりませんでした。

※具体的な例を挙げれば、ECサイトはある一時期から積極的にWebフレームワークを採用するようになりました。結果どうなったかと言えば、ECサイトが複雑化・高度化しました。作業量はむしろ増えたと思います。

業界はなぜコストを変えずに、品質とスピードを求めたか

簡単です。
システムによって課題を早く・正確に改善した会社が勝ったからです。生存者バイアスで、コストを抑えたところが負けたというわけです。
(※やや語弊があります。これは業界によっていて、コストを抑えた結果デフレ期を乗り切った会社ももちろんあります)

 

実世界は十分難しい

幸か不幸か、品質とスピードを改善した上で、コストも抑えるという風にはできませんでした。プログラミングより世の中の課題の方が遥かに難しいのです。

エンジニアリングというのは、コーディングだけやっているように見えて、実は対話をしています。市場との対話・システムとの対話です。
対話というと難しいですが、複雑な振る舞いを動くものに落とし込む際に、試行錯誤・最適化が必要なわけです。その試行錯誤を今「対話」と言っています。

今の事業は社会と対話しながら、より最適なものを作れるようにバージョンアップを超高頻度で行っています。

エンジニアは、その事業が社会と対話しながら考えた仕様と、機械の振る舞いを一致させるために対話を行っています。

f:id:otihateten3510:20190419005636p:plain

この対話(調整、試行錯誤)が非常に難しいのですが、「巨人の肩」によって非常にスピーディーに行える環境が整ってきた結果、対話の回数が上がりました

より高スピードで正確な対話を重ねたサービスが勝つので、コストを抑えている暇がありません。競合を駆逐するまでそれは続きます。

 

パーキンソンの法則が起こっている

パーキンソンの法則 - Wikipedia

第1法則

仕事の量は、完成のために与えられた時間をすべて満たすまで膨張する

第2法則

支出の額は、収入の額に達するまで膨張する

 

世界というのは非常に複雑で、それをシステムにするのは不可能に近いです。
そのためエンジニアは、きちんと動くように極力複雑度を低く保っているのですが、技術が発展してより複雑なことができるようになれば、許される限界まで複雑なものを作ります。その方が儲かるだろうと思って。

 

ECサイトはある一時期から積極的にWebフレームワークを採用するようになりました。結果どうなったかと言えば、ECサイトが複雑化・高度化しました。作業量はむしろ増えたと思います。

 

結論:エンジニアリングは簡単になる?

簡単にはなってるが、単位時間あたりの難しさは減っていない。
他に難しい仕事がたくさんあるし、スピードや品質も上げなければならない。そのため「誰でもできる」にはならない。それはビジネスの競争が存在するから。

 

閑話:エンジニアの仕事量はコストから決まる

普通はこう考えると思います。

  1. 必要な課題がある
  2. それに見合う機能がある
  3. 機能を満たすだけの仕事量が発生する

ものを買うときはそうです。「大根が2本必要だから2本買う」です。
でもこれが罠です。
今、ビジネスにおける戦争をしているわけですから、「2本必要だから2本買う」じゃなくて「勝てるまで全力で買う」となります。

つまり

  1. 事業は100億円儲かる見込み
  2. 今20億円調達した、10億円をエンジニアリングにかけられる
  3. 10億円分の仕事量が発生する

もちろん世の中には相場がありますし、1億円で開発完了するものに対していきなり10億はかけません。あるいは2億円で勝てそうなら10億使いません。

でも、競合と殴り合いをしようとすると割と普通にお金は溶けていきますある程度完成したとしても、そのあと複雑ですごいものに改変していきます

過剰にまで課題に対して最適化していこうとすれば、掛かる人件費は指数関数的に増大します。

 

例えばAbemaは年間200億円の赤字を出しながら事業を行っていました。裏を返せば200億円分の仕事が発生するわけですが、なぜそうするかと言えば競合に勝つためですよね。実は競合同士でバチバチやってもらった方がエンジニアや他のスタッフは儲かるようです。

 

エンジニアが溢れて価値が落ちるのでは?

現在IT業界がざっくり約100万人、エンジニアは約50万人前後と言われています。例えばこれが約500万人となったらどうなるでしょうか?

もちろん、供給過多なのでエンジニア1人あたりの価値は落ちるかもしれません。
これは将来、エンジニアが安泰で無くなる可能性の1つです。

恐ろしいことに近年、プログラミング教育がブームです。子供の頃にプログラミングを学んだ人が増えることで、「エンジニアに成りたい」と思う人が増えるかもしれません。今の学生が社会に出てくる5〜15年後、多かれ少なかれそれは起きるでしょう。こういうのは2010年頃の美容師業界でも起きました。

エンジニアが他業界より参入障壁が低いのも問題です。
エンジニアリングのスキルは積み上げ式というよりは、定期的にリセットされるので、なかなか経験年数による差別化も難しいです。
優秀な若手が増えてしまったら、シニアエンジニアの価値は落ちることでしょう。

f:id:otihateten3510:20190426133751p:plain

それでも価値が落ちない理由

上記のような想像、想定はよくされているのですが、じゃあ現状どうなのかというと、そうなってはいません。
前提となる「シニア生き残れない説」はITバブル以後、大して変わってはいないと思います。35歳定年説もありました。しかし、そもそもIT業界の人材が思ったより増えていません。どうやら増えない要因があるようです(長くなるので割愛します)

また、そもそも現状のエンジニアに十分にスキルが有るかと言うとまったくそんなことはなく、「課題が解決できる」エンジニアは少数だし、お金になるから仕方なくエンジニアをやってる消極層もいます。下位の層は実際、課題の解決にあまり寄与していません。

将来、優秀な若手が増えたところで、消極層が消えるまではある程度安定すると思っています(※予想です)。もちろん消極的なエンジニアには厳しい状況になるでしょうから、不断の努力は必要なのですが。

f:id:otihateten3510:20190426134615p:plain

※こう書くと「成長しても給料据え置きなのでは?」と思わえるかもしれません。実際そうなのですが、現在のエンジニアがそもそも他業界よりは結構もらっているので、維持でも業界としては十分なのではないかというスタンスです。もし「エンジニア全体の賃金のベースアップ」をしようとするとかなり厳しいと思います(理由は長いので割愛)

 

もう一点、上でも触れましたが課題の量に収縮性があるのも理由です。
例えば美容師や外食など、国民の総数によって大体総額が決まってしまうジャンルも沢山ありますが、IT業界はある程度柔軟性があります。

参考

otihateten.hatenablog.com

  

とは言え、もちろんこれは程度の問題です。本当にエンジニアの数が数倍に増えたりしたら、いかにエンジニアと言えど価値の低下は避けられないでしょう。だから安泰が崩れる可能性の一つです。

最近の似た話で言えば、弁護士があります。弁護士の数を国の製作で増やした結果、若干1人あたりの稼ぎが減ったとのです(イマイチ信頼できるエビデンスが出てこない)

いつだって歪さを生み出すのは国策です。美容師も、弁護士も。そして今はエンジニアを増やそうとしているのはリスクの一つです。

 

安い労働力で価値が落ちるのでは?

例えば第二次産業でこれは起きました。
日本人の労働力が高くなったため、海外の安い労働力を使い、結果的に国内ではその職業が消え去るみたいな出来事です。
ちなみにここらへんの話は「製品ライフサイクル」あたりのお話に近いと思います。

参考

https://leadershipinsight.jp/explandict/%E8%A3%BD%E5%93%81%E3%83%A9%E3%82%A4%E3%83%95%E3%82%B5%E3%82%A4%E3%82%AF%E3%83%AB%E3%80%80plc%EF%BC%9Aproduct-life-cycle

参考

otihateten.hatenablog.com

otihateten.hatenablog.com

 

もちろんIT業界でもこれは起きました。オフショア開発です。
確か2010年以降くらいに流行りました。

オフショアリング - Wikipedia

オフショアリングは一つの国を拠点としていた営利事業を別の国に移転する経済行為と定義される。主な動機は既存の事業拠点より低額の人件費、税制度などであるが、近年、自国で足りていない専門家を補完するために他国の人材を活用する手段として注目されている

結論から言うと、ほぼ失敗して今は落ち着きました。上手く行っているところはありますが多くありません。
なぜほとんどが失敗したか、これを語るとまた長い話になるので割愛します。

また、現在徐々に途上国と日本の給与の差が縮まってきています。これは2010年以後、円安政策と時を同じくして、東南アジアの給料が上がっていきました。
日本企業が中国人のエンジニアを雇うメリットが少なくなり、最近はベトナム人を雇っていたりしますがそれも時間の問題でしょう。

現在主に外国人を雇うのは、賃金の安さもありますが、むしろ優秀な人材を求めてということが多いと思います。

 

投資が減ると、仕事は減りエンジニアの価値が落ちるのでは?

実際のところ、これが一番ありえるリスクです

上の説明でも書きましたが、とにかくビジネスにおける投資さえあればいくらでもエンジニアに仕事が降ってきます。逆に言えば投資が止まればそうなりません
それが実際に起きたのがリーマンショックで、仕事が激減したと聞いています(伝聞ですが)

では投資が減る要因は何があるでしょうか?

  • 不景気
  • 投資先がない(美味しい課題がない)
  • ITに対する投資がうまくない(別の投資先が見つかる)

一番有りえるのが不景気です。
2010年以後は、米中経済が牽引して世界的に好調でしたが、流石にそろそろどうだろうという雰囲気が出てきました。
中国バブルも正直どうなるかわかりません。
そもそも今後30年レベルで考えれば、1度や2度の危機はあるでしょう。
何度か冬の時期は出てくると思います。

とは言え、あのリーマンショックですら割と早いうちに対応できたので、個人的には楽観視しています。世界はマクロ経済を少しずつ攻略しています。つまり冬の時代が来てもせいぜい3年未満なのではないかと言う予想です。

 

投資先が無くなる、というのは直近では考えにくいです。
上で説明した「革新」があるからです。具体的に言えばスマホの進化、最近のチャレンジで言えば、スマートスピーカーや、機械学習、自動運転など、様々な革新により新しい投資先が生まれ、仕事が生まれます。

中期的(4〜8年)で見ても、まだまだネタはあります。
ガートナーのハイプ・サイクルがわかりやすいです。これの「過度な期待」というのは、過度に投資される対象であるとも言えます。

www.gartner.com

 

ITに投資されなくなる、というのも考えにくいです。

まず現状、世界的に投資先が不足してる状態です。そのためアメリカなどでは異常な額をIT業界に投資しています。TwitterInstagramは最初の内ほとんど投資だけで回っていたという話です(競争に勝つため)

また、今はどんなビジネスをやろうとしてもITを避けられない状態ですし、世界中の人に影響を及ぼそうとすると端末やネットワークが必要です。

例え、ITに近い新しい技術が登場して投資が集まったとしても、その副次産業としてIT産業が生まれてしまいます。

 

というわけで、「投資が減る」というのも意外とリスクとしては小さいのではないかと思います。

 

残るリスクは?シンギュラリティは起こるか?

このように、一個ずつ条件を見ていってもエンジニアが悪い状況になる可能性は他業界の職種に比べたら非常に小さいと思います。
それでも、歴史を振り返ると安定していると思われた職業が20年〜40年スパンであまり儲からなくなったという事例は多くあります。

一つ言われている可能性はシンギュラリティです。AIが成長し続けた結果、AIが自分のAIを改善し、人間に取って代わるのでは?という説があります。
ただこれもよくよく考えてみると現状リスクとしては小さいものです。

  • シンギュラリティ予想が最短でも2040年台(20年以上先)
  • システム開発は社会や人との対話になるため、片方がAIでもどちらにせよ時間がかかる
  • 社会がAIに適応していくのに時間がかかる
  • 課題解決をするためにはAIが人と社会の思考を知る必要があり、これが非常に難しい

今の安定した機構を崩すだけの強いAIが登場するにはまだまだ解決しなければいけない解決が多いのです。

 

リスクまとめ

  • 不景気(ただし長期にはならないのでは?)
  • エンジニアの大量増加

ここだけ注意しましょう。

 

3.エンジニアはどうするべきか? 

とりあえず、現状のエンジニアの立場は案外安定しそうだと言ってきました。
ではその結果を受け入れるならば、我々はどのように動けばよいでしょうか。

業界の心配よりも、自分の心配

たとえ将来に渡ってエンジニアが安定しようが、局所的なブラック企業・ブラック界隈・仕事の枯渇は大量に存在します。それは今後も大して変わらないでしょう。そういう罠にはまらないように足元を固めることに注力したほうが良さそうです。

  • そのスキルの仕事は2,3年後もありそうか、陳腐化しそうか
  • 1〜3年後にどうなっていたいか、そのために今何をするか
  • 自分の理想はなにか、それを満たせるスキルや界隈はどこか
  • 今いる組織は行き詰まっていないか

など、自分のポジションの起き方をミクロで考えて良いのではないでしょうか。
普通ですね!

 

将来の心配よりも、現状の把握

たとえばスマートフォンという良いものが出たところで、世の中に普及し切るまで5年〜10年は掛かるものです。
これは価値を認めるタイミングが人それぞれ異なるとか、あとは買い替えタイミングなどの問題です。
界隈にとって一番仕事になるボリュームゾーンは、少し陳腐化したアーリーマジョリティーの頃なのですが、目ざとい人はつい先行してまだ流行る前の物に取り掛かってしまいます。タイムラグを考えると、将来の予想よりも現在の状態の把握こそが重要にあるでしょう。

どうしてもメディアに流れる情報は推測ドリブンのものが多いです。実際そうなっているか、統計やヒアリングなどで確認したいです。

参考

d.hatena.ne.jp

 

自分がどこの領域で頑張るか

生態系が理解できたのなら、自分がどの領域でやりたいか考えられるようになるはずです。良い意味で社会の歯車を回すために、自分はどの領域で頑張りたいでしょうか。

f:id:otihateten3510:20190427224554p:plain

エンジニアリングとはどこを指すか?

職業は、特化・先鋭化していくほどに競争に強くなりますが、変化には弱くなります。
逆に、汎化していくほど変化には強くなります。

エンジニアリングとは、一見するとプログラミングや技術の事を指しそうですが、「課題をエンジニアリングで解決する人」と発想を変えれば広範な領域をカバーできます。「課題を解決できるエンジニア」となると、重用されますし変化にも強く成れるので不安があるならおすすめです。

f:id:otihateten3510:20190427225532p:plain

エンジニアが安泰は良いことなのか?

少し視点を変えてみましょう。
エンジニアリングが自動化され、エンジニアの報酬が安くなればより多くの課題が解決できるかもしれません。
何度か書きましたが、エンジニアが安泰なのはたまたま「エンジニアの陳腐化が難しかった」からで、それは一部の人からすると失敗の歴史でもあります。

もし農業、工業が効率化できなかったら、現代の世界の発展は無かったことでしょう。そういう視点で見れば、必ずしも職の安定=良いこととは限らないと思います。
これは結局ポジショントークなのですが、エンジニアを陳腐化することで喜ぶ人や良い面があることも覚えておくべきです。世界は必ずコモディティ化を要求します。自分がどのポジションでいたいかは考えるべきなのかもしれません。

 

エンジニアリングは生態系を崩すこともできる

今回は「エンジニア」の話で、エンジニアの陳腐化が難しいという結論でしたが、ITによって生態系を崩された業界はたくさんあります。
最近わかりやすいところだと本屋ですね。

便利さや儲けを追求すると、どこかで負の状態も作ってしまいます。もちろん社会の成長や競争にはしょうがない面もありますが、壊さなくても良いようなシーンで破壊だけしてしまうこともあります。
社会的に大きな影響力を持つものほど、自分は生態系を崩す可能性があるという認識と矜持を持っていて欲しいと願います。

買い物難民 - Wikipedia

そしてそれを理解するために、エンジニアはビジネスを知っておいてほしいです。うっかり大きな負を生み出さないように。

 

おわりに

これまで8年くらいでふわっと考えてきたことですが、言語化すると中々難しいテーマですね。一個一個可能性を挙げた上で検証していかなければならないため、一言では語れない感じです。

そこそこ自信はありますが、演繹的にしか述べられない部分が多いため間違いもあるかもしれません。もし細部の展開に異論があればぜひ教えていただきたいです。