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. 2018/6/14 Agile RCA
    反復プロセスと欠陥モデリングによる
    ソフトウェア要因分析の改善
    アジャイルなRCAの導入とその効果
    永田 敦

    View Slide

  2. 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

    View Slide

  3. Agile RCA
    2018/6/14 copyright © A.Nagata 3
    Root
    Cause
    Analysis
    要因分析
    なぜなぜ分析(5 whys)
    もそのひとつ

    View Slide

  4. Agile RCA
    2018/6/14 copyright © A.Nagata 4
    一般的に使われるのは
    市場で大問題が起こった時の
    再発防止策を
    考えるとき

    View Slide

  5. Agile RCA
    なぜなぜ分析の問題点
    2018/6/14 copyright © A.Nagata 5

    View Slide

  6. Agile RCA
    なぜなぜ分析の問題点
    2018/6/14 copyright © A.Nagata 6

    View Slide

  7. Agile RCA
    時間がかかる原因
    • 慣れない担当者(開発者)に説明資料を作らせる
    • 分析がうまくできない
    • 空中戦になる
    • 出てくる原因が中途半端
    • バグだった
    • テストが漏れた
    • レビューが不十分だった
    • ロジックが間違っていた
    • 設計が間違っていた
    • コーディングミス
    2018/6/14 copyright © A.Nagata 7

    View Slide

  8. Agile RCA
    分析がうまくできない
    適切な質問ができていない
    なぜは,適切な質問なのか
    担当者に,自分自身の判断を分析させている
    2018/6/14 copyright © A.Nagata 8

    View Slide

  9. Agile RCA
    なぜなぜ分析の問題点
    2018/6/14 copyright © A.Nagata 9

    View Slide

  10. Agile RCA
    2. ストレスを感じる分析
    • 「なぜ」は最強の質問
    過ちを犯した人を攻撃してしまう
    たとえ攻撃するつもりはなくても
    copyright © A.Nagata 10
    2018/6/14

    View Slide

  11. 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

    View Slide

  12. Agile RCA
    2. ストレスを感じる分析
    • 「なぜ」は最強の質問
    過ちを犯した人を攻撃してしまう
    たとえ攻撃するつもりはなくても
    たとえば、部長から
    なぜこのようにしたの?
    • どう感じます?
    copyright © A.Nagata 12
    2018/6/14

    View Slide

  13. Agile RCA copyright © A.Nagata 13
    https://www.flickr.com/photos/ruthhb/2917888819/in/photostream/
    2018/6/14

    View Slide

  14. Agile RCA
    「なぜ」:最強の質問
    copyright © A.Nagata 14
    2018/6/14
    TPSオリジナル : 製造ライン
    対象:現場のモノ
    欠陥 : 物理的な問題
    ソフトウェア開発現場
    欠陥 : バグ
    対象:エンジニア

    View Slide

  15. Agile RCA
    2018/6/14 copyright © A.Nagata 15
    ソフトウェア欠陥は,
    人の過失によっておこるものである
    ソフトウェアは人が作り上げるもの

    View Slide

  16. Agile RCA
    なぜという質問
    2018/6/14 copyright © A.Nagata 16
    その人の判断
    判断 → 価値観

    View Slide

  17. Agile RCA
    2018/6/14 copyright © A.Nagata 17
    なぜという質問は
    その人の価値観に触れてしまう

    View Slide

  18. Agile RCA
    2. ストレスを感じる分析
    • 「なぜ」は最強の質問
    過ちを犯した人を攻撃してしまう
    • 詰問に対する反応,
    [防御モード]
    copyright © A.Nagata 18
    人は、真因を探ることよりも、
    自分の答えを正当化しようとする
    Eric E. Vogt
    2018/6/14

    View Slide

  19. Agile RCA
    防御モードでのなぜなぜ分析
    copyright © A.Nagata 19
    2018/6/14
    見かけの
    要因
    答え
    答え
    答え
    インシデント
    真の要因
    なぜ
    なぜ
    効果的
    対策
    なぜなぜしりとり

    View Slide

  20. Agile RCA
    適切な質問
    強力な質問
    適切な質問
    では、どんなものが適切な質問か
    copyright © A.Nagata 20
    2018/6/14

    View Slide

  21. Agile RCA
    なぜなぜ分析の問題点
    2018/6/14 copyright © A.Nagata 21

    View Slide

  22. Agile RCA
    3. 分析のスキルが向上しない
    • なぜなぜ分析を継続することができない
    時間がかかる/責められる
    • 分析やファシリテーションのスキルが上がらない
    • 適切な質問を考えだすことができない
    • 真の要因にたどり着かない.
    copyright © A.Nagata 22
    2018/6/14

    View Slide

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

    View Slide

  24. Agile RCA
    回答
    イテレーションと適切な質問
    インシ
    デント
    真の要因
    効果的対策
    回答
    Q&A
    議論
    Q&A
    議論
    Q&A
    議論
    Q&A
    議論
    Q&A
    議論
    学び
    気づき
    copyright © A.Nagata 24
    2018/6/14

    View Slide

  25. Agile RCA
    表現(Notation)の工夫
    2018/6/14 copyright © A.Nagata 25
    “なぜ”に対する
    回答の記述
    障害のメカニズム
    の見える化
    なぜなぜ分析シート
    欠陥モデル

    View Slide

  26. 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

    View Slide

  27. Agile RCA
    誤り,欠陥,故障
    2018/6/14 27
    知識 行為
    正しくな
    い記述
    望ましくない
    結果
    業務知識
    分野知識
    各種標準など
    文書化
    コード化
    試験・運用
    文書
    コード
    手戻り
    システム障害
    誤り(Error)
    欠陥(Defect) 故障(Failure)
    http://www.bcm.co.jp/index.html: 山本修一郎 要求工学 要求レビュ より
    copyright © A.Nagata

    View Slide

  28. Agile RCA
    欠陥モデルの例
    copyright © A.Nagata 28
    2018/6/14

    View Slide

  29. Agile RCA
    イテレーションがフィードバックループを生む
    回答
    インシ
    デント
    真の要因
    効果的対策
    回答
    Q&A
    議論
    Q&A
    議論
    Q&A
    議論
    Q&A
    議論
    Q&A
    議論
    copyright © A.Nagata 29
    2018/6/14

    View Slide

  30. Agile RCA
    イテレーションがフィードバックループを生む
    copyright © A.Nagata 30
    2018/6/14
    回答
    インシ
    デント
    真の要因
    効果的対策
    回答
    Q&A
    議論
    Q&A
    議論
    Q&A
    議論
    Q&A
    議論
    Q&A
    議論
    モデリ
    ング
    質問・議論 : ダイバージェンス : 具体化
    モデリング : コンバージェンス : 汎化
    モデリ
    ング
    モデリ
    ング
    モデリ
    ング

    View Slide

  31. Agile RCA
    アジャイルRCAのプロセス
    copyright © A.Nagata 31
    2018/6/14

    View Slide

  32. Agile RCA
    対策まで含めたアジャイルRCA
    copyright © A.Nagata 32
    2018/6/14

    View Slide

  33. Agile RCA
    3つのループ
    • インシデント分析ループ
    • 探索的分析ループ
    • 時間まで被分析者の回答を基に探索ループで質問を繰り
    返し、回答の理解のための確認や、背景や裏付ける事実
    を引き出していく。.
    • タイムボックス時間厳守
    • アジャイルRCAループ
    • タイムボックスが終わったあと、探索ループで得られた回
    答を分析して欠陥をモデル化し、戦略をもって次の質問
    を策定していく。
    • 対策ループ
    copyright © A.Nagata 33
    2018/6/14

    View Slide

  34. Agile RCA
    分析チーム
    • モデレータ
    • アジャイルRCAの目的、原理を理解して、プロセスをドラ
    イブする人
    • 欠陥モデルの作成をする
    • 質問の作成、戦略建てを行う
    • 担当者
    • レビューア
    • モデレータと協調して、戦略に基づいて質問の作成、ファ
    シリテーションをサポートする。
    • 欠陥モデルのレビューを行い、戦略建てのサポートをする
    copyright © A.Nagata 34
    2018/6/14

    View Slide

  35. Agile RCA
    イテレーション1日目: インシデント分析
    • 事実、背景、状況、起きたことだけを聞く
    • 分析は我慢する
    • 傾聴、パラフレージングが有効
    copyright © A.Nagata 35
    2018/6/14

    View Slide

  36. Agile RCA
    イテレーション1日目のあとで
    インシデント分析の結果をモデリングして
    分析の質問を考える
    copyright © A.Nagata 36
    2018/6/14

    View Slide

  37. Agile RCA
    イテレーション2日目: 探索的分析
    copyright © A.Nagata 37
    2018/6/14
    インシデント分析で作られた質問をベースに
    探索的に質問と回答を繰り返すループ

    View Slide

  38. Agile RCA
    探索的ループの後 : モデリング
    欠陥モデルの作成
    それをもとに次のイテレーションの質問を策定
    copyright © A.Nagata 38
    2018/6/14
    探索的ループ
    より

    View Slide

  39. Agile RCA
    イテレーション3日目: 欠陥モデルで質問する
    1. アジャイルRCAループで作った欠陥モデルをチームで合意する
    2. アジャイルRCAループで策定した質問をベースに探索的分析ループを回す
    再び探索的ループに入る
    copyright © A.Nagata 39
    2018/6/14

    View Slide

  40. Agile RCA
    ダイバージェンスとコンバージェンス
    2018/6/14 copyright © A.Nagata 40
    ダイバージェンス
    コンバージェンス

    View Slide

  41. Agile RCA
    対策まで含めたアジャイルRCA
    copyright © A.Nagata 41
    2018/6/14

    View Slide

  42. Agile RCA
    事例 : 1日目
    copyright © A.Nagata 42
    2018/6/14

    View Slide

  43. 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))
    {
    // 表示処理
    }

    View Slide

  44. Agile RCA
    過失2:移植したコンポーネントの使用法
    2018/6/14 copyright © A.Nagata 44
    Entityの
    生成
    Entityの
    初期化
    表示処理



    レーシング

    View Slide

  45. Agile RCA
    事例 : 2日目 終了直後
    copyright © A.Nagata 45
    2018/6/14

    View Slide

  46. Agile RCA
    事例 : 3日目
    2018/6/14 copyright © A.Nagata 46

    View Slide

  47. Agile RCA
    事例 最終
    copyright © A.Nagata 47
    2018/6/14

    View Slide

  48. Agile RCA
    事例の俯瞰
    copyright © A.Nagata 48
    2018/6/14
    個人的な因子による欠陥
    プロセス因子による欠陥

    View Slide

  49. Agile RCA
    Agile RCA feedbacks
    2018/6/14 copyright © A.Nagata 49
    質問
    回答
    表示している
    モデルに反映
    モデルによる可視化からの
    フィードバック
    俯瞰
    想起
    モデルへの
    フィードバック
    推論
    推論の学習
    推測への
    フィードバック

    View Slide

  50. Agile RCA
    推論の学習
    • 推論の当たり外れがすぐにわかり,規則性を学ぶこ
    とができる
    • 推論を確かめるための質問が出せる.
    • 推論が当たった時
    • 推論に対する課題との関係性を学べる
    • 推論が外れたとき
    • 想定外:真実は小説よりも奇なり
    • 新たな発見!!
    •事実,シナリオ,論理を学べる
    •問題の奥深さを感じる
    • 推論でわかるくらいならば,
    2018/6/14 copyright © A.Nagata 50

    View Slide

  51. Agile RCA
    アジャイルRCAの効果1
    • 継続性
    • 従来
    •時間がかかる重たい作業で、継続しなかった.
    • アジャイルRCA
    •二つのチームで6か月以上継続.
    •習慣的に行うモチベーションが出てきた.
    copyright © A.Nagata 51
    2018/6/14

    View Slide

  52. Agile RCA
    アジャイルRCAの効果2
    • 分析スキルの改善
    • 分析スピード
    •4倍以上の改善
    •従来 トータル8時間
    •アジャイルRCAトータル2時間 (min 1.5時間)
    • 真の原因への到達
    •従来 到達しない場合もしばしばあった
    •アジャイルRCAおよそ1.5時間で到達
    • ファシリテーションの向上
    copyright © A.Nagata 52
    2018/6/14

    View Slide

  53. Agile RCA
    アジャイルRCAの効果3
    • チームとの信頼関係が生まれる
    • 担当者をリスペクトする
    •貴重な情報を提供してくれた人
    • 人を責めない分析
    • 分析の対象は人ではなく欠陥モデル
    • 初めから正しくやることの難しさがわかる
    • もしあなたも、その分析と同じ状況、条件、環境、タイミ
    ングにおかれたら、同じ間違いを犯すことを痛烈に認識
    するはず
    • 現場からの品質改善のモチベーションが高まる
    copyright © A.Nagata 53
    2018/6/14

    View Slide

  54. Agile RCA
    客観的、冷静な分析
    copyright © A.Nagata 54
    2018/6/14
    使用前
    対象:エンジニア
    欠陥 : バグ
    使用後
    欠陥 : バグ
    対象:欠陥モデル

    View Slide

  55. Agile RCA
    対策まで含めたアジャイルRCA
    copyright © A.Nagata 55
    2018/6/14

    View Slide

  56. Agile RCA
    欠陥モデルの目的とタイプ
    • マインドマップ型
    • 担当者とともに作成,共有するためのモデルタイプ
    • できるだけ詳細に,担当者からの情報を漏らさない
    • 関係者以外が見ると煩雑
    • 報告型
    • 障害の報告,説明のためのもの
    • ポイントを要約している
    • 細かいニュアンスは伝わらないことがある
    • 記録,伝達型 (データベース)
    • 知見として残し,伝えるためのもの
    • 研究中
    2018/6/14 copyright © A.Nagata 56

    View Slide

  57. Agile RCA
    FAQ: 何回、回せばよいのか?
    2018/6/14 copyright © A.Nagata 57
    つごう6回ぐらい

    View Slide

  58. Agile RCA
    なにがよいのか?
    2018/6/14 copyright © A.Nagata 58
    フィードバック : 気づき

    View Slide

  59. Agile RCA
    ファシリテーションのコツ
    • 欠陥が見つかったとき、すぐにその欠陥に対する質
    問に直接入らない
    • その周りにさらに欠陥がないか探りを入れてみる
    • 欠陥の因子を探る
    • 状況、条件、背景
    • どのように作られたか
    • 与えられた条件
    • 言い訳
    • 愚痴
    • 言ったことをその場でモデルに書き込んでいく
    • 違っていたら,その場で治してしまう.
    2018/6/14 copyright © A.Nagata 59

    View Slide

  60. Agile RCA
    アジャイルという理由
    • 複数の改善のループ
    • 欠陥モデルがイテレーションごとに進化する
    • 欠陥モデルを毎回評価し合意している
    • 欠陥モデルの上で考え議論をしている
    • 次のイテレーションに対して欠陥モデルを剪定している
    .
    • アジャイルRCAは、欠陥モデルを用いて複数のイテ
    レーティブなループにより継続的に要因分析の改善
    をしている
    copyright © A.Nagata 60
    2018/6/14

    View Slide

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

    View Slide

  62. Agile RCA
    ご清聴ありがとうございました
    copyright © A.Nagata 62
    2018/6/14

    View Slide

  63. 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

    View Slide