主観と客観をいい感じに使ったタスク優先度決め（簡単版）

## どんな記事？

- タスクの優先度を決める方法を記載しています
- アジャイル開発の本を読んでいる方だったら、「どっかで見たことあるな」ってなると思います
- 精度は少し犠牲にして、如何に簡単に取り組めるかを重視しました

## ユースケース

- 短い期間に複数のタスクをこなさないといけない
- 量が多いのでサクッと優先度が決まらない（5タスク以上を想定）

## 大事にしたこと

- 直感的な判断を利用しつつ、客観的に優先度を決める（≒数値で評価する）
- 簡単であること
    - ここに書いている手法はよくある手法を簡便にしたものです
    - 認知コストを可能な限り下げて、「<font color=red>タスク管理が目的にならないように</font>」することが目的です

## タスク列挙

当然ですが、まずは、やるべきタスクを列挙します。

ここでは例として、10タスクある場面を想定します。

```markdown
- XXX案件/方針調整
- XXX案件/○○の認識合わせ
- XXX案件/△△のレビュー
- YYY案件/○○の機能実装（テストまで）
- YYY案件/△△のモック作成＋インターフェイス認識合わせ
- 社内-コミュニケーション/ランチミーティングで気を付けたいこと一覧作成
- 社内-コミュニケーション/ランチミーティングで気を付けたいこと社内共有
- 社内-改善/slackbot機能決め（メンバーの意見募集＋集約）
- 社内-改善/slackbot機能追加（実装＋テスト）
- 副業-勉強会/次回勉強会のテーマ決め
```

## 優先度算出テーブルを作る（項目の説明）

タスク優先度決めに使う指標値計算の為のテーブルを作成します。

|タスクの内容|<font color=red>緊急度</font>|<font color=blue>重要度</font>|<font color=green>コスト（時間）</font>|
|:----------|:----:|:----:|:------------:|
|XXX案件/方針調整||||
|XXX案件/○○の認識合わせ||||
|XXX案件/△△のレビュー||||
|YYY案件/○○の機能実装（テストまで）||||
|YYY案件/△△のモック作成＋インターフェイス認識合わせ||||
|社内-コミュニケーション/ランチミーティングで気を付けたいこと一覧作成||||
|社内-コミュニケーション/ランチミーティングで気を付けたいこと社内共有||||
|社内-改善/slackbot機能決め（メンバーの意見募集＋集約）||||
|社内-改善/slackbot機能追加（実装＋テスト）||||
|副業-勉強会/次回勉強会のテーマ決め||||

- <font color=red>**緊急度**</font>
  - タスク完了期限までに残された時間の短さ
  - 1～9の9段階で評価
  - ※数字が大きい方が、残された時間が短い
- <font color=blue>**重要度**</font>
  - タスクの<font color=blue>重要度</font>（それを達成する意義の大きさ、周囲への影響度、達成できなかった場合のリスクの大きさなど）
  - 1～9の9段階で評価
  - ※数字が大きい方が、より意義が大きい／影響範囲が広い／未達時のリスクが大きい
- <font color=green>**コスト（時間）**</font>
  - タスク開始～完遂までに要する時間
  - 具体的な数値（〇[h]とか）を記入

## 優先度算出テーブルを作る（入力の仕方）

さて、入力に際しては少し人間の心理的な性質も利用しつつ、直感の精度を高めるようにします。

以下のルールに従って、「<font color=red>緊急度</font>」「<font color=blue>重要度</font>」の欄を埋めていきます。

1. まずは、中間値（ここでは5）をとるタスクを決める
   1. 10タスクの内、<font color=red>緊急度</font>が高いもの順に並べた場合、5番目に来るものを「5」とする
2. 残りは、それを基準に相対的に評価値を決める
   1. 手順1で「**"XXX案件/○○の認識合わせ"**の評価値が5」になったとすれば
   2. 残りの9タスクについて、「**"XXX案件/○○の認識合わせ"**に比べてどうか」という視点で評価値を決定していく（人間は絶対評価よりも相対評価が得意で、特に数値が10以下であれば高精度に判断できると言われているからです）
3. ※<font color=blue>重要度</font>についても同様

次に、<font color=green>コスト（時間）</font>を埋めていきます

時間がどうしても見積もれない（大抵大きすぎる）場合は、適当に？で埋めときます。

所要時間の見積もりについては、何冊も本が書けるぐらい手法があります。

今回は、ここには触れません。

現段階で作成できているテーブルはこんな感じです。（数値は適当です）

|タスクの内容|<font color=red>緊急度</font>|<font color=blue>重要度</font>|<font color=green>コスト（時間）</font>|
|:----------|:----:|:----:|:------------:|
|XXX案件/方針調整|3|9|1.5h|
|XXX案件/○○の認識合わせ|2|9|1h|
|XXX案件/△△のレビュー|3|5|10h|
|YYY案件/○○の機能実装（テストまで）|5|4|??|
|YYY案件/△△のモック作成＋インターフェイス認識合わせ|1|5|0.5h|
|社内-コミュニケーション/ランチミーティングで気を付けたいこと一覧作成|9|5|20h|
|社内-コミュニケーション/ランチミーティングで気を付けたいこと社内共有|7|6|1h|
|社内-改善/slackbot機能決め（メンバーの意見募集＋集約）|4|7|3h|
|社内-改善/slackbot機能追加（実装＋テスト）|6|4|4h|
|副業-勉強会/次回勉強会のテーマ決め|9|3|15h or more|


## 優先度を算出する

優先度を決めるためのルールは下記の通りです。

前提として、「一つでも早くタスクを解消したほうが良い」という理念に基づいています。

1. 優先度スコア（<strong>= <font color=red>緊急度</font> x <font color=blue>重要度</font></strong>）が大きいもの程を優先度を高くする
2. 優先度スコアが同一の場合は、<font color=green>コスト（時間）</font>が小さいものを優先にする
3. 優先度スコアも<font color=green>コスト（時間）</font>も同一の場合は、優先度は順不同とする
4. ただし、**<font color=green>コスト（時間）</font>が 1h より小の場合は最優先タスク**に据える

上記ルールに従って、優先度を確定させたのが下記のテーブルです。

|タスクの内容|<font color=red>緊急度</font>|<font color=blue>重要度</font>|<font color=green>コスト（時間）</font>|優先度スコア（緊 x 重）|優先順位|
|:----------|:----:|:----:|:------------:|:---------------------:|:------:|
|XXX案件/方針調整|3|9|1.5h|27|5|
|XXX案件/○○の認識合わせ|2|9|1h|18|9|
|XXX案件/△△のレビュー|3|5|10h|15|10|
|YYY案件/○○の機能実装（テストまで）|5|4|??|20|8|
|YYY案件/△△のモック作成＋インターフェイス認識合わせ|1|5|0.5h|5|1|
|社内-コミュニケーション/ランチミーティングで気を付けたいこと一覧作成|9|5|20h|45|2|
|社内-コミュニケーション/ランチミーティングで気を付けたいこと社内共有|7|6|1h|42|3|
|社内-改善/slackbot機能決め（メンバーの意見募集＋集約）|4|7|3h|28|4|
|社内-改善/slackbot機能追加（実装＋テスト）|6|4|4h|24|7|
|副業-勉強会/次回勉強会のテーマ決め|9|3|15h or more|27|6|

## ケースに合わせて変化させた方が良いところ（パラメータ）

1. 極小タスクの定義
   1. 上記では「1hより小で終わるタスク」を最優先にするようにしましたが、ここは適宜変更したほうが良いと思います
2. <font color=green>コスト（時間）</font>の単位
   1. 今回は Hour を単位にしていますが、粒度に合わせて適宜変更したほうが良いと思います

## もっと工夫するなら

- タスクをより上位のカテゴリで分ける・グルーピングする
- 「<font color=red>緊急度</font>」「<font color=blue>重要度</font>」の評価値をフィボナッチ数にする
  - フィボナッチ数は人間が感覚的に捉えやすいらしいです（審議の程は分かりません）
  - あるいは[ウェーバー・フェヒナーの法則](https://ja.wikipedia.org/wiki/%E3%83%B4%E3%82%A7%E3%83%BC%E3%83%90%E3%83%BC%E2%80%90%E3%83%95%E3%82%A7%E3%83%92%E3%83%8A%E3%83%BC%E3%81%AE%E6%B3%95%E5%89%87)を参考にするなら、「1, 2, 4, 8, 16, 32 ...」とするのもアリですね（1⇒2への変化と2⇒4への変化で感じる感覚量が等しい、とされている）
- 「<font color=red>緊急度</font>」「<font color=blue>重要度</font>」に重みづけをする
  - 例えば、他の人がタスクの完了を待っている状態なら、「<font color=red>緊急度</font>」を1.2倍するなど
- 分類を細かくする、あるいは変える
  - 「<font color=blue>重要度</font>」を「タスク達成の意義」「周囲への影響度」「未達時のリスクの大きさ」などと分解する