Tbpgr Blog

Ruby プログラマ tbpgr(てぃーびー) のブログ

暗黙知の形式化 - 問題解決の最中に仮説を記録する

f:id:tbpg:20170612224631p:plain

お題「Sharain」

私が問題解決をする際に、仮説を記録する際の判断を形式化します。

手順

  1. 暗黙知を書き出す
  2. 形式化可能な事例を抽出する
  3. 抽出した事例を抽象化する
  4. 抽象化した形式知を学習可能にする

詳しくは下記にまとめてあります。

tbpgr.hatenablog.com

暗黙知を書き出す

前提として問題発生時点で私は logrotate についてさほど詳しくありません。

logrotate を使った logrotation の初回実行時にローテーションしていなかった。
原因を調査します。

こんな感じの内容

"/var/log/cron.log" 2017-6-12-6:0:0
"/var/log/mail.log" 2017-6-11-6:34:27
# 略

You can avoid this problem two ways;

run sudo logrotate -f /etc/logrotate.d/
This will scribble the date into the status file withOUT rotating the logs

Edit /var/lib/logrotate/status and add the line manually:

“/var/log/my_special.log” 2013-4-8
setting it to today’s or a prior date. Next run should cause it to run.

なるほど。

形式化可能な事例を抽出する

Markdown に仮説を書き出す

の部分を抽出します。

抽出した事例を抽象化する

脳内だけで理解・解決できそうな問題では無さそうなとき、
メモに仮説を書き出した上で一つ一つを調査・検証する。

これにより

  • どこまで調べたか曖昧にならない
  • 人に相談する時にメモした内容をみせることで、どこまで調査済みかすぐに説明できる
  • 書いている過程で頭のなかで検証済み・未検証・その他の可能性について整理される

などの効果がある。

背景

取り組むべき課題が発生した際に「ほぼこれ」という明確な答えがない状態で
対象に取り組む必要がある。

問題

どのくらいの仮説を検証することで問題が解決できるかわからないため、
仮説が多くなった場合に脳内だけで正しい記憶を保つことが難しい

要因

  • 作業記憶には限りがある
  • 作業記憶には個人差がある

解法

仮説を書き出して1つずつ検証する

行動

  • 仮説を書き出す
  • 優先度をつける
  • 一つずつ調査・検証する

結果

調査に一定量のボリュームがあった場合にはどこまで調査済みか、などを
はっきり把握した状態で解決まで取り組むことができる。
また、相談が必要になった場合も楽に相談できる。

抽象化した形式知を学習可能にする

  • 仮説・検証が必要な課題に対してメモを残しながら取り組むワークフローを決める
  • 慣習化するまでは目印となりそうなところにそのワークフローをメモを貼る
    • PC内のメモでも物理メモでも目立っていればよい

まとめ

仮説を元にした調査が必要になるタスクに取り組む場合、
気づいたらブラウザのタブが大量に開き、どのページを確認して、
どんな仮説を検証し、どんな仮説が未検証なのかごちゃごちゃになったことは
ありませんか?

いざ相談しようとしたときに、どんな仮説をもとにどんな内容をすでに調査済みなのか
うまく説明できなくて困ったことはありませんか?

そんな経験がある人には今回の方法がマッチするかもしれません。 とくに作業記憶に自信がない人は。