見出し画像

AI時代のITエンジニア像


最近の中高生が将来なりたい職業の調査で、ITエンジニアになりたいという子供が増えているようです。

この調査結果を20年前の私が見たら

「エイプリルフールのネタかな」

と疑ったでしょう。

なぜなら、私が新卒時のITエンジニアという職業は

給料が安く、環境も劣悪で、労働時間は300時間を超えることもあるような職場環境でした。

これは就職氷河期かつ、webの黎明期という時代の影響が大きかったと思います。

例えば私の同期の女性は、1ヶ月の労働時間が360時間を超え、ホテルに缶詰にされて現場とホテルの往復のみの監獄生活を数ヶ月間送った後、プロジェクトが終わって開放されたら、その間に彼氏が他の彼女を作っていた

という昼ドラも真っ青の悲惨な目にあっていました。

2000年代の旧2ch(現5ch)では

「ITエンジニアは現代の蟹工船である」

と揶揄されていましたが、まさにその通りの業界だったと言えます。

また、2005年 - 2010年頃には、オフショア(物価や人件費の安い地域に業務の一部を移すこと)が流行し

「日本でプログラマーは食えなくなる。プログラマーのような低級な仕事は中国や賃金の安い東南アジアに任せるようになって、日本のエンジニアは要件定義等の上流工程のみを担当するようになる」

と偉い人達がドヤ顔で力説していていました。

しかし、彼らの予測は見事に外れて、

プログラマーの需要は世界中で高まって給料が上がり、東アジアは成長し経済力をつけ給料の安い日本には来なくなって、中国人に至ってはありあまるマネーを持って日本に爆買いに訪れ、給料の安い日本人はインバウンドで海外旅行者のお金を当てにする

という社会になりました。

私が

未来予測なんてクソの役にも立たない

と思うのは、このような実体験があるからです。

当時のお偉いコンサル様やご意見番達は、ITエンジニアが中高生の将来なりたい職業ランキングで上位になっている世の中を、どんな顔をして過ごしているのでしょうか。

ちなみに当時は、現在新NISAで人気爆発中のインデックス投資も、金融知識のない素人がやることだと見下され、全く人気がありませんでした。

私の投資歴については

「40代のオッサンの新NISA戦略」

の記事の中で記載しているので、気になった方はこちらもご覧ください。

さて、このような過去の経験から、私は未来予測なんて無意味と思っているのですが

自分自身で未来予測をするプロセスには意味がある

とは思っています。

なぜなら

現状を俯瞰して分析、思考することで、現在の間違っている行動を修正し、変化する未来に対応できる

からです。

現在ITエンジニアをやっている人や、将来ITエンジニアなりたいと考えている若い人であれば

AI時代のITエンジニア像

をイメージしながら行動することが重要です。

最近は「AI時代には仕事や社会はこうなる」的な未来予測が多く出回っていますが、そのほとんどは当たらないはずです。

それは

  • 不人気のITエンジニアが人気職業になったこと

  • 不人気のインデックス投資が人気投資商品になったこと

  • 世界の環境問題を解決するはずのEV自動車が失速していること

  • 抱かれたくない男No1の出川哲朗さんが好感度ランキング上位タレントになったこと

等、過去と今の状況を振り返れば、AIに関する予測も外れると考えるほうが自然です。

しかし、わからないからといって、何の対策もしないで毎日を過ごしてはいけません。

技術の進化は早いので、きちんと未来を考えながら学習をしていかないと、すぐに技術についていけなくなってしまいます。

なので今回は

AI時代のITエンジニア像

について話していたいと思います。

私のこの未来予想も当たるとは思いませんが、読者が将来の自分のITエンジニア像を考える材料としては役に立つと思います。

それでは始めましょう。

エンジニアの能力格差が広がる


まずは

AI時代のITエンジニアは能力格差が広がる

ということについてお話します。

これは

フレームワークを使うのが当たり前になって開発は楽になったが、全体で見ると個々の開発者のレベルは低下し、ITエンジニアの実力に大きな差がついた

ことと同じ構造です。

現在のIT業界には、フレームワークを使わないとサービスを構築できないITエンジニアがたくさんいます。

この理由は

以前は必要だった低レイヤーの知識を意識することなく、一般的なシステムであれば作成できるようになった

からです。

なので、これは現在のITエンジニアが怠惰で能力がないというわけではなく、テクノロジーの進化が引き起こした結果です。

そして、AIの発展はさらにこの傾向を強くするでしょう。

道具が便利であればあれるほど、人間は能力を使わなくて良くなります。結果として、使わなくなった(必要がなくなった)能力は退化していきます。

例えば

私が子どもの頃は、自宅や友達などの電話番号を暗記しているのが当たり前でした。

しかし、現代社会で友人の電話番号を暗記している人は、ほとんどいないでしょう。

学生時代は多くの漢字を書くことができたけど、今はパソコンやスマホばかり使うので、漢字は読めるけど書けない、という人もたくさんいるでしょう。

人間の能力とはそういうものです。

AI時代は、これがさらに顕著になっていきます。

例えばコードの実装であれば

生成AIでコードが作成され、それをコピペしたコードがソフトウェアの多くの部分を形成していくことになります。

しかし残念ながら、

ほとんどの人が生成AIで生成するコードはただ動くだけで、システムの柔軟性が考慮されていません。

このようなコードを採用した場合、悪いのは生成AIでなく

AIを使う人間の能力

です。

生成AIはITエンジニアの命令に対し、確率的に最も正しい挙動をするコードを返すにすぎません。

そのコードをプロダクトに採用するかは、

生成AIの利用者であるあなたの責任

になります。

なので、ソフトウェア開発は、より判断の難しい仕事になっていくでしょう。

特に古いシステムを保守できるような知識や技術のある人材は、どんどん減少していくはずです。

この構造は

大工の世界では既に起きてしまっている事象です。

最近の新築工事ではプレカットと呼ばれる、コンピューターで正確に切った木を現場でつなぎ合わせる施工方法が一般的になっています。

しかし、リフォームでは、家全体の作りを見ながら「多分、中はこのような構造になっているだろう」と長年の経験から推測し、設計と見積もりを立てる必要があります。この技術が、最近大工になった若者には備わっていないのです。

同じことがソフトウェア業界のITエンジニアに波及するのは明らかです。

生成AIで作成されるコードは、

  • DRY

  • 再利用性

  • 直交性

という規模のあるプロジェクトを運営していく上で必要となる要素が抜け落ちているので、将来的にプロジェクトの負債になるコードであることが多いです。

しかし、建築の世界で新築にプレカットが多用されているように、ソフトウェアの世界でも生成AIで出力されたコードがプロジェクトでは利用されるようになるでしょう。

これは、後々の改修作業で必要となる作業者の「経験」の質を著しく低下させることになります。

気をつけなければいけないことは、AIは決して万能ではないということです。

生成AIの成果物に対して責任をもつのは、あなたです。

生成AIの力を最大限引き出すには、

利用する生成AIの能力と特徴を把握して、適切な命令をする必要があります。

AIはIDEやエディタとなんら変わりなく、使い手によって生産性が変わるツールに過ぎません。

なので、AI時代のITエンジニアには

AIが正しいコードを出力できるように具体的な指示をして、適切な修正を行う

能力が求められます。

これはかなりスキルの求められる能力で

細かく幅広い知識と技術が備わっていないとできない

ことです。

ただ、大多数のエンジニアはこの能力を身につけられないでしょう。

なぜなら、今後の多くのIT業界では

会社や投資家からサービスリリーススケジュールの前倒しという圧力で、その場しのぎの実装ためにAIを使ってコードを書き、体系だったソフトウェアの知識を持たないITエンジニアが大量に生産される

ことが予測されるからです。

このことは

フレームワークに依存したITエンジニア達以上に、ITエンジニア達の基礎力を奪い、さらにITエンジニア不足を深刻にしていく

でしょう。

なので、AI時代に向けてあなたがやることは

ただ日々の業務をこなすだけではなく、空いた時間にしっかりと基礎を学習し、自分で考えてコードを書く習慣を身につけること

です。

チェックとテスト時間の増大


AIが普及すればするほど

ITエンジニアの仕事はAIが出力した成果物のチェック、テスト、修正

に割く時間が増えていくことになります。

これは現在生成AIを利用してる人なら肌感覚でわかるでしょう。

生成AIは成果物を素早く作成することができますが、内容の確認と修正は人間が行う必要があります。

これはITエンジニアの仕事であっても同様です。

未来のITエンジニアの業務では、生成AIが出力した成果物をチェックし、サービスに合ったフォーマットに変換、修正するという時間が増えるでしょう。

例えばプログラミングであれば

コード量を減らす

という作業を行える能力が、これまで以上に要求されることになるでしょう。

なぜならこれは、生成AIが得意とする能力ではありません。

生成AIは増やすのは得意ですが、減らすのは得意ではありません。

しかし、柔軟性の高いコードを保つ最も良い方法は

コード量を減らすこと

です。

コードの変更は新たなバグを紛れ込ませる窓を開けっ放しにするようなものです。

ITエンジニアは

AIが苦手な作業を補完していく必要があります。

なので、AI時代で必要なプログラミング能力としては

リファクタリングとテスト設計

の能力が求められることになるでしょう。

このことは

プログラミング初心者には厳しい労働環境になる

ということが予測されます。

なぜなら、リファクタリングやテスト設計は

経験を積むことによって洗練されていく能力だからです。

一方、経験のあるITエンジニアは

システム全体の構造を理解する力、実装ミスを修正する力や、ベターな実装方法を選択する力

を使って仕事をすることになります。

AIは優秀な部下で、パートナーですが、完全に信用してはいけません。

AIは人間以上に間違えるし、人間のように責任も取ってくれません。

だからこそ

AIの成果物をチェックし、修正し、テストする

ことが必須であり、AI時代のITエンジニアにはその能力が求められます。

まとめ


今回は

AI時代のITエンジニア像

というテーマで記事を書きました。

まとめると

  • エンジニア力のないITエンジニアが量産される

  • コードを書くより読んで修正できる能力が必要になる

  • リファクタリングでコードを改善できる能力が必要になる

  • AIに適切な命令をだせるように、ソフトウェアの基礎力が重要になる

  • テストやテストコードを書く時間、チェックする時間が増える

ということです。

巷でよくいわれている予測に

AIがコードを書くから人がいらなくなる

というものがありますが、現状を見る限りまず起き得ないでしょう。

むしろ、プロジェクト内に似たようなコードがドキュメントが乱立して、管理不可能なプロジェクトが増えるような気がします。

なので、

今以上に力のあるITエンジニアの需要が高まる

と思います。

一方で

  • シンプルなHPを作成する

  • wordpressを使ったblogの立ち上げと設定

ようなシンプルな仕事は消えていくでしょう。

大切なことは

AIができることや得意なことはAIにまかせて、AIができないことや苦手なことをITエンジニアがタスクを引き受けること

です。

AIができないことや苦手なことは

AIの種類や時代によって変化します。

なので我々ITエンジニアは、これまでに色々なフレームワークやツールに対応してきたことと同じように、AIにも対応していく必要があります。

結局AI時代になっても

ITエンジニアには生涯学習

が求められます。

AIは仕事を奪う敵でなく、仕事の生産性を高めてくれる味方です。

毎日AIを使いこんで、それぞれのAIの特徴を掴んでいくことが、あなたのITエンジニアとしての力をより一層高めてくれるでしょう。

AI時代でも役立つ技術書


私がAI時代でも役立つだろうと思っている技術本を以下で紹介します。

最近20年ぶりに読み返しましたが

「そうだよな」

と再認識させられることがたくさん記載してありました。

進化の早い今の時代だからこそ、こういった本質的な考え方を掴んでおきたいですね。

これも昔に購入した本ですが、いまだにこれを超えるテスト本はありません。

テストは時間をかけて全パターンを行えばいいというものではなく、効率的、効果的に行わないといけない

ということを理解できるはずです。

この記事が気に入ったらサポートをしてみませんか?