デジタル免疫でソフトウェア品質を高めるには:Gartner Insights Pickup(230)
ソフトウェアおよびアプリケーションエンジニアリングリーダーは、デジタル免疫システムの5つの要素を構築することで、アプリケーションのアップタイムとユーザーエクスペリエンスを向上させ、エンドユーザーの満足度を高められる。
ガートナーの米国本社発のオフィシャルサイト「Smarter with Gartner」と、ガートナー アナリストらのブログサイト「Gartner Blog Network」から、@IT編集部が独自の視点で“読むべき記事”をピックアップして翻訳。グローバルのITトレンドを先取りし「今、何が起きているのか、起きようとしているのか」を展望する。
かつては、ソフトウェアアプリケーションエンジニアリングの成功の尺度は、チームがソリューションを「スケジュールと予算通りに」提供したかどうかだった。
今では、それでは不十分だ。デジタルビジネストランスフォーメーションは、人々の成功の捉え方を変えている。ソフトウェアおよびアプリケーションエンジニアは、魅力的なユーザーエクスペリエンスをもたらし、ビジネス価値に貢献する、効果的なソリューションを提供することを期待されている。
実際、「Gartner 2020 Digital Business Platform Survey」では、回答者の4分の3以上が「自分のチームは利益創出を期待されている」と答えた。
だが、それができると思っているアプリケーションおよびソフトウェアエンジニアリングのリーダーはほとんどいない。開発およびテストのアプローチが旧来のままだからだ。
「チームは、堅牢(けんろう)でレジリエントな(回復力の高い)アプリケーションの構築や、予期せぬ障害への対処、技術的負債を作るよりも速いペースでの価値を提供するスキルが不足している」と、Gartnerのアナリストでシニアディレクターのヨアヒム・ヘルシュマン(Joachim Herschmann)氏は語る。
「これでは急速な変化やシステムの複雑性に対処できないため、顧客の期待に応えられない。企業は、運用上とビジネス上のリスクにさらされてしまう」(ヘルシュマン氏)
ソフトウェアエンジニアリングリーダーはこうしたリスクを緩和し、ビジネスに大局的な影響をもたらす新しいプラクティスとアプローチを模索している。
デジタル免疫の考え方に立つことで、これらを確立するためのロードマップが得られる。このロードマップでは、優れたユーザーエクスペリエンスを提供するレジリエントなソフトウェアアプリケーションを開発するために、導入すべき一連のプラクティスと技術が示される。
ソフトウェアエンジニアリングチームはこのロードマップを実行することで、機能のバグからセキュリティの脆弱(ぜいじゃく)性やデータの矛盾まで、幅広い問題を検知し、対処できる。
デジタル免疫は、ソフトウェアおよびアプリケーションエンジニアリングのアプローチに次の重要な変更を加えることを可能にする。
- 従来のようにアプリケーションやプロジェクト単位で品質に取り組むのではなく、エコシステム全体で品質への取り組みを推進する
- 品質を後付けで扱うのではなく、エンドユーザーニーズによって定義した上で、アプリケーション開発プロセスの全ての段階に組み込む
- レジリエントなアプリケーションの構築に必要な役割、技術、プラクティスを特定し、必要なスキルを持ったスタッフに担当させる
デジタル免疫システムには、次の5つの要素がある。チームはこれらの要素を取り入れることで、これまでのアプローチやプラクティスを改善できる。
デジタル免疫システムの5つの要素
自律型テスト
人工知能(AI)や機械学習(ML)に基づく技術を使って、人手を介さずにソフトウェアテストをする。テストケースを自動実行するだけでなく、テストの計画や作成、保守、分析も完全に自動化する。これらの作業を連携させ、それらの独立と自律を実現する。
カオスエンジニアリング
稼働中のサービスに意図的に障害を起こすカオス実験や障害テストにより、ソフトウェアのバグや障害ポイントなどの弱点を発見する。Gartnerの最近の調査では、回答者の18%がカオスエンジニアリングを既に採用しているか、祭用する計画だと答えている。本番前の環境でカオスエンジニアリングを使用し、得られた教訓を通常の運用に応用するのが理想的だ。
自動修復
ソフトウェアシステムやエコシステムが自身をモニタリングし、運用スタッフを介さずに問題を自動的に修正する仕組みを構築する。問題の自動修正の例としては、「クラッシュしたアプリケーションを再起動する」「アプリケーションの不適切な構成変更を元に戻す」などが挙げられる。
可観測性
ソフトウェア開発者やエンジニアが、より迅速に、より確信を持って問題の根本原因を特定できるように、ソフトウェアやシステムを観測の対象として可視化することを指す。可観測性ツールは重要な異常を発見し、ログファイルや指標の中で関連する可能性がある情報とリンクできる。アプリケーションに可観測性を直接組み込むことで、チームはアプリケーションの稼働時間の改善を支援できる。
継続的な検証
本番環境のデータとシステムの整合性をモニタリングし、矛盾や異常な挙動を、それらがユーザーに問題を引き起こす前に特定することを目指す。
最も効果的なデジタル免疫を実現するには「魅力的なユーザーエクスペリエンス(UX)を構成するものは何か」に焦点を当てる。単に「それは機能するかどうか」を問うのではなく、「どうすれば、もっと有効に機能するか」「どうすれば、よりレジリエントになるか」も問うようにする。そのためには、イノベーションのマインドセットを持ち、製品に品質を作り込む設計開発プロセスへの移行、本番環境のソフトウェアに欠陥が紛れ込む現実を踏まえた計画が必要になる。
出典:How Digital Immunity Will Improve Your Software Quality(Smarter with Gartner)
筆者 Laura Starita
Contents Writer, Gartner associate
Copyright © ITmedia, Inc. All Rights Reserved.