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と人間を効果的に組み合わせることで、生産性とイノベーションの拡大が可能になるという。「ただし、透明性の確保、信頼の構築、ワークフローの再設計、スキルトレーニングを通じて、こうした未来を積極的に形作っていく必要がある」 この記事は海外Red Ventures発の記事を朝日インタラクティブが日本向けに編集したものです。