最近、自分のタスク管理がズタボロである.

数年前は、ライフハックに熱をあげてバリバリ頑張っていたのだが、 いまやタスクに終われてシクハックに熱をあげているという状態.

具体的には、週末に MOOC の課題に追われてしまう. 本来ならば、毎日コツコツと勉強していればよいのだが、 平日に関係ない割り込みのタスクをしてまう結果、週末にバタバタする.

そこで、自分のタスク管理について、見直してみることにした.

なにが問題か? 課題はなにか?

  • どのくらい自由な時間があるのか
  • どのくらいのタスクをかかえているのか

この 2 つを把握していないところが問題だ.

譬えれば、デパートに買い物にいったものの、 自分がいくらお財布にお金を持っているのか知らない状態. 気づけば、買い物をしすぎて、支払いができなくなっていた…

さらに、問題点を深堀りすると、 一日の仕事量は感覚的に分かるのだけれども、 一週間くらいの 長期間での空き時間とタスクの関係 がわからない.

なので、*1 週間の空き時間とタスクの量を見積もること* が今回の課題.

そこでタスクシュートだ!

作業量を見積もるためのタスク管理手法について、 タスクシュートがつかえそうだった.

タスクシュートは、やることをすべて洗い出して、 一列に並べて処理していくツール. 詳しくは、以下.

今回は、みんな大好き?Emacs org-mode でこれらをどう実現するかを考えた.

org-mode による実現方法

時間を見積もる

org-mode には、時間を見積もる機能があるので、これを利用する.

アジェンダビューから C-c C-x C-c で カラムビューを起動して、 閲覧、編集をする.

カラムビューの設定

以下、カラムビューのための基本的な設定.

; global Effort estimate values
(setq org-global-properties (quote ((
      "Effort_ALL" . "00:05 00:10 00:15 00:30 01:00 01:30 02:00 02:30 03:00"))))
;; カラムビューで表示する項目
;; Column の書式は以下.
;; [https://orgmode.org/manual/Column-attributes.html#Column-attributes
(setq org-columns-default-format "%50ITEM(Task) %10Effort(Effort){:} %10CLOCKSUM_T(Clock)")

以下の設定を書くと、見積り時間を合計して表示してくれる.

(setq org-agenda-columns-add-appointments-to-effort-sum t)

見積りのタイミングは一週間に一度

週のはじめに、一週間分のタスクの洗い出しと見積りを実施する.

自分は、その時にタスクに next タグをつけることによって、 agenda view でフィルタリングできるようにした.

agenda-view の設定は以下.

(setq org-agenda-custom-commands 
      '(
       ("n" "Next Action List"
        tags-todo "next"
        ((org-agenda-prefix-format " %6e ")))))

その日のタスクがいつ終わるかをみつもる

agenda-view で、今日のタスクだけを絞り込み、 カラムビューをみることによって、あと何時間タスクの完了にかかるかを 調べることができる.

agenda-view の設定は以下.ここでは、アジェンダを開くと即座にカラム に移行させている.

(setq org-agenda-custom-commands 
      '(
       ("c" ""
        tags-todo "SCHEDULED=\"<+0d>\"" 
        ((org-agenda-overriding-header "TaskChute TODO")
         (org-agenda-overriding-columns-format "%50ITEM(Task) %10Effort(Effort){:}")
         (org-agenda-view-columns-initially t)))))

時間の余裕を把握する

もともとの課題の解決のために以下のような表を作成した.

Day Free Time Amount time Effort Comment


Sat 12
Sun 12
Mon 0 46 GW Tsu 12 34 GW Wed 12 22 GW Thu 5 17
Fri 5 12

  • どのくらい自由な時間があるのか
  • どのくらいのタスクをかかえているのか

ということをこの表で確認する. どのくらいのタスクというところを、 先ほどの effort の合計見積りの値からもとめる.

時間帯を決める

タスクシュートには、時間帯という考え方がある. その時間帯に実施するタスクを決めることによって、 タスク実施の強制力がかかるというもの.

org-mode では、priority の機能によって実現することにした.

  • A: 04:00 - 07:00
  • B: 07:00 - 10:00
  • C: 10:00 - 13:00
  • D: 13:00 - 16:00
  • E: 16:00 - 19:00
  • F: 19:00 - 22:00
  • G: 22:00 - 25:00
(setq org-highest-priority ?A)
(setq org-lowest-priority ?G)
(setq org-default-priority ?G)

時間を計測する

時間計測は、org-mode のデフォルト機能を利用.

計測結果もまた、agenda view でみることができる. 見積りと比較することで、見積りの甘さをチェック.

さらに、agenda view で v c をおすと、 見積りと実績の差分を強調して表示してくれたりする.

おわりに

歴史は繰り返す、ということを書く.

思い返せば、3 年前の GW に、Outlook でタスクシュートをしようとしていた. 3 年経った今、Emacs によるタスクシュートに挑戦している.

なんだか、同じところをグルグル回っている気がするよ.