どんな記事?
- タスクの優先度を決める方法を記載しています
- アジャイル開発の本を読んでいる方だったら、「どっかで見たことあるな」ってなると思います
- 精度は少し犠牲にして、如何に簡単に取り組めるかを重視しました
ユースケース
- 短い期間に複数のタスクをこなさないといけない
- 量が多いのでサクッと優先度が決まらない(5タスク以上を想定)
大事にしたこと
- 直感的な判断を利用しつつ、客観的に優先度を決める(≒数値で評価する)
- 簡単であること
- ここに書いている手法はよくある手法を簡便にしたものです
- 認知コストを可能な限り下げて、「タスク管理が目的にならないように」することが目的です
タスク列挙
当然ですが、まずは、やるべきタスクを列挙します。
ここでは例として、10タスクある場面を想定します。
- XXX案件/方針調整
- XXX案件/○○の認識合わせ
- XXX案件/△△のレビュー
- YYY案件/○○の機能実装(テストまで)
- YYY案件/△△のモック作成+インターフェイス認識合わせ
- 社内-コミュニケーション/ランチミーティングで気を付けたいこと一覧作成
- 社内-コミュニケーション/ランチミーティングで気を付けたいこと社内共有
- 社内-改善/slackbot機能決め(メンバーの意見募集+集約)
- 社内-改善/slackbot機能追加(実装+テスト)
- 副業-勉強会/次回勉強会のテーマ決め
優先度算出テーブルを作る(項目の説明)
タスク優先度決めに使う指標値計算の為のテーブルを作成します。
タスクの内容 | 緊急度 | 重要度 | コスト(時間) |
---|---|---|---|
XXX案件/方針調整 | |||
XXX案件/○○の認識合わせ | |||
XXX案件/△△のレビュー | |||
YYY案件/○○の機能実装(テストまで) | |||
YYY案件/△△のモック作成+インターフェイス認識合わせ | |||
社内-コミュニケーション/ランチミーティングで気を付けたいこと一覧作成 | |||
社内-コミュニケーション/ランチミーティングで気を付けたいこと社内共有 | |||
社内-改善/slackbot機能決め(メンバーの意見募集+集約) | |||
社内-改善/slackbot機能追加(実装+テスト) | |||
副業-勉強会/次回勉強会のテーマ決め |
-
緊急度
- タスク完了期限までに残された時間の短さ
- 1~9の9段階で評価
- ※数字が大きい方が、残された時間が短い
-
重要度
- タスクの重要度(それを達成する意義の大きさ、周囲への影響度、達成できなかった場合のリスクの大きさなど)
- 1~9の9段階で評価
- ※数字が大きい方が、より意義が大きい/影響範囲が広い/未達時のリスクが大きい
-
コスト(時間)
- タスク開始~完遂までに要する時間
- 具体的な数値(〇[h]とか)を記入
優先度算出テーブルを作る(入力の仕方)
さて、入力に際しては少し人間の心理的な性質も利用しつつ、直感の精度を高めるようにします。
以下のルールに従って、「緊急度」「重要度」の欄を埋めていきます。
- まずは、中間値(ここでは5)をとるタスクを決める
- 10タスクの内、緊急度が高いもの順に並べた場合、5番目に来るものを「5」とする
- 残りは、それを基準に相対的に評価値を決める
- 手順1で「**"XXX案件/○○の認識合わせ"**の評価値が5」になったとすれば
- 残りの9タスクについて、「**"XXX案件/○○の認識合わせ"**に比べてどうか」という視点で評価値を決定していく(人間は絶対評価よりも相対評価が得意で、特に数値が10以下であれば高精度に判断できると言われているからです)
- ※重要度についても同様
次に、コスト(時間)を埋めていきます
時間がどうしても見積もれない(大抵大きすぎる)場合は、適当に?で埋めときます。
所要時間の見積もりについては、何冊も本が書けるぐらい手法があります。
今回は、ここには触れません。
現段階で作成できているテーブルはこんな感じです。(数値は適当です)
タスクの内容 | 緊急度 | 重要度 | コスト(時間) |
---|---|---|---|
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 |
優先度を算出する
優先度を決めるためのルールは下記の通りです。
前提として、「一つでも早くタスクを解消したほうが良い」という理念に基づいています。
- 優先度スコア(= 緊急度 x 重要度)が大きいもの程を優先度を高くする
- 優先度スコアが同一の場合は、コスト(時間)が小さいものを優先にする
- 優先度スコアもコスト(時間)も同一の場合は、優先度は順不同とする
- ただし、コスト(時間)が 1h より小の場合は最優先タスクに据える
上記ルールに従って、優先度を確定させたのが下記のテーブルです。
タスクの内容 | 緊急度 | 重要度 | コスト(時間) | 優先度スコア(緊 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 |
ケースに合わせて変化させた方が良いところ(パラメータ)
- 極小タスクの定義
- 上記では「1hより小で終わるタスク」を最優先にするようにしましたが、ここは適宜変更したほうが良いと思います
-
コスト(時間)の単位
- 今回は Hour を単位にしていますが、粒度に合わせて適宜変更したほうが良いと思います
もっと工夫するなら
- タスクをより上位のカテゴリで分ける・グルーピングする
- 「緊急度」「重要度」の評価値をフィボナッチ数にする
- フィボナッチ数は人間が感覚的に捉えやすいらしいです(審議の程は分かりません)
- あるいはウェーバー・フェヒナーの法則を参考にするなら、「1, 2, 4, 8, 16, 32 ...」とするのもアリですね(1⇒2への変化と2⇒4への変化で感じる感覚量が等しい、とされている)
- 「緊急度」「重要度」に重みづけをする
- 例えば、他の人がタスクの完了を待っている状態なら、「緊急度」を1.2倍するなど
- 分類を細かくする、あるいは変える
- 「重要度」を「タスク達成の意義」「周囲への影響度」「未達時のリスクの大きさ」などと分解する