2日かかっていた不具合分析を10分に短縮!React+AIで実現した劇的効率化
🍀この記事はこんな方におすすめ
- チームの定期作業を効率化したいQAエンジニア・品質管理担当者
- AI技術を実務に活用したい方
- ODC分析に興味がある方
📊 実現した効率化の成果
項目 | Before | After |
---|---|---|
作業時間 | 2日(集中すれば半日) | 約10分 |
内訳 | 全データ取得:20-30分 必要データ抽出・選別:2-3時間 ODC分析:別途手動で実施 |
データ取得+分析:5分 AI自動レポート生成:5分 |
定期実施 | 工数の問題であまり実施できず | 時間短縮により週次・月次の実施が現実的に |
分析の柔軟性 | 期間や対象の絞り込みに時間がかかる | チーム別・期間別の分析が簡単に可能 |
時間がかかって定期確認できない不具合分析、なんとかならないかな?
こんにちは!普段はQAエンジニアとして品質管理業務を担当しています。
皆さんのチームでは、不具合分析ってどうされていますか?
私たちのチームでは、ODC(Orthogonal Defect Classification)という手法を使って不具合分析を行っているのですが、これが結構大変で...
手動でODC分析するとこんなに大変
- データ収集:各チケットを手動でエクスポート
- 集計作業:ODC属性ごとに集計
- 組み合わせ分析:タイプ×トリガーなどのマトリクスを作成
- グラフ作成:集計結果から手動でグラフ作成
- レポート作成:分析結果から深掘りアイテムを抽出
- 改善検討:深掘り結果から改善提案を考える
結果:時間がかかりすぎて定期分析ができない😱
GASで効率化してみたけど...
最初にGASでAsanaからデータを自動取得するツールを作りました。データ取得は自動化できたものの、それでもまだまだ時間がかかりました。
- 必要なデータの選別が大変
- ODC分析は依然として手動
- チーム別に分析するとさらに時間が...
結果:やっぱり定期的な分析は現実的じゃない...😨
こうした全体的な時間の問題で定期確認ができていませんでした。そこで「もっと効率化できないかな?🤔」という思いから、思い切ってツールを作り直すことにした体験談をお話しします。
そもそも何が困っていたのか
既存の分析フローの課題
最初はGASスクリプトでデータを取得してスプレッドシートで分析する流れでしたが、段々と以下の問題が目立つように:
- 処理時間の問題: データ量が多くなると処理に時間がかかる
- 手動分析が必要: ピボットテーブル後のODC分析は全て手動で実施
- UI制約: スプレッドシートベースなので、カスタマイズしたグラフが作りにくい
- 分析の属人化: 作った本人にしか抽出データの変更方法が把握できない状態
特に困っていたのが、データ処理時間の長さと手動分析のコストの高さです。その2つのプロセスで2日もかかってしまうため毎週実施するのが現実的でなく、定期的な分析ができておらず、過去との比較もできていませんでした。
分析ニーズの高まり
分析に対するニーズも高まってきました。特に「過去のトレンドと比較したい」というニーズがありましたが、そもそも定期的な分析ができていないため過去データの蓄積がありませんでした。また、「もっと詳細な分析が見たい」「チーム別の傾向を知りたい」「期間を絞って確認したい」といった機能面でも、スプレッドシートベースのGASでは複雑な組み合わせ分析の可視化や動的なフィルタリング機能、インタラクティブなグラフの実装が困難で、GASでは限界を感じるようになりました。
「よし、作り直そう!」となった決定的瞬間
最初は既存のGASを拡張して、Asanaからデータを取得してAIに渡し、ODC分析をAIにやってもらおうと考えました。一部の実装はできたものの、処理に時間がかかる上にAPI制限レートに引っかかってしまう問題が発生。「このままではダメだ、根本的に別のアプローチが必要だ」と思った瞬間が、新しいツール構築のきっかけでした。
技術選定:何を使って作るか?
QAエンジニアとしてコードに関して深い知識があるわけではありませんが、AIと協業しながら、どんな技術で作り直すか検討しました:
フロントエンド
- React + Material-UI: 見た目の良いダッシュボードが作りたかった
- Recharts: グラフライブラリが豊富で、ODCの複雑なデータも表現できそう
バックエンド
- Node.js + Express: JavaScriptで統一できて開発しやすい
- 外部API連携: AsanaからデータをAPIで取得したい
新しい挑戦:AI活用
- Claude AI: 分析レポートを自動生成してもらえないかと考えた
実際に作ってみて苦労したポイント
1. データ構造が想像以上に複雑だった
ODC分析って、4つの指標(タイプ属性、トリガー属性、ソース属性など)を組み合わせて分析するんですが、見たい組み合わせがなかなかに多いのですよね...
最初は「サクッと作れるでしょ」と思っていたのですが、各指標の組み合わせ分析を実装するのに想定以上の時間がかかりました。特に「タイプ×トリガー」「タイプ×ソース」といった2軸分析のデータ整形で詰まりました。
2. チャートの表示が思った以上に難しい
データが用意できても、今度は「見やすく表示する」のが大変でした。
取得しているODCの項目名は長いものが多くて、普通にグラフに表示すると文字が重なったり、見切れたりしてしまうんです。結局、文字を45度回転させたり、マージンを調整したりして、なんとか全部見えるようにしました。
3. API制限レートとの向き合い方
AsanaのAPIからデータを取得する際、何度も同じ処理を実行していると1日のAPI制限レートに引っかかってしまう問題が発生しました。これが新しいツール開発のきっかけになったのですが、後から振り返ると、この問題自体は表面的なものでした。
新しいツールでは1時間のキャッシュ機能を実装し、一度取得したデータは1時間保存するようにしたところ、API制限を回避しつつ、2回目以降は5秒程度で表示できるようになりました。
※これが新しいツール開発のきっかけになったのですが、今振り返るとGASでもCacheServiceを使えばこのAPI制限レートの問題には対応できました。
4. AIに「ODC を理解」してもらう工夫
Claude AIに分析レポートを書いてもらう機能も実装したのですが、最初は汎用的すぎて使い物になりませんでした...
そこで、プロンプトにODC専門知識を言語化し、欲しい情報、出力するフォーマットなどを具体的に指示するようにしました。試行錯誤の結果、かなり実用的な分析レポートを生成してくれるようになりました。
## ODC分析レポート生成プロンプト例
期間:20XX年1月1日〜20XX年1月31日
あなたはODCの専門家として、以下のデータを分析してください。
【分析対象データ】
- タイプ属性:機能、インターフェース、タイミング、構築、アルゴリズム等
- トリガー属性:設計レビュー、コードインスペクション、ユニットテスト等
- ソース属性:仕様、設計、コーディング、その他
【出力フォーマット】
1. 全体サマリー(3行以内)
2. 注目すべき傾向(箇条書き3点)
3. 深掘りするチケット:taskID #12345
理由:インターフェース不具合が3件連続発生しており、設計段階での見直しが必要
4. 来週のアクション(具体的な改善提案)
【分析の観点】
- 不具合の根本原因特定
- 予防可能だった不具合の識別
- チーム別の傾向分析
5. 「AI分析が動いていない!」内容精査中の気づき
実は完成したと思っていたツールに、欠陥が残っておりました。
月次レポートには詳細なAI分析機能を実装していたのですが、週次レポートは簡易的な統計のみで、AI分析機能が実装されていませんでした。
実際に確認してみると以下の状況が判明:
月次レポート:
- ✅ AI分析タブが存在
- ✅ データがClaude AIに送信されている
- ✅ 分析結果がタブに表示される
週次レポート:
- ❌ AI分析タブは存在するが空っぽ
- ❌ データ送信のロジックが未実装
- ❌ 「分析中...」の表示のまま何も表示されない
つまり、UIは作ったものの、肝心のバックエンド処理が週次レポートには接続されていなかったのです。完成したつもりでいたのに、実際に使ってみると機能していない...という典型的な「作っただけで検証していない」状態でした😅(QAとしては良くないですね)
6. 週次と月次で求められる分析の違いを理解する
この問題を解決する過程で、重要な気づきがありました。週次レポートと月次レポートでは、求められる分析内容が大きく異なるということです。
- 月次レポート: 長期的なトレンド分析、深い根本原因分析
- 週次レポート: 短期的な対応が必要な課題の特定、翌週のアクション
そこで、週次専用のAI分析ロジックを新たに実装。月次とは異なる視点で分析を行うようにしました:
- 緊急度重視: 今週内/来週対応など明確な期限設定
- 即効性のあるアクション: 1週間以内で実行可能な具体的改善策
- 週次品質評価: 当該週の品質状況を「良好/注意/危険」で評価
結果的に、この気づきがきっかけで、より実用的なツールに進化させることができました。
実際に使ってみた結果
効率化の効果
- 従来: 時間がかかるため定期分析ができない状態
- 新ツール: 5分でデータ更新 + 自動分析レポート
- 効果: 定期的な品質監視が実現可能に!
今後の期待
ツールが完成し、実際に運用を開始しました。組み合わせ分析や自動レポート機能によって、従来は見落としていた品質課題を発見できるようになることを期待しています。
GASからReact+AIへの具体的な改善効果:
- UI/UX: スプレッドシートベース → 専用ダッシュボードでODC分析に特化した表示
- グラフ表示: 標準的なグラフ機能 → Rechartsで複雑なODC組み合わせ分析も対応
- インタラクティブ性: ピボットテーブルでの分析 → 動的なフィルタリングや期間選択が可能
- 処理速度: 毎回2日の手動作業 → キャッシュ機能で5秒での表示実現
- 分析の自動化: 手動でのODC分析 → AI自動分析レポート生成
作ってみて学んだこと
開発面での学び:
- 段階的移行の重要性: いきなり全部を置き換えるのではなく、機能ごとに段階的に移行したのが良かった
- ユーザビリティファースト: 技術的にできることより、実際に使いやすいかどうかが重要
- AIとの協業の可能性: QAエンジニアでもAIと組むことで、複雑なWebアプリケーション開発が可能だと実感
- AIとの付き合い方: 汎用AIに専門分野の分析をさせるには、かなり詳細な指示が必要
- 機能の一貫性: 同じツール内でも機能によって実装レベルが異なると、ユーザーに混乱を与える
- 用途別の最適化: 週次と月次では求められる分析が異なる。一律の機能ではなく、それぞれに最適化が必要
運用面での学び
- 小さく始める: 最初から完璧を目指さず、使えるレベルになったらすぐに導入
- フィードバックループ: 実際に使ってもらって改善点を聞くサイクルが重要
- 属人化の解消: チーム全体で利用可能なツールにすることで、業務全体の効率が上がる
- 客観的視点の価値: 開発者が見落としがちな問題を第三者的視点で発見できる
- 継続的改善の重要性: 「完成」はなく、常に改善し続けることが大切
これから改善したいポイント
現在のツールもまだまだ改善の余地があります:
すぐにやりたいこと
- より高速化(仮想スクロールなど)
- アクセシビリティ改善
いずれやりたいこと
- リアルタイム更新機能
- AIの分析精度向上
- 自動レポート配信
まとめ:効率化って楽しい!
最初は「面倒な作業をなんとかしたい」という動機で始めたツール作りでしたが、結果的に不具合分析業務の大幅な効率化につながりました。
特に印象的だったのは、時間短縮だけでなく、分析の質も向上したこと。AIによる自動分析や組み合わせ分析によって、従来では気づけなかった課題を発見できるようになりました。
QAエンジニアとしてコード知識に限界があっても、AIと協業することで想像以上のツールが作れたのが大きな発見でした。今後もこのツールをどんどんブラッシュアップして、さらに効率的で価値のある分析プラットフォームに育てていきたいと思っています!
これから効率化に取り組む方へ
- 完璧を求めすぎない: 60点のツールでもまずは作って使ってみる
- 客観的な検証を行う: 自分が良いと思っても、実際に使ってみて問題がないか検証することが大事
- 小さく始める: 大きな機能から作るのではなく、一番困っているポイントから解決
- 新しい技術に挑戦: AI活用など、新しい技術を試すいい機会になる
- 機能の一貫性を保つ: 同じツール内でも機能によって品質がバラバラだと使いにくくなる
- 用途別に最適化する: 同じような機能でも、使用場面によって求められる内容は異なる
- 「完成」はない: 実際に使いながら継続的に改善し続ける
開発過程は決して楽ではありませんでしたが、実際に動くツールができあがった時の達成感は、苦労を忘れさせてくれました。
皆さんのチームでも、「これ、もっと効率化できないかな?」と思うことがあれば、ぜひ一歩踏み出してみてください。思っているより大きな効果が得られるかもしれませんよ!
この記事がチームの効率化に取り組む方の参考になれば幸いです。質問や感想があれば、ぜひコメントでお聞かせください!
最後に、、、
株式会社COMPASSでは一緒に教育をより良くしていく仲間を募集しています。
少しでも興味を持っていただけた方は、以下よりお気軽にご応募ください。
とりあえず話をきいてみたい!という方はぜひカジュアル面談に来ていただけると幸いです。
Discussion