AGI時代に向けたプログラマーの未来:役割変化とキャリア戦略

AGI時代に向けたプログラマーの未来:役割変化とキャリア戦略
Photo by Cookie the Pom / Unsplash

はじめに

私がはじめてコードを書いたのは1989年です。

当時NECのPC88というパソコンを中古でかってもらい N-88 Basic というBASIC言語のコードをみようみまねで書いて動かしたあの日から何年経つのでしょうか。

当時、電波新聞社のマイコンBASICマガジンという雑誌があり、ベーマガにはいろんなパソコン向けのプログラムコードが掲載されていました。

そんなわけでもう35年以上趣味や仕事でプログラミングに従事していますが、開発環境、情報流通の仕組みには革命といっていいほどの変化、進化がおこりました。

しかしながら、そんな中でも、あくまでコードを書くのは「私」という生身の人間でした。

そうしたある種の古き良き時代は、いよいよ本格的に終わりを告げようとしています。

2023年ごろからのLLM技術の飛躍的進歩により、プログラミング業界は大きな転換期を迎えています。

特に、OpenAI o3,o1やClaude 3.5、Gemini2.0などの大規模言語モデル(LLM)の進化や、その先にある将来的な汎用人工知能(AGI)の出現は、プログラマーやAIエンジニアの役割に根本的な変革をもたらすと予測されています。

AGI出現前後で世界は大きく変化する

本日は、プログラマーの未来について、AGI出現前と出現後の二つの時代に分けて考察します。

これは単なる時期の区分けではなく、テクノロジーと人間の関係性が根本的に変化する転換点として捉える必要があります。

ここでいうAGI(Artificial General Intelligence=汎用人工知能)とは、人間のような柔軟な思考と学習能力を持ち、特定の領域に限定されない広範な問題解決能力を備えた人工知能を指します。

現在のAI(人工知能)が特定のタスクに特化した「特化型AI」であるのに対し、AGIは人間のように文脈を理解し、経験を活かして新しい状況に対応し、創造的な問題解決を行うことができます。

現在の大流行中の「LLM」はAIが特化型から汎用型へと進化する重要なマイルストーンといえるでしょう。

AGI 前の世界

さて、AGI出現前の世界では、AIは特定のタスクにおいてAIが個人の能力の増幅装置(アンプリファイア)として機能している、という点を再認識しておきましょう。

まぁこれはAIに限らず、エンジニアリングというものは、入力に対して、より大きな、あるいはより価値のある出力を生み出すという点で「増幅装置」ととらえることができるでしょう。

  • 電気工学では文字通り小さな信号を増幅して、スピーカーを動かしたり通信を可能にしたりします。
  • ソフトウェアエンジニアリングでは、プログラムを通じて人間の能力を増幅し、手作業では不可能な規模の計算や処理を可能にします。
  • 機械工学では、てこの原理やギアなどの機械要素を使って、小さな力を大きな力に変換します。

AIツール、とくに 高性能なLLM を使って仕事をするときのアウトプットについて考えてみましょうか。

使ってみるとわかるとおもいますが、 LLMにいい仕事をさせるには使用者の知識、スキル、経験というものが結局は重要で、使用者のインプットの質がAIによるアウトプットの質に大きく影響をあたえます。

高度な専門知識と対象への深い理解を持つプログラマーが高性能なLLMを使用した場合、その出力は極めて質の高いものとなり得ます。

一方で、対象への基礎的な理解や知識が不足している状態でLLMを利用しても、表面的で実用性の低い結果しか得られない可能性が高くなります。

たまに投げやりなプロンプトを入力すると、LLMもとぼけた回答をしてきて、まるで、こちらの実力を試してるのではないかと勘繰りたくなるようなある種人間らしい挙動を示すこともあります。

このことは、プログラマーの基礎的なスキルと専門知識の重要性が、AI時代においてもむしろ増していることを示唆しています。

ここまではAGI前の世界について考察してみました。

さて、では、AGI後の世界はどうなっていくのでしょうか。

AGI後の世界

一方、AGI出現後の世界では、AIは人間と同等以上の知的作業を自律的に行うことが可能になります。

これにより従来のソフトウェア開発におけるV字モデルの各フェーズが大きく変容します。ビジネス要件の分析から詳細設計、実装、テスト、運用に至るまで、AGIが主体となって開発プロセスを遂行するようになります。

具体的には、AGIは要件定義段階での最適な提案、システムアーキテクチャの自動設計、高品質なコードの生成、包括的なテストケースの作成と実行、さらには運用時の監視や最適化まで、技術的な作業の大部分を担います。

しかも、どの工程もその道のプロとそん色ないレベルのアウトプットを出すばかりか、最新の知見もタイムリーに取り入れ、自律的に学習するようになるので、人間は狭い範囲の分野でもAIに追いつくのは厳しくなっていくでしょう。

このようにプログラミングおよび周辺業務(上流~下流)の多くの側面が自動化され、ソフトウェア開発の概念自体が変革を迫られる可能性があります。

しかし、これは人間の役割が消滅することを意味するのではなく、より高次な判断や創造的な問題解決へと進化することを示唆しています。

1. AGI前:AIツールとの協働が切り開く新たな開発現場

1.1 コーディング作業の自動化の現状と展望

現代のソフトウェア開発現場では、コーディングに強いLLMや、GitHub CopilotやAmazon CodeWhispererなどのAIペアプログラマーの登場により、開発プロセスが大きく変わりつつあります。

これらのツールは、単なるコード補完(N88Basicからスタートした私は、Turbo C やVisual Studioのインテリセンスでも相当衝撃的でしたが)から進化し、文脈を理解した適切な提案や、自然言語によるコード生成まで可能になってきています。

むしろ当社では、自然言語での指示が主流です。指示を集めたプロンプトテンプレートがどんどん増えています。

さらに、セキュリティパターンの自動提案やパフォーマンス最適化の推奨など、より高度な支援機能も備えるようになってきました。

さらに、昨今のLLMはコンテクストサイズが非常に大きくなっているため、長いコードをイッキに読み込ませて全体の構造改善をしたり、不具合を発見してもらったり従来熟練のエンジニアがやっていた作業を相当量肩代わりしてくれるようになっています。

しかし、これらのツールが真価を発揮するためには、プログラマーが適切なアーキテクチャ設計の知識や、セキュリティの考え方、パフォーマンスチューニングの経験を持っていることが不可欠です。

LLMは既存の知識やベストプラクティスを組み合わせて提案を行いますが、その提案が適切かどうかを判断し、必要に応じて修正を加えられる能力は、依然として人間側に求められています。

テスト自動化の分野でも、LLMによる支援は着実に進化しています。エッジケースの自動検出や統合テストの自動作成、さらにはパフォーマンステストのシナリオ自動生成まで、テストプロセス全体を効率化する機能が実現されつつあります。これらの機能は、テスト設計の基本原則を理解し、品質保証の観点を持つプログラマーの手によって、より効果的に活用されることになります。

1.2 上流工程へのシフトの具体像

LLMが定型的なコーディング作業を支援することで、プログラマーの業務の重心は、より創造的で戦略的な領域へとシフトしています。特に注目すべきは、システム設計やアーキテクチャの策定といった上流工程への関与が深まっている点です。プログラマーは今、ビジネスの本質的な課題を理解し、それを技術的な解決策として具現化する役割を担っています。

もはや「プログラマー」では無いんじゃないか、という意見もあります。

少し脱線しますが、LLM登場以前から「面倒なところは、まかせて、付加価値の高いところに集中できる」というのは何万回と聞かされてきたことでもあります。

「●●フレームワークにより、面倒なところはフレームワークがやってくれるので、プログラマーは重要なビジネスロジックに集中できます!」

とか

「●●ライブラリによって、プログラマーは付加価値の高いコード作成に取り組めるようになります!」

こういううたい文句の汎用化版がAIやAIを活用したコード生成ツールととらえれば、特段あたらしい概念ではないかもしれません。

ただし、破壊力が「●●フレームワーク」や「●●ライブラリ」の何百倍もあり、ほとんどプログラミングする部分が無くなりそう、という世界が実現しつつあります。

もちろんこういう世界はまだ実現はしていませんし、LLMが出してきたプログラムのかけらを人力(またはCURSOR,WindSurfなどの便利ツールの助けを得て)で切り貼りして”バイブコーディング”しているという段階ではないでしょうか。

話をもとにもどしますと、AIの登場によりプログラマー(という役割と担っていた人)は、たとえば、システム全体の設計においては、単なる技術的な実装だけでなく、ビジネスの成長戦略やユーザーニーズの将来予測までを考慮に入れた判断が求められるようになっています。この過程では、ステークホルダーとの深い対話を通じて要件を正確に把握し、それを実現可能な技術ソリューションへと昇華させる能力が不可欠です。

2. AGI後:人間とAIの新たな共生モデル

2.1 開発プロセスの完全自動化がもたらす変革

AGIの出現は、ソフトウェア開発の在り方を根本から変える可能性を秘めています。

冒頭でもふれたとおり要件定義から設計、実装、テスト、デプロイに至るまで、開発プロセス全体がAIによって自律的に遂行される時代が来るかもしれません。しかし、これは必ずしもプログラマーの存在意義が失われることを意味しません。

むしろ、AGIの時代においては、プログラマーの役割はより高次な判断や創造的な問題解決へと昇華していくことが予想されます。AIが提案する解決策の妥当性評価、倫理的な判断、そして人間社会への影響評価など、より複雑で繊細な判断が求められるようになるでしょう。

2.2 プログラマーの新たな存在意義

AGI時代のプログラマーに求められる最も重要な能力は、技術とビジネス、そして人間社会の接点を理解し、それらを調和させていく力ではないでしょうか。

AGIが提案する解決策の社会的・倫理的影響の評価、企業の技術戦略との整合性の検証、セキュリティやプライバシーの観点からの妥当性判断、そして何よりもビジネス価値の最大化に向けた戦略的な意思決定へとシフトしていきます。

また、システムの目的設定や開発の方向性の決定といった根本的な判断も、依然として人間が担うべき重要な責務となるでしょう。これらの判断には、技術的な知見だけでなく、ビジネスや社会に対する深い洞察力が必要とされます。

3. 未来を見据えたキャリア戦略

これからのプログラマーには、まず技術力とビジネス感覚を兼ね備えた「テクノロジーストラテジスト」としての成長が期待されます。

そのためには、プログラミングや設計の基礎力を磨きつつ、顧客視点やクリエイティブな視座をもちつつビジネスの本質を理解する力も培う必要があります。

また、倫理的判断力やコミュニケーション能力といった人間的資質の向上も欠かせません。これらのソフトスキルは、AIとの効果的な協働や、チーム内でのリーダーシップの発揮に重要な役割を果たします。

3.1 プログラマーはAGI前になにをしておくべき

経験を積む
プログラミングはなんといっても、経験です。とにかく、たくさんのコードを読んで、自分で書く。ひと昔は GitHub にある有名なOSSのコードリーディングをすすめていましたが、今はLLMとの壁打ちも有用です。ある程度経験してくると、自分の「書き方」に固執してしまいますが、LLMと壁打ちすることで、最新の知見や、あらたな表現を獲得できることが以前より簡単になりました。

論理的思考力を身に着ける
またプログラミングの経験をつむことで知識がつくだけでなく、論理的思考力や数学的思考を鍛えることができます。私は論理的思考力をみにつけるのに、ロジカルシンキングを勉強するより、プログラミングを勉強したほうが手っ取り早いとおもっています。ある程度の規模のプログラムを書くようになると、嫌でも構造設計をしないといけなくなり、分析と設計の繰り返しを行うことになります。プログラミングをするまでの分析・設計の時間のほうが長いくらいです。ただこれにより、ものごとを因数分解してとらえることができるようになり、論理的思考力を向上させることができます。論理的思考力はAGI後にもあなたの強力な武器になるとおもいます

完成品を作ってリリースし、世に問う、ユーザーと接点をもつ経験を積む
プログラミングをするなら必ず完成品まで作る必要があります。ある特定の機能だけではいけません。かならず、完成品をつくりましょう。そして、リリースしましょう。私がプログラミングをはじめたころに、作品を発表する場は限られていました。最初は雑誌投稿で作品を世に出しました。小さな作品です。中学生のころ、作品をつくって雑誌に投稿しはじめて原稿料1万円をもらったときの感動をわすれたことはありません。現代はいくらでも作品をリリース、配布する方法があります。必ずリリースしましょう。ユーザーが何を求めているのか。どういう反応があるのか。世の中と接点を持つことが非常に重要です。

3.2 AGI後にも価値あるプログラマー

AGI時代を迎えても、役割に変化はあるもののプログラマーの重要性が失われることはありません。

とくにさきほど申し上げたような経験・スキルを持つプログラマーの価値はますますあがるでしょう。

従来、プログラマーはビジネス要件や人間の意図をコンピュータが理解できる言語(プログラミング言語)に翻訳する「技術翻訳者」としての役割を担ってきました。

システムの要件を理解し、それを正確なコードとして表現することが主な責務でした。しかし、AGI時代では、この技術的な翻訳作業の大部分はAGIが担うことになります。

代わって、プログラマーはユーザーの本質的なニーズと可能性を理解し、それを現実のソリューションへと昇華させる「価値創造の翻訳者」へと進化します。具体的には、ユーザーが明確に言語化できていない潜在的なニーズを把握し、それをAGIと協力して実現可能なソリューションへと具体化する役割を担います。

この過程では、ビジネスの文脈、社会的な影響、技術的な実現可能性、そして人間の感性や使用体験といった多様な要素を統合的に理解し、翻訳していく必要があります。

つまり、AIと人間の強みを理解し、それらを最適に組み合わせることのできる役割が、これまで以上に重要になっていくのは間違いなく、その役割にもっともふさわしいのは実戦経験をつんだプログラマーです。

そにために個々のプログラマーはいまから自身の基礎力を磨き、経験を積み、スキルをみにつけ、それをAIによって増幅させる術を身につけることが不可欠です。技術の進歩に柔軟に対応しながら、自己の価値を高め続けることが、未来のキャリアを築く鍵となるとおもいます。

さて、最後になりますが、本稿は、現時点での技術動向や予測に基づいた一つのシナリオです。技術の進展や市場の変化に合わせて、柔軟にキャリア戦略を見直していくことが重要です。

Qualiteg では一緒に働いてくれる優秀な仲間を募集しています!

当社では、自社サービス開発やAI/MLのR&Dを担っていただける優秀なエンジニア、リサーチャーを積極的に募集しております。まだ新しい会社ですのでみんなで世界一居心地の良いエンジニア文化を作っていきたいとおもいます。

採用ページ

https://qualiteg.com/career

Read more

PythonとWSL開発のトラブルシューティング: PyCharmとCondaの環境不一致問題

PythonとWSL開発のトラブルシューティング: PyCharmとCondaの環境不一致問題

こんにちは! 今回は、WSL上のConda環境をPyCharmから利用する際に発生した「同じ環境なのにパッケージリストが一致しない」という問題に遭遇したため、その原因と対策について書いてみたいとおもいます 問題の状況 開発の流れは以下のようなものでした 1. WSL環境でConda仮想環境を作成 2. その環境をPyCharmのプロジェクトインタプリタとして設定 3. 開発を進める中で奇妙な現象に気づく 具体的には、次のような不一致が発生していました * PyCharmのプロジェクト設定で表示されるpipパッケージのリスト * WSLでConda環境をアクティベートした後にpip listコマンドで表示されるパッケージのリスト これらが一致せず、「WSL側のシェルから直接インストールしたパッケージがPyCharmで認識されない」という問題が生じていました。 この手の問題でよくある原因は、PyCharm側がWSL側の更新を得るのに少し時間がかかったり、 Indexing が遅れているなどなのですが、今回はそれが原因ではありませんでした。 危険な「静かな

By Qualiteg プロダクト開発部
人気ゲーム「ヒット&ブロー」で学ぶ情報理論

人気ゲーム「ヒット&ブロー」で学ぶ情報理論

こんにちは! Qualiteg研究部です! 今日はAIにおいても非常に重要な情報理論について、Nintendo Switchの人気ゲーム「世界のアソビ大全51」にも収録されている「ヒット&ブロー」というゲームを題材に解説いたします! はじめに 論理的思考力を鍛える定番パズルゲームとして長年親しまれている「ヒット&ブロー」(海外では「Mastermind」として知られています)。 このゲームは一見シンプルながらも、その攻略には深い論理的アプローチが必要とされております。 本稿では、このゲームについて情報理論という数学的概念を用いてゲームの素性を分析する方法について掘り下げてみたいとおもいます。 さらに、この情報理論が現代の人工知能(AI)技術においてどのように活用されているかについても触れていきます。 ヒット&ブローのルール説明 ヒット&ブローは、相手が秘密に設定した色や数字の組み合わせを推測するゲームです。日本では主に数字を使った「数当てゲーム」として親しまれていますが、本記事では色を使ったバージョン(マスターマインド)に焦点を当てます。 Nintendo Sw

By Qualiteg 研究部
Model Context Protocol(MCP)入門:いよいよセマンティックWebの世界へ

Model Context Protocol(MCP)入門:いよいよセマンティックWebの世界へ

こんにちは! きょうは話題のMCPについて解説いたします! はじめに 「AIが便利なのはわかるけど、自分のデータにアクセスさせたり、他のアプリと連携させたりするのは難しそう...」 このような悩みを持っている方は多いのではないでしょうか。 実際、従来のAIには大きな壁がありました。トレーニングデータの範囲でしか回答できない、リアルタイム情報にアクセスできない、外部アプリケーションを操作できないなどの制約です。 トレーニングデータの外側にあるデータをうまく検索する技術としてLLM黎明期からRAGとよばれる技術が発展してきました。 データ検索だけではなく、あらゆる分野でAIが半ば自動で連携してくれる技術が登場しました。 それが「Model Context Protocol(MCP)」です。 本記事では、AIと外部ツールの連携を革新的に簡単にするMCPについて、基本から実用まで詳しく解説します。 MCPの本質:AIのための標準インターフェース MCPは、AIモデルと外部ツール・アプリケーションの間の通信を標準化するプロトコルです。これはインターネットの世界でいえば、

By Qualiteg プロダクト開発部
GPUサーバーの最適容量計算: キューイング理論と実践的モデル

GPUサーバーの最適容量計算: キューイング理論と実践的モデル

最大ユーザーサポート数計算ツール 同時に1件のみ処理できるGPU変換サーバーの最大ユーザーサポート数を計算します 処理時間 (t_p) 分/件 1件の変換処理にかかる時間 目標システム利用率 (ρ) 0 〜 1 安定稼働のための目標稼働率(推奨: 0.7〜0.8) ピーク係数 (P_c) 倍 最も混雑する時間帯の平均アクセス倍率 稼働時間 (H) 時間/日 システムが1日に稼働している総時間 アクセス確率 (P_a) 0 〜 1 1人のユーザーが1日にシステムを利用する確率 1ユーザーあたりの変換回数 (F) 回/日 利用する日の平均変換処理回数 計算過程を表示 計算結果 サポート可能な総ユーザー数: 人 計算式: N = (ρ × μ × H) ÷ (P_a

By Qualiteg プロダクト開発部