ソートリーダー

ソフトウェア開発エコシステムにAIが与える影響は?

mm
Unite.AI を Google の優先ソースに追加

人工知能(AI)は、イノベーションを推進する技術の中で、最も注目されるものの一つです。銀行、エンターテインメント、電子商取引、ヘルスケア、フィットネスなど、多くの業界で、AIは革新的な進歩をもたらしています。

AIは、ソフトウェア開発の各段階でも優れた成果を上げています。特に、自律学習能力と大量のデータから有意義な情報を迅速に抽出する能力を併せ持つことで、コーダーの生産性、速度、品質を向上させています。

AIがプログラミングの世界にさらに浸透することで、ソフトウェアの開発プロセスと開発者の役割が再定義されることは間違いありません。人間と機械のタッグによってもたらされるソフトウェアエンジニアリングの画期的な変化をみていきましょう。

開発者はより創造的で複雑なタスクに集中できる

現在、AIは単独で開発サイクルを完了することはできませんが、繰り返し作業や時間のかかるタスクを自動化する分野で不可欠な存在となりました。TabnineやOpenAI CodexなどのAIベースのコーディングアシスタントがこの分野で注目されています。これらのツールは、GitHubなどのリソース上にあるオープンソースプロジェクトを基に自動コード補完を行います。

この貢献は、ソフトウェアエンジニアのタイピング時間を節約し、コードの精度を向上させるだけでなく、設計の洗練、ユーザーエクスペリエンスの向上、問題解決、創造的な側面に集中できる時間を増やします。

人間とAIの「パートナーシップ」は、互いの役割が重複せずに補完し合う新たなパラダイムシフトをもたらすでしょう。開発者の役割は、より監督的なものになり、AIが退屈な作業の大部分を担うようになります。

新人開発者のためのメンターシップも、AIが将来さらに重要な役割を果たす分野の一つです。Mendix AssistなどのAIベースのツールは、ベストプラクティスを提供し、プロジェクトを単独で完了できないITエンスラスティックにアクセスできるようにします。これにより、業界の民主化が進むでしょう。

AIはソフトウェアの欠陥を早期に発見することを容易にする

品質保証テストは時間がかかり、リソースを大量に消費するプロセスであり、落とし穴も多くあります。ソフトウェアベンダーは、製品の欠陥を探すために限られた時間しか割けません。したがって、製品が顧客の環境にデプロイされた後に初めて発見される、粗いコードが存在する可能性があります。

AIはこの分野でも革命をもたらしています。実際、ソフトウェアテストはAIの最も有望な応用分野の一つです。AIは巨大なコードベースを走査して、シンタックスエラー、論理的不一致、コンパイルミス、他のバグを人間の分析者の能力を超えた速度と精度で発見できます。

AIが品質保証ルーチンを強化する興味深い例の一つは、プログラムのグラフィカルユーザーインターフェイスをテストするために画像ベースのマシンラーニングを使用することです。もう一つのテクニックである差分ファジングでは、同じコードを異なるソフトウェア環境に導入して、ランタイムの不一致を観察し、微妙なセマンティックおよび論理的な欠陥を特定します。事前に定義されたシナリオに基づくテストを実行するだけでなく、AI駆動のツールは過去のプロジェクトから学習し、新しいテストケースを作成できます。これにより、開発時間が大幅に短縮され、エンドユーザーが品質の高い製品を受け取ることが保証されます。

リアルタイム自動エラーマネジメントがさらに普及する

未解決のエラーが時間の経過とともに蓄積すると、テクニカルデットと呼ばれる状況が生じます。これは、品質よりも製品の出荷を優先する開発エコシステムでよく見られます。問題を無視すると、将来的にソフトウェアのダウンタイムやグリッチを招く可能性があります。さらに、製品にはセキュリティ上の脆弱性が存在し、簡単に妥協される可能性があります。ソフトウェアとしてのサービスを提供する組織にとって、これらは特に悪影響を及ぼすシナリオです。製品の評判が損なわれ、短期間の利用不可でも金銭的損失を招きます。

AIとマシンラーニングアルゴリズムがこの空白を埋めることができます。エラーを自動的に発見し、事前に設定された重大度スケールに基づいて分類し、人間の介入がほとんど不要な状態で修正します。この機能は、ソフトウェアライフサイクルの後半でバグの修正コストが大幅に増加することから、非常に貴重です。

このアプローチの効率性は、最新の技術が数分で非常に大きなデータベースを調査し、粗いコードや他の規範からの逸脱を発見し、ソフトウェアエンジニアがそれらを修正するための手順を示す能力に基づいています。高精度もこの戦略のプラス側面です。また、AIは過去に分析したデータから結論を導き出し、エラーデテクションと管理の力を向上させることができます。利点が多いため、このトレンドは開発サークルでさらに普及するでしょう。

AIはプロジェクトに継続的なユーザーフィードバックをもたらす

ターゲットオーディエンスの要件を完全に満たす製品を提供するには、開発者はフィードバックを最優先で行う必要があります。この顧客中心のアプローチは、ユーザーエクスペリエンスを向上させるためのアクション可能な洞察を提供し、応用ソフトウェアのリーチを大幅に拡大するのに役立ちます。

マシンラーニングアルゴリズムは、ユーザーがソフトウェアとどのようにやり取りするかをリアルタイムで監視するように訓練できます。開発者はこれらのパズルの小さなピースを収集し、整理する手間を省けます。ユーザーの行動データの連続したストリームは、さまざまな使用シナリオに基づいて動的なエクスペリエンスを作成するのに役立ちます。たとえば、ソフトウェアはUIの表現、要素のサイズと位置を柔軟に調整できます。

要件管理は、ユーザーの期待を収集、検証、記録するプロセスです。適切に実行されないと、プロジェクトの遅れ、コストの増加、または完全な混乱を招く可能性があります。AIパワードソリューションは、ベストプラクティスガイドラインに基づいて要件を分析し、不一致を特定し、改善を提案することで、このプロセスを向上させることができます。

これらのツールは、抜け穴、不完全または複合的な要件、さまざまな曖昧さを容易に特定し、レビュー時間を最小限に抑えることができます。IBM WatsonやVisure Requirements ALMは、この分野で最もよく知られているツールの例です。

計画とコスト見積もりがより容易になる

これらの初期段階のニュアンスに精通している場合、開発チームに与える負担はよくわかると思います。これは、多くの変数を含む方程式のようなもので、ITスタッフが適切に解決できないことがよくあります。幸い、AIはタイムラインと必要な予算の見積もりにおいて非常に優れています。

正確な予測は、プロジェクトの全体像、顧客の要件、特定のタイプのソフトウェアを開発する際に発生する課題、そしてそれらを解決するのにかかる時間を理解することです。マシンは、過去のプロジェクトと検証済みの第三者ソースからのメタデータに基づいてこれを理解するように訓練できます。

これらの内部動作の詳細は、プロジェクトを受け入れるかどうかを決定する上で非常に重要です。時には、プロジェクトを引き受けるよりも「ノー」という返事を出す方が賢明です。締め切りに間に合わないことは顧客の苛立ちの原因となるため、正確な見積もりを提供することが最善です。予測分析をツールキットに持つAIは、この点で銀の弾丸となり、情報に基づいたビジネス上の決定を下すための基盤となるでしょう。

AIはコードのセキュリティを向上させる

開発の初期段階から製品のリリース、そして顧客のインフラストラクチャへのデプロイまで、セキュリティは常に開発者のトッププライオリティでなければなりません。多くのデータ漏洩やランサムウェア攻撃は、コードのミスによって生じる脆弱性が原因で発生します。こうした災害を避ける唯一の方法は、積極的にそのようなミスを見つけ、修正することです。これは、SecDevOpsと呼ばれる戦略です。

AIはこの点で開発者の最良のアライであると言えるでしょう。マシンラーニングアルゴリズムは、MITREのCVEデータベースなどのパブリックソースから得られた既知の脆弱性に基づいて、コードの各行をチェックし、知られている脆弱性を探します。保護はソフトウェアのライフサイクル全体に及ぶため、デプロイ後にも、AIは内部の脅威やゼロデイアタックを、疑わしいネットワークアクティビティに基づいて検出できます。

AIの使用は、「シフトレフト」と呼ばれる原則に適しています。この原則は、不完全性をできるだけ早く開発プロセスで発見し、修正することを目指しています。この実践により、コストが削減され、開発者は上記のテクニカルデットの罠を避けることができます。

一方で、サイバークライムはすでにこの技術を悪用しています。ChatGPTを悪用してマルウェアを作成するという最近の報告は、心配な趨勢を示しています。ただし、CI/CDパイプラインにセキュリティを組み込むためのさらなるAIの実装により、白帽ハッカーに有利な状況になる可能性があります。

今後について

AIはすでにソフトウェア開発の基盤に組み込まれており、これらのつながりはさらに強化されるでしょう。AIがコーダーを不要にするという分析家の主張は、現実から遠いと考えられます。来年、この業界の進化は、人間のエラーの余地が大きい繰り返しのタスクやプロセスの自動化の深化に従う可能性が高いです。人々はソフトウェアを書き続け、AIは彼らに親切な支援を提供するでしょう。

David Balabanは、17年以上のマルウェア分析とアンチウイルスソフトウェア評価の経験を持つコンピュータセキュリティ研究者です。Davidは、MacSecurity.net Privacy-PC.comプロジェクトを運営しており、これらは社会工学、 マルウェア、ペネトレーションテスト、脅威インテリジェンス、オンラインプライバシー、ホワイトハットハッキングを含む現代の情報セキュリティ問題についての専門家の意見を提供しています。Davidは、マルウェアのトラブルシューティングの強い背景を持っており、最近はランサムウェア対策に焦点を当てています。