生成AIによるソフトウェアエンジニア不要説はさすがにない
急速な生成AIの能力向上・サービス展開により、今までの常識を覆すコーディング方法や調査方法が世の中に出てきました。実際AIを使用する中でコーディング速度が向上した、調査が早くなったという記事もよく目にします。
そのような中で「ソフトウェアエンジニアが要らなくなるのでは??」なんて考え方が出てくるのは至極当然です。コーディング能力は新人エンジニアと比べてもはるかに高性能ですし、世に出回っている多量コードをアウトプットするのであればどんな玄人をも超える速度でこなせます。
で、「ソフトウェアエンジニアが要らなくなるわけないだろ!」というのがこちらの記事です。
個人の見解ですので、そういう考え方もあるのか~と思っていただければ幸いです。
エンジニアのレベル区分
この記事では、エンジニアの能力区分で考えてみます。
今回は IPAのITスキル標準とはというページを参考にしています。
ITスキルレベルの定義
- レベル1:ITに携わる者として最低限必要な基礎知識を有する
- レベル2:上位者の指導の下で、要求された作業を担当できる
- レベル3:要求された作業を全て独力で遂行できる
- レベル4:高度な知識と技能を持ち、自ら問題を発見し改善できる
- レベル5:専門分野が確立しており、社内で技術をリードする
- レベル6:企業レベルで技術をリードし、事業戦略を立案できる
- レベル7:世界で通用するトップクラスのプロフェッショナル
ITスキルレベルの詳細
レベル1:ITに携わる者として最低限必要な基礎知識を有する
詳細:
- ITに関する基本的な用語や概念(ハードウェア、ソフトウェア、ネットワークなど)を理解している。
- 基本的なPC操作(ファイルの作成、編集、保存など)ができる。
- 情報セキュリティに関する基本的な知識を持っている。
場面とできること:
- 新入社員研修: ITの基礎を学ぶ研修に参加し、PCの基本的な使い方を習得する。
- ヘルプデスク: 簡単な問い合わせに対応できる(例:パスワードのリセット、プリンターの接続)。
- 事務作業: WordやExcelを使って、簡単な資料作成やデータ入力ができる。
例:
- 「ファイルが保存できない」という問い合わせに対し、保存場所やファイル形式を確認し、解決策を提案できる。
- 社内システムにログインするためのアカウントを作成できる。
レベル2:上位者の指導の下で、要求された作業を担当できる
詳細:
- 特定のIT分野(プログラミング、ネットワーク、データベースなど)に関する基礎知識を持っている。
- 上位者の指示に従い、具体的な作業を実行できる。
- 基本的な問題解決能力を持っている。
場面とできること:
- プログラミング: 上位者の指示に基づき、簡単なプログラムをコーディングできる。
- ネットワーク: 上位者の指示に基づき、ネットワークの設定変更ができる。
- テスト: テスト計画に基づき、テストを実行し、結果を報告できる。
例:
- 「指定された仕様に従って、簡単なプログラムを作成してください」という指示に対し、コーディングを行う。
- 上位者が作成したテスト計画に基づいて、テストを実行し、バグを発見する。
- 「ネットワークに接続できない」という問題を、上位者の指示に基づいて切り分ける。
レベル3:要求された作業を全て独力で遂行できる
詳細:
- 特定のIT分野に関する専門的な知識と技能を持っている。
- 要求された作業を、自分で計画し、実行し、完遂できる。
- ある程度の問題解決能力を持ち、自力で問題を解決できる。
場面とできること:
- プログラミング: 複雑なプログラムを設計、開発、テストできる。
- ネットワーク: ネットワークの設計、構築、運用ができる。
- システム管理: システムの監視、保守、障害対応ができる。
例:
- 「〇〇機能を追加してください」という要望に対し、自分で仕様を理解し、設計、実装、テストまでを完遂できる。
- 「ネットワークが遅い」という問題に対し、原因を特定し、解決策を提案できる。
- システムに異常が発生した際に、自力で復旧作業を行える。
レベル4:高度な知識と技能を持ち、自ら問題を発見し改善できる
詳細:
- 特定のIT分野において、高度な専門知識と豊富な経験を持っている。
- 現状の問題点や課題を自ら発見し、改善策を提案できる。
- チームメンバーを指導・育成できる。
場面とできること:
- システム設計: 大規模なシステムを設計し、技術的な意思決定ができる。
- プロジェクト: プロジェクトを推進し、チームをまとめられる。
- コンサルティング: 顧客に対して、技術的なアドバイスや提案ができる。
例:
- 既存のシステムの問題点を分析し、改善策を提案し、実装までをリードする。
- プロジェクトマネージャーとして、プロジェクトの進捗管理を行い、チームを成功に導く。
- 顧客の課題をヒアリングし、最適なITソリューションを提案する。
レベル5:専門分野が確立しており、社内で技術をリードする
詳細:
- 特定のIT分野における第一人者として、社内で高い評価を得ている。
- 社内の技術標準策定や、技術戦略立案に貢献できる。
- 高度な技術指導や、技術的なメンターができる。
場面とできること:
- 技術戦略: 会社の技術戦略を立案し、実現に向けて推進できる。
- 社内教育: 社内向けの技術研修を企画し、実施できる。
- 技術顧問: 社内の技術的な問題に対して、専門家としてアドバイスできる。
例:
- 「新しい技術を導入しましょう」という提言を行い、社内での導入を成功に導く。
- 若手エンジニアに対し、高度な技術指導を行い、育成する。
- 社内で発生した技術的な問題に対し、根本的な解決策を提案する。
レベル6:企業レベルで技術をリードし、事業戦略を立案できる
詳細:
- 特定のIT分野の専門家として、業界で高い評価を得ている。
- 企業の事業戦略にIT戦略を組み込み、推進できる。
- 経営層に対して、技術的な観点から提言できる。
場面とできること:
- 事業戦略: 技術的な観点から、企業の事業戦略を策定できる。
- 経営層への提言: 技術的なトレンドを分析し、経営層に提言できる。
- 業界活動: 業界団体やセミナーで、講演や発表を行う。
例:
- 市場動向を分析し、新しい事業戦略を立案する。
- 経営層に対して、IT投資の必要性を訴える。
- 業界イベントで、自社の技術力をアピールする。
レベル7:世界で通用するトップクラスのプロフェッショナル
詳細:
- 特定のIT分野において、世界的に有名な専門家として認められている。
- 新しい技術や理論を開発し、業界に大きな影響を与える。
- 国際的なプロジェクトをリードし、グローバルな視点で活躍できる。
場面とできること:
- 技術革新: 新しい技術や理論を開発し、業界をリードする。
- 国際プロジェクト: 国際的なプロジェクトを統括し、成功に導く。
- 業界への貢献: 国際的な学会や会議で、研究発表を行う。
例:
- 新しいプログラミング言語や、革新的なアルゴリズムを開発する。
- 国際的な共同研究プロジェクトをリードし、成果を上げる。
- 国際会議で、自身の研究成果を発表し、業界に貢献する。
AIのレベル
では、AIはどの位置づけになりそうでしょうか。
- レベル1:ITに携わる者として最低限必要な基礎知識を有する
- レベル2:上位者の指導の下で、要求された作業を担当できる
- レベル3:要求された作業を全て独力で遂行できる
- レベル4:高度な知識と技能を持ち、自ら問題を発見し改善できる
- レベル5:専門分野が確立しており、社内で技術をリードする
- レベル6:企業レベルで技術をリードし、事業戦略を立案できる
- レベル7:世界で通用するトップクラスのプロフェッショナル
ソフトウェアエンジニアが要らない状態となるためには最低でもレベル3が必要でしょう。
しかし現在のAIには以下のような状況です。
*(レベル3)「〇〇機能を追加してください」という要望に対し、自分で仕様を理解し、設計、実装、テストまでをある程度できるが、そのまま完成版とするには十分な精度とはいえない
*(レベル2)「指定された仕様に従って、簡単なプログラムを作成してください」という指示に対し、コーディングを行えるが、そのまま完成版とするには十分な精度とはいえない
とすると、現在の生成AIのエンジニアレベルはレベル1~2が妥当でしょう。
結論
AIはレベル1~2程度であると最終的に結論付けました。今後レベルアップしていくと思われますが、まだまだ課題が多く実現は難しそうな気がします。
AIと同等レベルのソフトウェアエンジニアは不要であることは間違いありません。しかしそれはあくまでレベル1や2程度であるため、レベル3以上のソフトウェアエンジニアはまだまだ需要があるだろうと思います。この結論と同時に「ソフトウェアエンジニア不要説」には否定的になります。
また、レベル1~2のソフトウェアエンジニアだから人事でばっさり切ってしまう、というのももったいない話です。AIがレベルアップするよりも人間がレベルアップする方が確率が高いはずです。これから先はより人材の量より質が重要になってきそうですね。(などと言ってられない少子化問題の状況もあるので本当に悩ましいですね。)
Discussion