Tbpgr Blog

元エンジニア 人事 tbpgr(てぃーびー) のブログ

TbpgrKnowledge | TODO管理

概要

TODO管理

詳細

日々のTODO管理について

手法

ポモドーロ・テクニックをベースとした
TODO管理を愛用しています。
GTDも概要を学習し少し試したりしました。
なのでポモドーロ・テクニック+GTD+独自、といったスタイルでTODO管理をしています。

ポモドーロ・テクニックについて

25分の集中した作業と、5分の休憩を繰り返す手法。
この手法の作者は時間の計測にポモドーロタイマー(トマト型のタイマー)を利用したとのこと。
周りに響くようなタイマーをあえて利用することで周囲に自分が集中状態であることを伝える意味もある。

イテレーションに1回長めの休憩を入れる。
1日のうちだとちょうど中間あたりに1回。
眠気のでる午後2時〜3時あたりのイテレーション間が良いと思います。

25分間でできるだけ集中して5分間でリラックスして集中力を取り戻すとともに、少しの振り返りをする。
つまり自分一人でやる1日単位のアジャイル開発のようなメリットをもたらす。
対象の作業から少し視点をそらすことで、作業に復帰した際に抱えていた問題を解決できたり
よりよい設計・実装方法を思いついたりなどという利点もある。

また、作業を一定時間で区切ることにより見積もりの経験値が溜まっていく。
あの作業は1ポモドーロ、この作業は3ポモドーロのように。
また1個の作業が大きいなら(7〜8ドーロ以上あたりが目安)そのポモドーロは分割すべき。
などのようになる

ポモドーロ・テクニックについては書籍「ポモドーロテクニック入門」で学習しました。

ポモドーロ・テクニックをどう活用しているか

・タイマーのかわり
流石に職場でトマト型を鳴らすわけにはいかないので、
MeasurePATカウントダウンタイマーというフリーウェアを利用しています。

・1日に1回程度の長時間休憩
このプラクティスも本当は取り入れたいのですが、普通の企業ではできませんよね。
大抵の現場は集中力を取り戻すため、という名目で30分何もしなかったり散歩していたら
許されないとは思います。
しかし、1日の業務時間が伸びれば伸びるほど取り入れたほうがよい手法だと思います。
ただ長時間働いてもパフォーマンスが下がるばかりなので。

長時間休憩が取りにくい場合は、必ず1日1回ゆったりとコンビニで買物をしに行く
ようにするのは良い休憩になると思います。

独自手法1

テキストエディタSublime Text2)にマクロをいくつか作って、TODO管理用の機能をもたせます。
1日のはじめにTODOのリストを選択します。

まずスニペットでTODOのテンプレートを出力します。
このテンプレートには毎日行う作業を含ませます。
現在所属中のプロジェクトの定期タスクなどがあればスニペットを変更して
毎日手動で入力しないでいいようにします。

- 準備,日次 作業準備 アクティビティの割り当て メールチェック,0.5,,,
この間にその日独自のタスクを追加していく
- 片付,日次 作業まとめ,0.5,,,

左からカテゴリ、TODO要約、見積もり、作業開始時間、作業終了時間、作業時間になります。
見積はポモドーロ単位なので1が30分です。(25分の作業+5分の休憩)
これを1日のはじめに見積の合計が8時間=16ポモドーロになるように作成します。

本日行うTODOの入力について。
現在抱えているTODOは別のテキストにマスタとして保存してあるので新規のタスク以外はコピペしてます。
新規のタスクの場合のみ手で入力します。
手で入力しているといってもスニペットは用意してあります。

todo入力用スニペット

  - title,summary,estimate,,,

title、summary、estimateと、入力=>タブ=>入力・・・と素早く作業できるようにスニペットを作ってあります。
作業開始時に作業対象の行にカーソルを置き開始用のマクロを実行します。
例えばTbpgrKnoledgeにフォーカスがあたっている場合なら

- 準備,日次 作業準備 アクティビティの割り当て メールチェック,0.5,2014/02/01 09:32:13,2014/02/01 09:33:05,0:00:52
- TbpgrKnowledge,隙間時間,1,2014/02/01 09:45:19,,

のようになります。2014/02/01 09:45:19の部分はマクロによって現在時刻を出力しています。
作業が完了したら作業完了用のマクロを実行します。

- 準備,日次 作業準備 アクティビティの割り当て メールチェック,0.5,2014/02/01 09:32:13,2014/02/01 09:33:05,0:00:52
- TbpgrKnowledge,隙間時間,1,2014/02/01 09:45:19,2014/02/01 09:49:39,0:04:20

終了時間の挿入、合計時間の計算+挿入は自作のマクロ内のPythonで行っています。

1日の作業が終了したら編集中の作業ファイルの内容を1日のログとして任意のフォルダに出力するマクロを実行します。
こうして、毎日の秒単位の作業内容、見積もり、実績が保存されてあります。

所属組織で日報の提出の必要などがある場合は、この内容と日報の差分をコーディングして
自動で日報を出力するようにしていました。

独自手法2

作業情報の管理について。
まずプロジェクトごとのフォルダを用意するようにしています。

projects
  prj1
  prj2
  prj3

そして1つのTODOに対して1つの日付つきフォルダと日付つきファイルを作成するようにしています。
例えば自宅のTODOだと、

projects
  study
    tbpgr_knowledge
      20140202_todo_manage
        todo_manage.yml

のように。
はてなブログ投稿用の自作Rubyスクリプトの都合上ファイルはyaml形式にしています。
はてなに投稿せず、マークダウンの方が都合の良いものはマークダウンにしています。

日付付きフォルダは今日の日付+任意の日付のフォルダを作成するRubyスクリプトを用意しています。

翌月になった際に、yyyymm形式のフォルダを作成して該当月のフォルダを退避します。
これにより、分野ごとのトップには当月の作業のみが並ぶことになります。

何故日付ごとにしているか、というと探すときに便利だから。
結局自分の記憶から色々と呼び起こすときに時系列で関連付けて覚えていることが多いので
この形式にしています。
後日「あの時何をしていたか」など調べる必要がでてくることはあるものです。

1つの作業に対して1つの作業領域を確保する意味は主に3つ。
・作業中の情報を残しておかないと後で分からなくなること、
・割り込みが合った場合に経過を対比し、割り込み後の復帰が容易になる。
・作業内容に関してどこかと連携する必要が出ることは多く、その際に記録を整理して残しておくと便利。
例えば、Wiki化したり、部下・同僚に教えたり、上司に報告したりする際などに役にたちます。

より細かい作業情報の管理について

1つのTodo内でも更に細かい作業情報の管理が必要だったりする場合は自作のgem Tuduを利用しています。
Tuduについては以下。
http://d.hatena.ne.jp/tbpg/20131213/1386940825

参考書籍

アジャイルな時間管理術 ポモドーロテクニック入門

アジャイルな時間管理術 ポモドーロテクニック入門