開発者は、生成型人工知能 (GenAI) を利用して、より速く効率的にコードを記述できるようになりましたが、これまでと同様に慎重に、細心の注意を払って作業を行う必要があります。
ソフトウェア開発におけるAIの利用は目新しいものではないかもしれないが(少なくとも2019年からは存在している)、GenAIは自然言語、画像、そして最近ではビデオやコードを含むその他の資産の生成に大きな改善をもたらすと、フォレスターの副社長兼主席アナリストであるディエゴ・ロ・ジュディチェ氏は述べた。
また、将来は BYO AI にならなければならない理由: モデルのロックインはユーザーを妨げ、イノベーションを阻害する
ジュディチェ氏は ZDNET に対し、AI のこれまでのイテレーションは主にコードテストで使用され、機械学習はテスト戦略のモデルを最適化するために活用されていたと語った。これらすべてのユースケースに適用することで、GenAI は意思決定のサポートやコード生成の改善にとどまらない効果を発揮する。
Giudice 氏によると、GenAI は開発ライフサイクルに沿って、熟練した同僚のプログラマーやスペシャリスト (テスターやビジネス アナリストなど) へのアクセスを提供し、インタラクティブにクエリを実行して情報をすばやく見つけることができます。GenAI はソリューションやテスト ケースを提案することもできます。
「従来のAIや他の技術では得られなかった、大幅な生産性向上が初めて実現している」と同氏は語った。
AIはソフトウェア開発ライフサイクル全体にわたって活用でき、各段階で専用の「TuringBot」を使用して技術スタックとプラットフォームを強化できると彼は指摘した。
Forrester が作成した用語である TuringBot は、開発者がコードを構築、テスト、展開するのを支援する AI 搭載ソフトウェアとして定義されています。この調査会社は、TuringBot が技術文書の検索やコードの自動補完など、開発ライフサイクルのあらゆる段階で支援できる新しい世代のソフトウェア開発を推進すると考えています。
たとえば、「分析/計画 TuringBots」はソフトウェア開発の分析と計画段階を容易にすることができるとジュディチェ氏は述べ、そのような AI 製品の例として OpenAI の ChatGPT と Atlassian Intelligence を挙げた。また、Google Cloud の Gemina Advanced などはマイクロサービスと API の設計をコード実装とともに生成することができ、Microsoft Sketch2Code は手書きのスケッチから UI の動作コードを生成できると同氏は述べた。
さらに: ソフトウェアエンジニアリングにAIを実装しますか? 知っておくべきことはすべてここにあります
同氏はさらに、現在ソフトウェア開発における GenAI の最も一般的な使用例は「コーダー TuringBot」であり、一般的な IDE (統合開発環境) の自動補完機能を介してプロンプトからだけでなく、コード コンテキストやコメントからもコードを生成できると付け加えた。これには、JavaScript、C++、Phyton、Rust などの一般的な言語が含まれる。
生成モデルの大きな魅力は、多くの言語でコードを記述できるため、開発者がプロンプトを入力してコード行を生成、リファクタリング、またはデバッグできることだ、とBoomiのアーキテクチャおよびAI戦略責任者、マイケル・バッハマン氏は述べた。「基本的に、GenAIとやりとりする人間は、準開発者や上級開発者です」と同氏は述べた。
このソフトウェアベンダーは、自然言語のリクエストをアクションに変換する Boomi AI を含む自社製品の一部に GenAI を統合しています。Boomi によると、アプリケーション、データ、プロセスを接続するための統合プロセス、API、データモデルの設計に GenAI を使用できるとのことです。
同社は、自社のプラットフォームを実行するコードを厳重に監視する自社のソフトウェア開発者をサポートするために GenAI を使用しています。
また、AI は共同ソフトウェア開発においてチームプレーヤーになれるのでしょうか?
「そして、それが鍵です」とバッハマン氏は言う。「アプリケーション全体を構築するための主なソースとして GenAI を使用している場合、おそらく失望するでしょう。優秀な開発者は、コードを本番環境に導入する前に、GenAI を出発点として、または障害シナリオを徹底的にテストするために使用します。これが、私たちが社内で対処している方法です。」
彼のチームは、顧客の「実用的な AI 目標」を満たす機能の構築にも取り組んでいます。たとえば、Boomi は、多くの顧客がキーワード検索を、Web サイトのカタログなどのコンテンツを自然言語で検索する機能に置き換えたいと考えているため、検索システムを作成しています。
ジュディチェ氏によると、GenAIはセキュリティの修復にも使用でき、AIが生成したコードの脆弱性を探し、開発者が特定の脆弱性を修正するのに役立つ提案をすることができるという。
フォレスター社の主席アナリスト、ジョン・ブラティンセビッチ氏は、従来のコーディングと比較して、ノーコードまたはローコードの開発戦略は、スピード、組み込まれた品質、適応性を提供できると述べています。
さらに: プログラミングを超えて: AIが新しい世代の職種を生み出す
また、統合されたソフトウェア開発ライフサイクルツールチェーンと、ITコミュニティ外の非プログラマーや「市民開発者」を含む拡大された人材プールへのアクセスも提供するとブラティンセビッチ氏は述べた。
しかし、組織は大規模な実装のガバナンス、特に数千人にも及ぶ市民開発者の管理に関連した課題に直面する可能性があると、彼は警告した。価格設定も障壁となる可能性があり、通常はエンドユーザーの数に基づいており、これが導入を制限する可能性があると彼は述べた。
GenAIやAIを組み込んだソフトウェアアシスタントにより、サイバーセキュリティなどの分野で若手の専門家が人材不足を補うことができるようになる一方で、これらすべてのタスクには専門家の目によるレビューが依然として必要だとジュディチェ氏は述べた。
ブラティンチェビッチ氏もこれに同意し、プラットフォームが AI を通じて生成または自動構成するすべてのものを開発者やソフトウェア開発ライフサイクル内の他の役割を持つ者がレビューする必要性を強調しました。
「我々はまだ、ソフトウェア開発においてAIを盲目的に信頼する段階には達していないし、おそらく今後も達することはないだろう」と彼は語った。
Thoughtworks のアジア太平洋 CTO であるスコット・ショー氏によると、まず考慮すべきセキュリティ要件がある。この技術コンサルタント会社は、IDE 内であろうと開発者の作業方法をサポートするものであろうと、効率性を向上させるために新しいツールを定期的にテストしている。同社は顧客にとって適切であり、顧客の同意がある場合のみそうしているとショー氏はビデオ インタビューで述べ、一部の企業は依然として GenAI の使用に不安を抱いていると指摘した。
さらに: 生成型 AI の導入に向けて急ピッチで進む? 懐疑心が最善の防御策となる理由
「我々の経験では、[GenAI 搭載の] ソフトウェア コーディング ツールは [現時点では] セキュリティに配慮しておらず、セキュリティ コーディング プラクティスに [適応] していません」と同氏は述べた。たとえば、規制の厳しい環境やデータに敏感な環境の組織で働く開発者は、ソフトウェア配信プロセスの一環として、追加のセキュリティ プラクティスと制御を遵守しなければならない場合がある。
コーディングアシスタントを使用すると生産性が倍増するが、開発者はパイプラインに沿ってコードを適切にテストし、品質要件を満たすことができるかどうかを自問する必要がある、と彼は指摘した。
これは諸刃の剣です。組織は、開発する製品のセキュリティを高めるために GenAI がどのようにコーディング手法を強化できるかを考慮する必要がありますが、同時に、AI が新しい攻撃ベクトルや脆弱性によってセキュリティ リスクをさらに高める可能性も考慮する必要があります。
GenAI は、その規模がかなり大きいため、関連するリスクを含め、組織が行うすべてのことを拡大すると Shaw 氏は指摘した。これにより、さらに多くのコードを生成できるため、潜在的なリスクの数も飛躍的に増加することになる。
ローコード プラットフォームは GenAI Turingbots がソフトウェア開発を支援するための優れた基盤となる可能性がある一方で、組織はどのような大規模言語モデル (LLM) が使用されているかを把握し、それが企業ポリシーと一致していることを確認する必要があると Bratincevic 氏は指摘しました。
同氏は、GenAI のプレイヤーはこの点で「大きく異なる」と述べ、OpenAI の ChatGPT などのパブリック LLM を使用する場合は、バージョンとライセンス契約を確認するよう企業に促した。
また、Microsoft Copilot はコーディングテストのすべてで不合格でした。
同氏は、自然言語からコードやコンポーネント構成を生成する GenAI 搭載機能はまだ成熟していないと付け加えた。市民開発者の間では採用が増えるかもしれないが、プロの開発者を感動させることはなさそうだ。
ブラティンチェビッチ氏は次のように述べた。「現時点では、AI に関して良いことを言うが、実証されていない、あるいは軽量なプラットフォームよりも、実証済みで十分に統合されたローコード プラットフォームと GenAI を組み合わせた方が賢明なアプローチです。」
LLM がコード作成の重労働を担う一方で、出力が正確であることを保証するためには、人間が何が必要かを把握し、関連するコンテキスト、専門知識、デバッグを提供する必要がある、と Bachman 氏は言う。
開発者は、特にオープンソース ツールを使用する場合、独自のデータや知的財産 (IP) を共有することにも注意する必要がある、と同氏は述べた。開発者は、コードや財務数値などのプライベート IP の使用を避け、他の組織の IP を使用して GenAI モデルをトレーニングしたり、その逆を行ったりしないようにする必要がある。「オープンソースの LLM を使用する場合は、実稼働する前に十分にテストされていることを確認してください」と同氏は付け加えた。
また、GitHub は「ソフトウェア構築の根本的に新しい方法」を目指した AI 搭載ツールをリリースしました。
「GenAI ツールのトレーニングに使用するモデルについては、極めて慎重になるべきだ。それらのモデルを価値あるものにしたいなら、適切なパイプラインを構築する必要がある。そうしないと、GenAI はさらに多くの問題を引き起こす可能性がある」と同氏は警告した。
まだ初期段階であり、テクノロジーは進化し続けています。ソフトウェア開発者を含む役割の変化にテクノロジーがどのような影響を与えるかは、まだはっきりとはわかっていません。
たとえば、AI 搭載のコーディング アシスタントは、スキルの評価方法を変える可能性があります。開発者が優れているとみなされるのは、経験が豊富だからでしょうか、それともコーディング シーケンスをすべて覚えているからでしょうか、とショー氏は冗談交じりに語りました。
現時点では、GenAI の最大の可能性は情報を要約し、開発者がビジネスをより深く理解するための優れた知識ベースを提供する能力にあると彼は考えています。その後、開発者はその知識を具体的な指示に変換できるため、システムはタスクを実行し、顧客が望む製品や機能を構築できます。

元記事: https://www.zdnet.com/article/code-faster-with-generative-ai-but-beware-the-risks-when-you-do/