
帰納的な推論と発見的な推論(アブダクション)は、
私たちがソフトウェア開発の現場/実務で(知らず知らずにでも)駆使している思考の形です(それどころか日々の暮らしでも使っています)。
それほど“自然な”思考の形ですが、どんな考え方で、どんなところに注意すると質の高い思考ができるのか、基本知識を押さえておくと実務のレベルアップにつながります。
<実務三年目からの発見力と仮説力 記事一覧>※クリックで開きます
今回は仮説を考える時の進め方の解説です。
仮説は拙速を貴ぶ――とは限らない
コニャンくんがソフトウェアXで起こる故障F(第3回など参照)の原因について考えを巡らせています(図7-1)。

アブダクションは杖ひと振りでよい仮説を手にする魔法ではありませんし、そもそもよい仮説がすぐに見つかることは稀です。
アブダクションの進め方・パースの「ふたつの段階」
ホップ、ステップ、よい仮説
パース(第6回参照)は、仮説はふたつの段階を経て形成されるとしています。
(参考:『アブダクション 仮説と発見の論理』。以降『アブダクション』)
- 第1段階:心に思い浮かぶ仮説を列挙する
- 第2段階:最も正しいと思われる仮説を選ぶ

第1段階では、対象について考えを巡らせ、判っていることや調べたことをもとに、説明仮説を考えていきます。
この段階で素晴らしい仮説を思いつくかも知れません。
しかしそこで決めてしまうのでなく、事象を説明できる仮説は他にも考えられないか、検討します。
(思いつきがイマイチならなおさらです)
時にはいわゆる閃きや天啓といったものの助けもありますが、それが降りてくるよう、対象を詳しく調べたり理解を深めたりしながら考えることが大切です。
『アブダクション』では洞察的な段階とも言っています。
第2段階では、第1段階で挙がった仮説を、後述の4つの基準で総合的に評価し、最も理にかなっていると思われるものを選定します。
『アブダクション』では熟考的な段階とも言っています。
「最も正しいと思われる仮説」の選定基準/条件
「最も正しいと思われる仮説」の選定の基準ないし条件として、パースは次の4つを挙げています。
(参考:『アブダクション』)

- (1) もっともらしさ(plausibility)
問題となっている事象や因果関係について、理にかなった説明を与えるものであること。 - (2) 検証可能性(verifiability)
仮説は事実に照らして検証可能(真偽を判断できる)であること。
反証可能であること(偽であると判定できること)も含みます。 - (3) 単純性(simplicity)
(1), (2)が同程度の仮説が複数ある場合は、より単純な仮説であること。 - (4) 経済性(economy)
仮説の検証にかかる思考の努力や、時間やコストが少なくて済むこと。
総合的に見て「最も理にかなっている」と思えるものを選定します。
これらの基準は、第6回で挙げた「よい仮説」が持つ性質に対応します。
(「検証」の意味も第6回に準じます)

なお、パースのいう単純性は、論理的な単純さ(原因から結果まで一本道/短い、過程が入り組んでいない、etc.)よりは「説明が自然で考えやすい」「受け容れやすい」といった“自然さ”を意味しています。
また、経済性は第6回で挙げた仮説の性質の4番目とは若干異なりますが、「少数の仮定から整合的に説明できる」ならパースのいう経済性の条件にかなうと言えるでしょう。
念のため
「最も理にかなった仮説」が選ばれたとしても、それはまだ仮説です。
仮説が事実に対して正しい(不整合がなく、過程や結果をよく説明している)かどうかは、その後の検証(ソフトウェアの場合、最終的には動的テストなど)に委ねられます。
「ふたつの段階」の取り組み方
二重ループでイテレーティブに
筆者の経験を交えると、次のように考えると取組みやすいでしょう。
- 第1段階で「仮説を列挙する」際には:
- 考えやすいところから手をつける。
「説明仮説にはならない」ものを早めに排除して考える範囲を絞るのも大事。 - 思いついた段階でざっと検証してみる。
現象や結果を説明できるか、ざっと確かめる(粗い検証)。 - よさそうなら残す。
そうでなければ脇に置いておく。
(忘れ去る必要はなくて、後で修正を施されて“敗者復活”してもよい) - これを繰り返す(いわば「内側のループ、小ループ」)。
最初の仮説で終わらず、「粗い検証」で得たフィードバックも加味して次の仮説を考える。 - ある程度考えられた(もう思いつかない)と判断できたら終了する。
- 考えやすいところから手をつける。
- 第2段階で「最も正しいと思われる仮説を選ぶ」際には:
- 「1回目の第2段階」で「最も正しいと思われる仮説」が決まらなくてもよい。
(詳しく考えてみると、細部に説明できないことがある場合や、必ずそうなるとは言えない場合もある) - そういう場合はもう一度「第1段階」からやる(いわば「外側のループ、 大ループ」)。
- 「1回目の第2段階」で「最も正しいと思われる仮説」が決まらなくてもよい。

第1段階で心がけたいこと
①原因候補と説明仮説をさまざまな視点・見方から考えてみる。
原因候補が結果(故障や不具合)を引き起こす筋道を、多角的に考えましょう。
図7-1のように、途中で道が塞がっていても、別の道が見つかるかも知れません。
人的要因やプロセス要因の可能性を含めて考えるのがよい場合もあります(作業や確認の漏れ、単純ミス、勘違い、etc.)。
原因候補から結果までの筋道(可能性としての)が一本か、複数あり得るか考えられると、仮説の確からしさを強化できるでしょう。
原因候補を絞り込みたい場合には、差異法や剰余法の考え方が参考になります(第3回参照)。
②大きな“瑕”がある仮説は躊躇なくいったん脇によけておく。
魅力ある原因候補でも、結果に至る筋道を説明しきれない、仮説の通りにならない場合がある、
といった目につく“瑕”があるなら、いったん脇に追いやって別の仮説を考えてみるのがよいです。
いわば「幅優先の探索」です。
原因の候補がいくつも考えられる状況なら、候補から外してよいものと、残しておくものを仕分けるためにも「幅優先」で考えた方がよいでしょう。
幅優先に対して「深さ優先の探索」をしたくなる場合もあります。
“瑕”がなければ最有力になるような原因候補なら、“瑕”をなくせないか時間をかけて考えてみるのもありでしょう。
「粗い検証」は、①②を柔軟に行なうことを促します。
第1段階の「粗い検証」
机上(ひとり脳内ウォークスルーで可)でよいので、「仮説Hが正しいならば、Cという結果になる」かどうか、先の4つの選定基準/条件をざっと評価します。
大雑把なウォークスルーでももっともらしさや検証可能性を損ねるような大きな“瑕”が見つかるなら、綿密に検証してみるまでもありません。
また、第1段階で仮説による説明の単純さ、判りやすさがある程度把握できていれば、第2段階が捗ります。
アイデアを見失わないように
ただでさえアイデアは思いついたそばから消えていってしまうものですから、「原因から結果に至る見えない道筋を、結果から遡って考える」作業を頭の中だけで完結させるのは困難です。
思い浮かんだ考えや仮説案は忘れずに書き留めましょう。
考える過程を書き留めること自体が重要ですし、形に表すことで考えがはっきりすることもあります。
(“見込みあり”と光明が差すこともあれば、足りていないところ・弱いところが判明することも)
ということで、次回は「アブダクションを支援するのに使える“ツール”」をいくつか紹介する予定です(特定のプロダクトではありません)。
参考文献
- 米盛裕二 『アブダクション 仮説と発見の論理』 勁草書房 2007
- パース(著), 伊藤邦武(訳) 『連続性の哲学』 岩波書店 2001
- 近藤洋逸, 好並英司 『論理学入門』 岩波書店 1979
図版に使用した画像の出典
- Loose Drawing
- 人物画、電球の絵をお借りしています。
- 品質探偵コニャン:Produced by Sqripts. No Unauthorized Reproduction.