org-modeの使い方例
MOTIVATION
タスク管理ってみんなどうしているか気になったので、自分のやり方を晒してみました。
(特にorg-modeを使った)タスク管理については他の人はどんな感じでやっているのでしょうか?
前提として、チケット駆動での開発・運用を想定しています。
構成
~/
project/ orgで管理するプロジェクト用ディレクトリ
daily.org 日々の定常作業を記録
project.org 今週のプロジェクト作業を記録
old.org 過去のプロジェクト作業の記録
memo.org プロジェクト以外のメモ
project.orgが肥大化してくると、カーソルの移動だけで1分くらいかかってしまう状態になるため、過去分をold.orgに移動しています。
(その分、old.orgを見るときは重くなりますが、過去の作業は基本的にgrepで見るのであまり問題にはなっていません)
設定
emacs
以下のことを設定しています
- プロジェクト作業が発生した際に、 C-c c p で project.org に作業を追加
- メモしたいことがあれば C-c c m で memo.org に追加
- Agenda は ~/project の org ファイルを参照
;; capture templates
(setq org-capture-templates
'(("p" "Project Task" entry (file+headline (expand-file-name "~/project/project.org") "Inbox")
"** TODO %?\n %i\n %a\n %T")
("m" "memo" entry (file (expand-file-name "~/memo.org"))
"* %?\n %i\n %a\n %T")))
;; agenda
(setq org-agenda-files (list (expand-file-name "~/project")))
それぞれのorgファイル
http://members.optusnet.com.au/~charles57/GTD/gtd_workflow.html
の設定を参考にしています。
* org-mode configuration
- これを書いておくと、configurationをまとめて出したり消したりできるため、書いています。
#+STARTUP: overview
- トップレベルの見出しのみ表示
#+STARTUP: hidestars
- 先頭の星印を表示しない
#+STARTUP: logdone
- DONEになった日時をメモ
#+TODO: TODO(t) STARTED(s) WAIT(w) | DONE(d!) CANCEL(c!)
- 状態は5つ
#+TAGS: PROJECT_A(a) Project_B(b) project_c(c)
- プロジェクトの増減にあわせて追記します
はじめ方
月曜日
- C-c a a でアジェンダを表示
- 月曜日のタスクを確認
- 先週のDONEを移動
- 今週の予定を記入
先週のDONEを移動
project.org の中で、DONEステータスになったものを old.org に移動させます。
1ファイルが大きくなると動作が重くなるため、終わったものは移動です。
今週の予定を記入
定常作業やチケット管理されていない作業を daily.org に書き込みます。
今週分とありますが、来週の月曜日分もわかるものはこのタイミングで書いておきます。
朝
C-c a a でアジェンダを表示し、今日の作業を確認します。
タスク追加
C-c c p でプロジェクトにタスクを追加していきます。
その際、 C-c C-s でスケジュールを入力します。
期限がわかっている場合は C-c C-d で期限を入力します。
タスクの記入が完了したら C-c C-c で project.org に書かれます。
その後、ヘッダで C-c C-c を押すことでタグを設定できます。
タスク開始
タスクを始める際は、時間を記録するために C-c C-x C-i を押します。
また、 C-c C-t s で状態を STARTED にします。
タスク中断
タスクの途中で別のタスクが割り込んで発生してきた場合や、
期間内に終わらずにミーティングなどが始まる場合は、
C-c C-x C-o でいったん時計を止めておきます。
またはアジェンダを表示しているときに O (Shift + o)を押します。
タスク終了
タスク完了時には、 C-c C-t d で状態を DONE にします。
これで CLOCK も自動で終了になります。
帰宅時
C-c a a でアジェンダを表示させ、終わっていないタスクがないことを確認します。
期限が過ぎているタスクなどについて、優先度やスケジュールの見直しを行います。
週次報告
C-c a a でアジェンダを表示させ、 R で clockreport を表示させます。
バッファの下側に何に何時間かかっているかが表示されます。
どの作業を終わらせたか、終わっていない作業はどんな状況か、などの報告をまとめます。
月次報告
C-c a a でアジェンダを表示させ、 v m で月単位の表示にし、最後に R で clockreport を表示させます。
バッファの下側に何に何時間かかっているかが表示されます。
請求すべき作業等があれば、これで時間を確認することができます。
どんなことを書いているか
- 開発
- 動くか確認したSQL
- 設計、製造にかんするメモ
- テスト
- データ積み込み用のSQL
- データ検証用のSQL(2回目以降も動かしたいため)
- 保守
- 調査に使用したSQL
- 調査結果(JIRAやRedmineなどに記載する内容)