何が分からないのかを言語化することの重要性

📆July 18, 2020🔖 ポエム

ポエムです。今日は、何が分からないのかを言語化することってメチャメチャ大事だよねという話をしたいと思います。(さいきんこのテーマで考え事する機会がけっこう多かったので)

理解の3つの状態

理解には以下の3つの状態があります。

  • 分かる
  • 何が分からないのか分かる
  • 何が分からないのか分からない
  • 僕が人に何かを尋ねられたときは、「分からない」状態から「分かる」状態までの理解の状態を上の 3 つに分解して、いまどこにいるのかを尋ねることにしています。「分かる」状態にある人は当然人に尋ねたりしないので(「この理解で合ってる?」みたいな確認はあると思うけど)、だいたい 2 か 3 の状態のどちらかです。

    まず、「分かる」状態。これは文字通り分かっている状態なので、特に説明することはありません。厳密には「分かる」という状態もさらに細分化できるとは思いますが、今回はそこの話はしません(「人に教えられるレベル」とか「完全に理解した」とかですね)。

    つぎに、「何が分からないのかは分かる」状態。調べたり人に聞いたりすることで「分かる」状態に持っていけるので、これは問題を解決できる一歩手前の状態です。

    さいごに、「何が分からないのかも分からない」状態。これはそもそも問いがないので、いきなり「分かる」状態にするのは困難な状態です。問いがないものに答えは出ません。まず問いをしっかりと立ててやる必要があります。


    上に書いた通り、自分がどこの状態にいるのかで、取るべきアクションが違うんですよね。取るべきアクションにフォーカスしてみると、 2 の状態にある人は調べたり聞いたりする、3 の状態にある人はきちんと問いを立てる。書くと当たり前のことのようなのですが、自然とこれを出来ている人はあまり多くないような気がしています。特に、3 の状態にある場合が顕著です。問いを立てないまま、回答を探そうとしたりしていませんか?これ、やめましょう。まずは問いをきちんと立てましょう


    自分がどの状態なのかを認知する

    メタ認知能力が上がると、自分が 2 の状態にいるのか 3 の状態にいるのかサクっと分かるようになります。しかし、慣れていないと、2 なのか 3 なのか認知できていないまま誤ったアクションに移そうとしてしまいます。正しいアクションを取るために、自分の状態を判断する基準があると良いですよね。

    これを判断する基準としてオススメしたいのが「言語化」です。なんだ簡単じゃんと思われるかもしれませんが、この簡単な一手間が本当に大事です。やり方はメチャメチャ簡単で、「なぜ ●● なのかが分からない」と紙に書いたり、キーボードでテキストエディタに入力し、目に見える形にするだけで良いです。言語化できるか否かで、自分がどの状態なのかを確認することができます(※1)。

    言語化できていれば、何が分からないのか分かる状態だし、言語化できなければ、何が分からないのかも分かっていない状態だと言えます。

    (余談)アヒルの話

    自分の分からないことを人に説明していると、途中で思考が整理されて自己解決する、みたいな経験をしたことはありませんか?「ちょっと聞いて〜、ここの行がバグってると思うんだよね〜、で、ここがこうなってて〜、、、ん?あ、分かったわ!ごめんありがとう!」みたいな。

    達人プログラマ」という本に、デバッグ時に、アヒルに説明するという章があります。(*2)

    問題の原因を探し出すための非常に簡単で効果的なテクニックとして、「誰かに説明する」という手法があります。この場合の誰かは、あなたの肩越しにスクリーンを見ながら、(バスタブに浮いたゴムのアヒルちゃんのように)定期的にうなずくだけでよいのです。(P107)
    これは簡単なように聞こえます。しかし他人に問題を説明するには、まずコードを精読し、その中に存在する暗黙の家庭を明確にしていかなければなりません。こういったいくつかの家庭を言葉で表すことで、問題に対する新たな見識が突如としてひらめくわけです。(P107)

    このアヒルの話、個人的にすごく面白いなと思っていて、他人に説明(言語化)することで、自分の頭が整理されて一気に「分かる」状態になることなんだと理解しています。デバッグにも言語化はメチャメチャ有効!

    まとめ

    長々と書きましたが、

  • 自分がどの状態にあるのか認知して、適切なアクションを取ろうな
  • 何が分からないか分からない状態のときに、闇雲にググるのはやめようぜ
  • ってことを言いたかった感じです。

    ここまでお読みいただきありがとうございました!(この文章はほとんど自分に向けて書きました。)

    (※1 追記)

    ちなみに、ここでの問いの質がイマイチだと解もイマイチになってしまいます。問いの質が高ければ高いほど、「わかる」状態になっても得られるものが大きくなるので、予め問いの質を上げとくと良いです。問いの抽象度と解の抽象度は比例します。なるべく問いの具体度を上げておきましょう。この本オススメです。

    イシューからはじめよ(Amazon)

    (*2 追記)

    これ、ラバーダッキングとかラバーダック・デバッグと呼ばれる手法っぽいですね。ちゃんと名前付いてたんだ。

    ラバーダック・デバッグ(Wikipedia)