ソフトウェア開発者の役割が変わりつつある。それはすべて、人工知能(AI)の影響によるものだ。今や明らかなことだが、OpenAIの「GPT-4」やMicrosoftの「Copilot」などの生成AIモデルとアシスタントは、大量のコードをほぼ瞬時に、あらゆる言語とあらゆる目的で生成する能力に長けている。
このテクノロジーが可能にする能力により、ソフトウェア開発者の役割は縮小されることになるだろう。現時点での論点は、それが「どれくらいの規模か」だ。
業界観測筋の評価では、今のところは問題ない、とされている。
しかし、生成AIが開発者の成功に寄与するのか、開発者の役割の多くを奪うのかについては、さまざまな反応がある。
また、生成AIがアプリケーションモダナイゼーションに向けた地ならしに役立つ可能性もある。
「生成AIは、開発者が自らの役割に向き合う姿勢を劇的に変え、まさに生産性の革命を引き起こそうとしている」。こう語るのは、The Planet GroupのLaunch Consulting部門でプリンシパル兼テクノロジーリーダーを務めるJoe Welch氏だ。「先頃のプロジェクトで『GitHub Copilot』を『VS Code』に組み込んだところ、プログラマーが10分かけていた小さな関数の作成などの作業が、30秒に短縮され、関数を説明するコメントを書くだけですむようになった。関数の実際のコードはCopilotによって作成される。多くの場合、これらの関数はそのままで正常に動作し、変更を加える必要はない。これは控え目に言ってもゲームチェンジャーだ」
生成AIツールは開発者の退屈な重労働の多くを引き取る可能性があるが、こうした技術の登場によって、組織内での開発者の役割をより高い次元に引き上げる機会が生まれる。要するに、AIと自動化の時代における縮小とは、決して悪いことではなく、より興味深い新たな役割へとつながる可能性があるということだ。
現在の業界は、生成AIプラットフォームがソフトウェア開発にもたらす力と生産性に沸いている。「多くの開発者にとって、生成AIはこれまでで最も価値のあるコーディングパートナーになるだろう」。コンサルティング会社KPMGのレポートにはこう書かれている。最終的には、過労でストレスを抱えていたIT担当者が、仕事から退屈な側面を切り離し、もっとビジネスに関係する重要な問題に専念できるようになるかもしれない。
これは、基本的なレベルでは、プロジェクトでこなせる作業量が増えることを意味する。AIの利用が広がれば、「開発者がもっと多くのフレームワークやプラットフォーム、製品、記録システムに対応できるようになる」とKPMGのレポートの著者らは指摘する。「生成AIは、通常扱えるよりも幅広いプロジェクトに取り組むために必要な足場とガイダンスを提供するだろう」
しかし、将来的にAIと自動化が仕事に与える影響という点では、生産性の向上は出発点でしかない。生成AIの採用拡大により、開発者はさらに高度な役割に対応し、AI提供リソースをまとめてビジネスの要件にマッピングすることも求められるだろう。「コードをどのように実行させたいのかを明確に説明する能力が、開発者にとって一段と重要になる」。Motorola Solutionsの最高技術責任者(CTO)を務めるMahesh Saptharishi氏はこのように述べた。
「優れたユーザーストーリーによってAIに適切な情報を与えて、望ましい答えを得るとともに、質問のし方や結果をテストする方法を理解しなければならない」とSaptharishi氏。「ユーザーストーリーを機能や製品に変換するスピードが上がるにつれて、アジャイル方法論の調整が必要になるだろう。多くの点で、ソフトウェアが実行すべき内容をユーザーストーリーの形式で記述したものが、新しいコードになるかもしれない」
このような重点の変化が「縮小」へとつながるが、それが意味するのは、実際のプログラミングの仕事が減少し、開発者がもっとビジネスに注力して、特定のアプリケーションに必要な機能の組み立てに力を入れるようになるということだ。
生成AIの進化に伴い、「人間のプログラミングスキルの必要性が薄れていき、やがて人間のプロンプトエンジニアに取って代わられると思う」。Blue Yonderの最高経営責任者(CEO)であるDuncan Angove氏はこう予測する。
Angove氏としては、実際のプログラミングの仕事が減少して、開発者がもっとビジネスに注力し、特定のアプリケーションに必要な機能の組み立てに力を入れるようになる、と予測している。
「ビジネスアナリストとプロダクトマネージャーが新しいプロンプトエンジニアとなって、ビジネスニーズをプロンプトに変換し、必要なコードを生成させる。短期的にはコードの品質をチェックするプログラマーも引き続き必要だが、それも時とともに姿を消していくだろう」
もちろん、この縮小の規模をある程度見通すことも重要だ。開発者がAIを使ってアプリケーションを丸ごと一晩で書き上げるようなことはない、とSaptharishi氏は語る。「AIは、開発者がもっと速く仕事をこなし、ミスを減らすのに役立つ。AIがアプリ開発において果たす役割は時間とともに大きくなっていく。AIを多用する環境においても、IT担当者の創造性や問題解決能力、そしてトレーニングの能力やコンセプトを他人に説明する能力が、成功の重要な要素になるだろう」
実際のコード生成に関して、開発者の生産性向上に寄与するどころか、致命的な問題になりかねない要因がある。それは、実質的に他の場所で設計されたコードを自由に使用することの法的な影響だ。「生成AI関連の知的財産の問題は未解決のままだ」とKPMGのレポートの著者らは警告する。「これらのモデルは、多種多様なライセンスのオープンソースコードで訓練されており、生成されるソフトウェアがオープンソースコードに酷似しているとみなされた場合にどうなるかは、現時点では分からない」
開発者の役割がどのような形で縮小されるかについては議論の余地が大いにあるが、LaunchのWelch氏は、開発者の能力に多数の好ましい影響があり、常に要求の厳しいビジネスにおいて、これまでよりはるかに迅速に、目的にかなった成果を出せるようになる、と予測する。
- レコメンデーションエンジンとして:重要な利点は、「AIレコメンデーションをコード開発プロセスに統合すること、またはAIレコメンデーションをコードチェックイン時に提供すること」になるだろう、とWelch氏は述べた。「その好例がGitHub Copilotだ。開発者がコードを入力すると、アドバイスや提案を得られる。また、自分が書こうとしているコードを特別な形式のコメントで伝えると、Copilotがその関数のサンプル実装を提供する」
- 既存コードのドキュメンテーションを作成して新人開発者の参加を手助け:「当社ではAIを使用してサブシステムのトップレベルの概要を提供し、その後で各モジュールの詳細な説明を提供している」とWelch氏。「開発者はこれらの概要を読めば、AIチャットボットと直接対話して、特定の用途の関数やコードのセクションに関する詳細な質問ができる。これにより、新しいコードベースの理解に必要な時間全体を大幅に短縮可能だ」
- 非推奨のライブラリーを更新:「継続的に取り組んでいる課題の1つが、適切なセキュリティガイドラインに従ってサードパーティーのライブラリーを更新し、サポート対象のバージョンに維持することだ」。Welch氏はこのように語る。「これらのライブラリーのアップグレードに伴うリスクの度合いは、よく分からないことが多い。生成AIは、全体的な労力を予測して、変更が必要なコードパターンを具体的に特定し、これらのライブラリーとフレームワークを最小限の労力とビジネスリスクで最新の状態に保つのに有効だ」
- レガシー言語のアプリケーションを移行:「『COBOL』などの古い言語で書かれた大規模なコードベースを『Java』や『C#』などの新しい言語に移行させる作業が、AIによって大幅に容易になる」とWelch氏。「こうした移行は、古い言語と新しい言語の両方に精通した開発者が必要であるため、困難な作業になることが多い」
だが、はっきりさせておきたい。AIと自動化の時代におけるソフトウェア開発者の役割の縮小は、すでに始まっている。突き詰めていくと、開発者や他のIT担当者が豊富な機会を得られるのは、「簡単にコピーしたり教えたりできないもの」だろう、とAngove氏は予測する。「大規模な言語モデルにはできないことを考えて、それをやってみよう。斬新な発想の価値もさらに高まる。現在無料のアプリケーションではなく、ツール(LLM自体)の構築に役立つスキルを伸ばしてほしい」
ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)
Enjoyed this article? Sign up for our newsletter to receive regular insights and stay connected.
