AIによる自動化は新たな段階へ–ソフトウェア開発サイクル全体の効率化に期待

 人工知能(AI)は、DevOpsの取り組みをフラジャイル(脆弱)からアジャイル(俊敏)へと変える助けになるだろうか。AIはソフトウェアのコード生成だけでなく、それに伴うすべての作業、たとえば仕様策定、文書化、テスト、展開などを大幅に加速する可能性がある、との見方が業界全体に広がっている。

AIはこの数年、運用や予測に使用され、舞台裏で動作してワークフローやスケジュールを自動化してきた。ITマネージャーやIT担当者は今、生成AIの可能性を受け入れつつある。

GartnerのManjunath Bhat氏が率いるアナリストチームによって発表された分析によると、AIを採用してソフトウェア開発ライフサイクルの強化を図るプラットフォームエンジニアリングチームの数が、今後3年以内に5%から40%に増加する見込みだという。

IT業界全体で、AIはDevOpsとそれに関連するアジャイル手法を強化する可能性があるとの楽観論が目立つ。「DevOpsの領域とAIの領域の融合は相互補完的な形をとり、ソフトウェア開発ライフサイクルの全段階が強化され、ソフトウェアの市場投入の期間短縮、信頼性向上、効率化が実現する可能性がある」。SASのプリンシパルソフトウェアエンジニアのBilly Dickerson氏は米ZDNETにこう語った。

生成AIとDevOpsプロセスに関連する活動が、非常に多く実施されている。自動化を専門とするStonebranchが発表した調査では、408人のテクノロジーマネージャーのほぼ全員(97%)が「生成AIを自動化プログラムに組み込むことに関心がある」と回答した。これらの専門家は「生成AIについて、多様なツールを結び付けて幅広いユーザーに力を与える極めて重要なツールだと考えている」と調査レポートの著者らは指摘する。

AIはDevOpsを強化するが、DevOpsもAIアプリケーション開発を強化する、ということがStonebranchの調査で示されている。機械学習パイプラインを採用して生成AI関連のイニシアチブに活用している回答者は、72%以上にのぼった。

生成AIを用いたソフトウェアコードの作成や修正に大きな注目が集まっているが、これは開発プロセスのごく一部にすぎない。今こそ、AIによってIT担当者とITマネージャーの他の業務を支援する方法に目を向けるべきだ。

「開発者は、平均で作業時間の10~25%をコードの作成に費やしている」とGartnerのBhat氏と共著者らは記している。「残りの時間で行っているのは、仕様の確認、ドキュメントの作成、コードレビュー、会議への出席、同僚の支援、既存のコードのデバッグ、他のチームとの共同作業、環境のプロビジョニング、本番環境のインシデントのトラブルシューティング、技術やビジネスの概念の学習などだ」

AIを「DevOpsフィードバックループのすべての段階、すなわち計画、コードのレビューと開発、ビルド、テスト、展開、監視、測定に統合することで、チーム内の共同作業が増加し、結果が確実に改善される」とSASのDickerson氏は指摘した。計画に関しては、「AIがユーザーの要望から要件を自動生成して、タイムラインの不整合を検出し、さらには不完全な要件を特定することで、プロジェクト管理プロセスを効率化できる可能性がある」

Dickerson氏によると、AIはコードのレビューと開発における手間のかかるプロセスの処理も可能だという。「AIは開発者に定型コードの自動生成に関する提案ができるだけでなく、コードレビュープロセスに貢献する可能性もある。このアプローチによってチーム間の共同作業が促進され、さらなるイノベーション、市場投入までの時間の短縮、ビジネス目標との整合性の向上につながると考えられる」

とはいえ、テクノロジーマネージャーやテクノロジープロフェッショナルは、AIを活用したDevOpsやその他のアジャイル手法に傾倒しすぎないよう注意する必要がある。「過度の依存はリスクをもたらす」。米ZDNETにこう語るのは、SiFiveのシニアディレクターで、Lynx Software Technologiesのマーケティング担当バイスプレジデントだったIan Ferguson氏だ。

「自律型AIプラットフォームがどのような過程を経て決定に至ったかを理解できなければ、説明責任を果たせなくなる」とFerguson氏。「AIの推論に透明性がない場合、出力結果をうのみにしてしまい、出力に疑問を持つことも、検証することもできなくなるおそれがある。われわれは、ごく一部の企業しか複雑なシステムを作成できないという未来に直面している。つまり、システムの品質が低下してしまうということだ」

Ferguson氏が強く求めているのは、「DevOpsにおける人間とAIの協力関係の構築だ。機械的なコーディングはAIが処理できるが、一連の詳細なシステム要件やシステム動作の定義は、人間が担当しなければならない」。同氏はこのように説明した。

Dickerson氏も、AI主導のDevOpsを進める際には注意が必要だと助言する。「AIはDevOpsフィードバックループの多数のタスクを自動化できるため、AIが自動で下す決定が正しいかを、人間が監督するのが理想だろう。ベストプラクティスは、ビジネスの重要な決定のすべてを人間が確実に承認することだ」

Bhat氏と共著者らはGartnerのレポートで、AIをソフトウェア開発ライフサイクルの一部分に適用した場合の影響について、次のように記している。「労力を削減するのではなく、他に移すことになり、時間を節約できたという誤った認識が生じるおそれがある。たとえば、コーディングの時間を節約しても、コードレビューとデバッグの時間が増えて、相殺されるかもしれない」

しかし、AIがDevOpsに与える影響について、期待を持てる理由がある。AIの適用によって、DevOpsプロセスにおける後ろの段階の支援や加速が可能であることを示す証拠がある。たとえば、ソフトウェアのビルドとテストの段階に関して、「AIはビルドプロセスの入力と出力を評価し、障害パターンを探して、復旧までの所要時間の最適化を支援できる可能性がある」とDickerson氏は述べた。

さらに、「膨大な量のデータを分析して予測を立てる能力があるため、テスト結果の分析にも役立つかもしれない。そのため、影響が最も大きいテストや信頼性の低いテストのパターンを特定して、テストプロセスの最適化に貢献できるだろう」

展開の段階では、「共通のインフラストラクチャーリソースのプロビジョニング、設定、管理をAIによって自動化できる。これにより、自動生成された成果物を使用する展開がトリガーされるため、エンジニアはより多くの時間を複雑な展開に費やすことが可能になる」とDickerson氏は語る。

監視と測定に関しては、「企業の展開では大量のデータが生成される場合があるため、DevOpsチームは発生した問題を解決するための情報を取捨選択するのに苦労することがある」とDickerson氏。「この取り組みを支援するために、AIは指標とログをリアルタイムで分析し、問題の検出を大幅に早めて、より迅速な解決を実現することが可能だ。AIは連続的なデータとパターンを分析することで、潜在的なボトルネックを予測して、改善すべき領域を特定し、DevOpsライフサイクルのあらゆる段階の最適化を支援できる可能性がある」

Ferguson氏は、人間による監督があれば、「AIはDevOpsやアジャイルなどのアプローチを強化できる」と述べた。ソフトウェアライフサイクルの全体にわたり、AIと人間を効果的に組み合わせることで、生産性とイノベーションの拡大が可能になるという。「ただし、透明性の確保、信頼の構築、ワークフローの再設計、スキルトレーニングを通じて、こうした未来を積極的に形作っていく必要がある」

Original Post>

Leave a Reply