システムがどのように利用されているのかを知るためには、メトリクスを収集することで時系列に傾向を把握できる。得られたデータとインサイトは、ソフトウェア設計やテストパターンを改善することでシステムの品質向上に寄与するのである。
Craig Risi氏は、Agile Testing Days2022で、システム品質向上のためのデータ活用について講演した。
不具合や根本原因に随時着目して適切な緩和策を見出そうとするアプローチは不可能だしそもそも時間がかかりすぎる、とRisi氏は言う。Risi氏は根本原因や問題を分類し、それらを長期にわたって追跡して、チームや組織で重点的に取り組むべき傾向やパターンを特定することが有効だと述べている。
これは、多くの開発チームを抱える企業で特に有効だとRisi氏は説明する。
多くの場合、チーム間の問題や根本原因には共通点があり、会社の仕事のやり方を変えることで解決できる可能性があります。しかし、企業レベルでこのデータを追跡することで、より大きなパターンを発見することができ、文化やプロセスの大きな変革につながり、全体的な欠陥や問題を減らすことが可能です。
システムがどのように使用されているかを理解するためには、すべてのデータを取得する必要があるのだ。これは最大の課題の1つであることが証明されていると、Risi氏は述べている。
適切なツールを導入するだけでなく、適切なモニタリングシステムを導入・構築するための時間を確保する必要があります。データを収集するだけでなく、さまざまなステークホルダーが納得できるようにデータを可視化する適切な方法を見つけることも重要です。これは、ステークホルダーごとに異なるダッシュボードを用意し、それにとって重要な情報を表示することを意味するかもしれません。これらすべてを正しく理解するためには、気の長い努力が必要なのです。
Risi氏はプロダクトオーナー、開発者、テスト担当者が根本原因を理解し、その特定に役立てるために開発、テスト、要件のすべてのパターン、プロセスを調査できるようにすることが重要であると述べている。
InfoQは、システム品質を向上させるためのデータの使用について、Craig Risi氏にインタビューした。
InfoQ: 問題の根本原因を見つけるために、どのようなテクニックを使うことができるか?
Risi氏: これは難しいことです。なぜなら、問題を最初に発見したときにどのように見えるかと、何が本当にその問題を引き起こしているのかは、しばしば異なるからです。
通常、私たちがチームの問題に取り組む際には、いくつかの質問を投げかけます。
その問題はどうに見えるのか?
その問題はどのように発生するのか?
この問題をもっと早く発見するために、私たちにできることはなかったか?
この問題を二度と起こさないようにするためには、何を修正すればよいか?
このような問題を二度と起こさないためにどんな施策が考えられるか?
これらの質問は些細なことに思えるかもしれませんが、不具合の現れ方と実際の不具合は別物であることをチームが認識するのに役立ちます。そして、不具合がどこにあるかよりも、何を修正する必要があるかに焦点を当てることで、責任転嫁を防いで、チームにソフトウェアの本当の不具合を調査してもらい、適切に修正してもらえるのです。
最後の質問は特に重要です。この質問は、チームに当面の問題に対処するだけでなく、自分たちの仕事のやり方を考え、将来同様の問題が発生しないようなソフトウェアを設計するよう求めるものだからです。この最後の質問によって、チームは問題の本当の根本原因を見つけることができ、単純なコーディングエラーとしてタグ付けできないことが多いのです。
InfoQ: データの収集と分析にはどのようなツールを使用できるのか?
Risi氏: Qlik、Thoughspot、Sisense、Tableau、Grafana、New Relicなどのツールは、利用傾向やシステムパフォーマンスを特定し、それらをまさしく視覚化するのに役立ちます。Amazon、Microsoft、Google、Oracleなどの大手テクノロジー企業も、それぞれのクラウド環境でこれを支援するツールを用意しているのです。
モニタリングとツールの導入が完了したら、データを実際に活用し、適切なアラート機能を構築するために、大胆な文化の変革を行う必要があります。なぜなら多くの場合、チームがレポートの価値を理解し、レポートがどのように解決策につながるかを示すことによってのみできるからです。