Upgrade to Pro — share decks privately, control downloads, hide ads and more …

反復プロセスと欠陥モデリングによる ソフトウェア要因分析の改善

反復プロセスと欠陥モデリングによる ソフトウェア要因分析の改善

Root Cause Analysis (要因分析)を反復的に行いながら、分析結果の状態を、欠陥モデルで表します。反復ごとにそのモデルを成長させて、真の欠陥やそれを誘発する要因を表して、より効果的な対応を策定することを期待できます。

Atsushi Nagata

May 27, 2022
Tweet

More Decks by Atsushi Nagata

Other Decks in Technology

Transcript

  1. Agile RCA Introduction 永田 敦 : アジャイルが好きな品質エンジニアリングマネージャ 仕事:アジャイルチームの改善のお手伝い 資格:Agile Inspection

    Maestro Leader and Process Owner JSTQB テスト技術者 Advanced Level Manager アジャイル流派 : EVO (Evolutionary Project Management) copyright © A.Nagata 2 2018/6/14
  2. Agile RCA 2018/6/14 copyright © A.Nagata 3 Root Cause Analysis

    要因分析 なぜなぜ分析(5 whys) もそのひとつ
  3. Agile RCA 時間がかかる原因 • 慣れない担当者(開発者)に説明資料を作らせる • 分析がうまくできない • 空中戦になる •

    出てくる原因が中途半端 • バグだった • テストが漏れた • レビューが不十分だった • ロジックが間違っていた • 設計が間違っていた • コーディングミス 2018/6/14 copyright © A.Nagata 7
  4. Agile RCA 2. ストレスを感じる分析 • 「なぜ」は最強の質問 過ちを犯した人を攻撃してしまう たとえ攻撃するつもりはなくても copyright ©

    A.Nagata 11 The Art and Architecture of Powerful Questions, Eric E Vogt, Juanita Brown and David Isaacs, 2003 2018/6/14
  5. Agile RCA 「なぜ」:最強の質問 copyright © A.Nagata 14 2018/6/14 TPSオリジナル :

    製造ライン 対象:現場のモノ 欠陥 : 物理的な問題 ソフトウェア開発現場 欠陥 : バグ 対象:エンジニア
  6. Agile RCA 2. ストレスを感じる分析 • 「なぜ」は最強の質問 過ちを犯した人を攻撃してしまう • 詰問に対する反応, [防御モード]

    copyright © A.Nagata 18 人は、真因を探ることよりも、 自分の答えを正当化しようとする Eric E. Vogt 2018/6/14
  7. Agile RCA 防御モードでのなぜなぜ分析 copyright © A.Nagata 19 2018/6/14 見かけの 要因

    答え 答え 答え インシデント 真の要因 なぜ なぜ 効果的 対策 なぜなぜしりとり
  8. Agile RCA プロセスの工夫:イテレーティブ なRCA • 負荷の軽減 タイムボックス • RCAミーティング:15分~30分/イテレーション •

    準備資料は求めない • 習慣づけとリズムづけ 負荷の軽減 • できるだけ毎日やる • 同じ時間にやる •朝会の後、昼食の15分前 • ミーティングの後、次の質問を考える • 質問策定に時間がかけられる. 適切な質問 • タイムボックス内で議論 • 知見の伝達. copyright © A.Nagata 23 2018/6/14
  9. Agile RCA 回答 イテレーションと適切な質問 インシ デント 真の要因 効果的対策 回答 Q&A

    議論 Q&A 議論 Q&A 議論 Q&A 議論 Q&A 議論 学び 気づき copyright © A.Nagata 24 2018/6/14
  10. Agile RCA 表現(Notation)の工夫 2018/6/14 copyright © A.Nagata 25 “なぜ”に対する 回答の記述

    障害のメカニズム の見える化 なぜなぜ分析シート 欠陥モデル
  11. Agile RCA 欠陥モデルの必要性:Project Fabre 2018/6/14 copyright © A.Nagata 26 Nobuhiro

    Hosokawa, Yasuharu Nishi, Aya Ureshino, Makoto Nonaka, Yukiko Hara, JaSST 2013 Tokyo – Project Fabre, 2013
  12. Agile RCA 誤り,欠陥,故障 2018/6/14 27 知識 行為 正しくな い記述 望ましくない

    結果 業務知識 分野知識 各種標準など 文書化 コード化 試験・運用 文書 コード 手戻り システム障害 誤り(Error) 欠陥(Defect) 故障(Failure) http://www.bcm.co.jp/index.html: 山本修一郎 要求工学 要求レビュ より copyright © A.Nagata
  13. Agile RCA イテレーションがフィードバックループを生む copyright © A.Nagata 30 2018/6/14 回答 インシ

    デント 真の要因 効果的対策 回答 Q&A 議論 Q&A 議論 Q&A 議論 Q&A 議論 Q&A 議論 モデリ ング 質問・議論 : ダイバージェンス : 具体化 モデリング : コンバージェンス : 汎化 モデリ ング モデリ ング モデリ ング
  14. Agile RCA 3つのループ • インシデント分析ループ • 探索的分析ループ • 時間まで被分析者の回答を基に探索ループで質問を繰り 返し、回答の理解のための確認や、背景や裏付ける事実

    を引き出していく。. • タイムボックス時間厳守 • アジャイルRCAループ • タイムボックスが終わったあと、探索ループで得られた回 答を分析して欠陥をモデル化し、戦略をもって次の質問 を策定していく。 • 対策ループ copyright © A.Nagata 33 2018/6/14
  15. Agile RCA 分析チーム • モデレータ • アジャイルRCAの目的、原理を理解して、プロセスをドラ イブする人 • 欠陥モデルの作成をする

    • 質問の作成、戦略建てを行う • 担当者 • レビューア • モデレータと協調して、戦略に基づいて質問の作成、ファ シリテーションをサポートする。 • 欠陥モデルのレビューを行い、戦略建てのサポートをする copyright © A.Nagata 34 2018/6/14
  16. Agile RCA 過失1:コードの誤修正 2018/6/14 copyright © A.Nagata 43 // 表示処理

    public void InitDisplay(int h-Id, bool[] selected, Color) { ・ ・ input = new InputEntity(); foreach (InputEntity inputEntity in input.Query(InputEntity.RecycledStatus, true).OrderBy(…)) { if (inputEntity.Status == (InputEntity.RecycledStatus)) { // 表示処理 } if (inputEntity.Status.Equals(InputEntity.RecycledStatus)) { // 表示処理 }
  17. Agile RCA Agile RCA feedbacks 2018/6/14 copyright © A.Nagata 49

    質問 回答 表示している モデルに反映 モデルによる可視化からの フィードバック 俯瞰 想起 モデルへの フィードバック 推論 推論の学習 推測への フィードバック
  18. Agile RCA 推論の学習 • 推論の当たり外れがすぐにわかり,規則性を学ぶこ とができる • 推論を確かめるための質問が出せる. • 推論が当たった時

    • 推論に対する課題との関係性を学べる • 推論が外れたとき • 想定外:真実は小説よりも奇なり • 新たな発見!! •事実,シナリオ,論理を学べる •問題の奥深さを感じる • 推論でわかるくらいならば, 2018/6/14 copyright © A.Nagata 50
  19. Agile RCA アジャイルRCAの効果1 • 継続性 • 従来 •時間がかかる重たい作業で、継続しなかった. • アジャイルRCA

    •二つのチームで6か月以上継続. •習慣的に行うモチベーションが出てきた. copyright © A.Nagata 51 2018/6/14
  20. Agile RCA アジャイルRCAの効果2 • 分析スキルの改善 • 分析スピード •4倍以上の改善 •従来 トータル8時間

    •アジャイルRCAトータル2時間 (min 1.5時間) • 真の原因への到達 •従来 到達しない場合もしばしばあった •アジャイルRCAおよそ1.5時間で到達 • ファシリテーションの向上 copyright © A.Nagata 52 2018/6/14
  21. Agile RCA アジャイルRCAの効果3 • チームとの信頼関係が生まれる • 担当者をリスペクトする •貴重な情報を提供してくれた人 • 人を責めない分析

    • 分析の対象は人ではなく欠陥モデル • 初めから正しくやることの難しさがわかる • もしあなたも、その分析と同じ状況、条件、環境、タイミ ングにおかれたら、同じ間違いを犯すことを痛烈に認識 するはず • 現場からの品質改善のモチベーションが高まる copyright © A.Nagata 53 2018/6/14
  22. Agile RCA 欠陥モデルの目的とタイプ • マインドマップ型 • 担当者とともに作成,共有するためのモデルタイプ • できるだけ詳細に,担当者からの情報を漏らさない •

    関係者以外が見ると煩雑 • 報告型 • 障害の報告,説明のためのもの • ポイントを要約している • 細かいニュアンスは伝わらないことがある • 記録,伝達型 (データベース) • 知見として残し,伝えるためのもの • 研究中 2018/6/14 copyright © A.Nagata 56
  23. Agile RCA ファシリテーションのコツ • 欠陥が見つかったとき、すぐにその欠陥に対する質 問に直接入らない • その周りにさらに欠陥がないか探りを入れてみる • 欠陥の因子を探る

    • 状況、条件、背景 • どのように作られたか • 与えられた条件 • 言い訳 • 愚痴 • 言ったことをその場でモデルに書き込んでいく • 違っていたら,その場で治してしまう. 2018/6/14 copyright © A.Nagata 59
  24. Agile RCA アジャイルという理由 • 複数の改善のループ • 欠陥モデルがイテレーションごとに進化する • 欠陥モデルを毎回評価し合意している •

    欠陥モデルの上で考え議論をしている • 次のイテレーションに対して欠陥モデルを剪定している . • アジャイルRCAは、欠陥モデルを用いて複数のイテ レーティブなループにより継続的に要因分析の改善 をしている copyright © A.Nagata 60 2018/6/14
  25. Agile RCA アジャイルRCAの課題 • 欠陥モデルの改善 • 因子の整備改善 • モデリングのスピードアップ •

    パターン化/メタモデリング • 質問生成とその戦略の改善 • モデリングの利用 • 未然防止活動:プロセス、レビュー、テスティング • モデリングのデータベース化 • アジャイルRCAプロセスのスピードアップ • リアルタイムプロセス copyright © A.Nagata 61 2018/6/14
  26. Agile RCA Reference • Agile Specification Quality Control: Shifting emphasis

    from cleanup to sampling defects, Tom Gilb, 2005 • Nobuhiro Hosokawa, Yasuharu Nishi, Aya Ureshino, Makoto Nonaka, Yukiko Hara, JaSST 2013 Tokyo – Project Fabre, 2013 • THE ART OF POWERFUL QUESTIONS, Eric E.Vogt, Juanita Brown, and David Isaacs, 2003 • Software Inspection, Tom Gilb, Dorothy Graham, 1993 • The Practical Guide to Defect Prevention, Marc McDonald, Robert Musson, Ross Smith, 2007, Microsoft Press • ODC - a 10x for Root Cause Analysis, Ram Chillarege, 2006 • Naze Naze Bunseki, Hitoshi Ogura, Nikkei BP, 2010 copyright © A.Nagata 63 2018/6/14