Empowerment Engineering

内発的動機づけをソフトウェア開発の力で支援する

問題解決のアプローチ。凡人なので頭で完結させずにテキストに書き出してみる

f:id:tbpg:20170216011529p:plain

目的の達成・熟達の過程において問題解決は避けては通れない道です。
ここで問題解決のアプローチについて考えます。

前提

  • 対応すべき問題自体は特定できているものとする(問題を発見する段階の話は対象外)
  • 頭のなかだけで即解決する場合は対象外とする(30分かけても解決できなかった場合などが対象)
  • この記事は以下の記事の内容を把握していることを前提とします

問題解決のフロー

  1. パターンテンプレートを Markdown で作成する
  2. パターンテンプレートに 状況(Context) を記載する
  3. パターンテンプレートに 問題(Problem) を記載する
  4. パターンテンプレートに 要因(Forces) の可能性がある要素を列挙する
  5. いったんパターンテンプレートを離れる
  6. 列挙した要因のうち一番可能性が大きそうなものを選ぶ
  7. 一つずつ問題の特定のための検証・確認を行う
  8. 確認する際に前提知識が必要ならそれもタスクとして列挙する
  9. 要因を特定する
  10. 解決策をリストアップする
  11. 解決策を選択する
  12. パターンテンプレートに 解決(Solution), 行動(Actions) を記載する
  13. パターンテンプレートに想定される 結果(Solution) を記載する
  14. 実際に行動する
  15. 結果を確認し、想定通りであれば問題解決を完了する

具体例

仮のお題

※以下は架空のストーリーです

Aさんはブラック企業で疲弊しています。実力も停滞しています。
本音では辞めたいものの
「他もブラックばかりではないか?」
「実力が足りないのではないか?」
「やめたら迷惑がかかるのではないか」
などの不安がよぎり行動できていないものとします。

1 パターンテンプレートを作成する

## 状況

## 問題

### 要因
* 要因1
* 要因2

## 解決

### 行動

## 結果

2 状況(Context)を記載する

## 状況
Aさんはブラック企業で疲弊している。  
このままいれば

* 成長の機会を損失する
* 心身を壊す
* 楽しくない日々を送り続ける

などの問題があります。

#

3 パターンテンプレートに 問題(Problem) を記載する

### 問題
辞めたいものの  
「他もブラックばかりではないか?」  
「実力が足りないのではないか?」  
「やめたら迷惑がかかるのではないか」  
などの不安がよぎり行動できていない。

#

4 パターンテンプレートに 要因(Forces) の可能性がある要素を列挙する

#### 要因
* 不安は思い込みの可能性がある
* 不安は対処可能なものの可能性がある

#

5 いったんパターンテンプレートを離れる

離れます

6 列挙した要因のうち一番可能性が大きそうなものから順に検証する

「不安は思い込みの可能性がある」から検証します。

7 一つずつ問題の特定のための検証・確認を行う

  • 他もブラックばかりではないか?
  • 実力が足りないのではないか?
  • やめたら迷惑がかかるのではないか

どれも憶測で本当かどうかわかりません。
この仮説は正しそうなもので、解決策を見つけて対応するに値しそうです。

8 確認する際に前提知識が必要ならそれもタスクとして列挙する

今回は特にありません。

9 要因を特定する

ボトルネックになっている要因が一つの場合もあれば、複数の要因が同じくらい大事な場合もあるでしょう。
ケースバイケースでよしなに。

今回の例では

  1. 不安は思い込みの可能性がある
  2. 不安は対処可能なものの可能性がある

という2段階で両方の要因が関わっていると思われます。

10 解決策をリストアップする

解決策をリストアップします

  1. 不安が事実かどうか確かめる
  2. 事実を確かめた上で、それでも問題として残るものは対処法を考える

11 解決策を選択する

今回は2段階になっているのですべての解決策を実施します。

※ケースによっては根本となっているものや最もインパクトが大きな解決策一つを実施する場合などもあるでしょう

12 パターンテンプレートに 解決(Solution), 行動(Actions) を記載する

### 解決
不安が事実かどうか確かめ, それでも問題として残るものは対処法を考える

### 行動
* 不安が事実か確かめる
    * ホワイト企業があるか調べる
    * 転職に必要となる実力と自分の実力の差異を調べる
    * 辞めることで迷惑がかかるか確認する
* 残課題に対処する
    * 仮に実力が不足しているとする
        * 実力をあげてから転職する
            * 学習時間を確保する
            * 実務内で意識的にスキルを上げる
        * 退職して、失業手当をもらいながら学習して実力を上げる
    * 仮にやめると迷惑がかかるとする
        * 多かれ少なかれ転職時に迷惑をかけるのは皆同じ。転職の自由があるので気にしない

#

13 パターンテンプレートに想定される結果(Solution)を記載する

### 結果
心身が安定し、実力が伸び始める。毎日が楽しくなる。

14 実際に行動する

解決策の案として選択した「行動案」を実行に移します。

15 結果を確認し、想定通りであれば問題解決を完了する

無事転職。
心身が安定し、実力が伸び始める。毎日が楽しくなった。
前の現場とは異なり、周りがすごい人ばかりで劣等感を感じるという
新たな課題はあるがブラック企業を辞めるという問題は解決できた。

まとめ

高速で問題解決する人はこの思考過程が得意なのではないでしょうか。
ワーキングメモリが大きく、メモをとらなくても頭のなかに上記のような世界が広がっている、
というのは自分にはありえないので中々想像がつかない世界ではありますが。

私のようにワーキングメモリが小さい人は問題解決に長時間を要した場合、
問題解決のフローで記載した内容の序盤を忘れてしまったり、
要因の列挙と検証がどこまで終わっているか把握できなくなってしまいます。

そのため Markdown 形式でパターンテンプレートを元にして考えをテキストに残しながら
確実に一つずつ潰して行くのがよいかな?という結論になりました。
実はこれ、チームのIssue管理などではやってきた手法です。
そして実際に効果があったものだったので個人にも適用しよう、という流れです。

副次的な効果としては問題解決の過程の多くが可視化されるので、
未来の自分や場合によっては他の人の役にも立つかもしれません。

30分かけても解決しない問題についてはこのアプローチで取り組むようにしてみます。
効果のほどに関してはしばらく運用したあとに報告したいと思います。