@kyanny's blog

My thoughts, my life. Views/opinions are my own.

org-mode を使った業務日誌システム

org-mode で業務日誌を書いている。org-mode: 何行くらいまでのファイルなら快適に編集できるのか - @kyanny's blogでも少し触れたが、運用し始めてから二年弱経ったので、どういうシステムなのか一度まとめておきたい。

運用開始は 2021 年の 7 月。これを書こうと思って(当たり障りのない)スクリーンショットを撮ってから、実際に書くまで三ヶ月経ってしまった。

実のところ、Doom Emacs のデフォルト設定のまま org-capture を使っているだけ。j キーで capture するときのテンプレートが秀逸で、journal.org に年 -> 月 -> 日 という見出し階層を日毎に自動作成したうえで、当日の見出しの下に追加する、という挙動。これを使っているだけで「日誌」をいい具合に記録できる。

日毎の見出しの下には仕事のタスク一つごとに見出しを一つ作るのだけど、ちょっと特殊なやり方をしている。

今の仕事は顧客サポートで、Zendesk という問い合わせ管理システムを使っている。個々の問い合わせを「チケット」と呼ぶ。日々の仕事は未対応のチケットをアサインして回答し解決に導く、の繰り返し。

業務日誌上では、チケットの返信一回を一つのタスクとして管理している。同じチケットに二回返信するとタスク = 見出しが二つできる、という具合。このレベルの見出しは TODO/DONE などのステータスもつけていて、基本的にその日の見出しだけ開いておけばやるべきことが書いてある、という状態(を目指している)。チケットをアサインしたら見出しを作って TODO にし、調査結果とかメモとかなんでも見出しの下に書く。返信の内容は別で管理していて、見出しの中には書かない。返信し終わったら DONE にする。

なぜチケット一つ = タスク一つという形にしていないかというと、

  • チケットが解決に至るまでには数日〜長いと数ヶ月かかるので、何度も次の日の見出しへ移動させ続けるのは煩雑
  • 一つの見出しの中に書いてあるテキストの量が増えすぎると見通しが悪くなり、効率が落ちる
  • 同じチケットが長期間 TODO のままだと気が滅入ってくるし、DONE になる見出しの数が少なすぎてやはり気が滅入ってくる
  • 「解決済みかどうか」よりも「返信済みかどうか」のほうが日々の仕事を進めるうえでは重要なので、返信し終わったかどうかを把握しやすくしたい

などの理由から。

このシステムはそれなりにフィットしていて、だからこそ長続きしているのだけど、改善すべき点も多い。

まず、チケットごとの業務メモが異なる日付・見出しにバラけてしまうので、過去ログを参照しづらい。見出しにチケット ID が入っているのでそれで検索(フィルタ)すれば一応串刺し状態で一覧できるけど、org-mode の検索はどうにも使いづらい。

チケットごとではなくフリーワードで検索するのはもっと使いづらい。テキストファイルなので grep 的なツールで検索できると思いきや、実際には見出し構造や複数行にわたって自由に書いたメモの特定行だけ引っかかっても大して役に立たず、前後の文脈も含めて読み返さないといけない。それは org-mode の文法を理解するビューアーを使わないとちょっと厳しい。

journal.org ファイルの肥大化も問題で、ただでさえもっさりする Emacs 上での IME 経由のテキスト入力のラグが悪化し続けている。適当なところで分割すればいいのだけど、どういう単位で分けたものか迷いが生まれるし、Workflowy のような「一つの大きなアウトライン」の利点が失われるのも惜しいような気もする。

そもそも情報を「編纂」するアウトライナーとして使いこなしていないのが問題のようにも思うが、あまり凝ったこともしたくないので悩ましい。おれは「書きながら考えるタイプ」なので、その場その場で書くことを書く場所が常にある安心感はあるし、ジャーナリング目的には十分うまく行っている。このワークフローは崩したくない。

改善点についても、割と長いこと考えてはいるものの、実行に移せずにいる。

  • フロー情報を処理する用途としては十分なので、ストック情報もうまいこと管理したい。org-roam とかと併用するといいのかもしれないが、どうも踏み切れない
    • 巨大な journal.org と細々した *.org ファイルが共存することに違和感があって、そういう構成はうまくいかないんじゃないかという気がしている
    • 単純に、適切なタイトルを考えてつけていくことが運用上必須の前提になっていそうな org-roam が面倒くさそう
  • Zendesk のチケットにもステータスがあるので、見出しごとの TODO/DONE は二重管理になっていて冗長ともいえる
    • ↑とはいえ自分のタスクとしての TODO 管理はチケットのステータスとは分けておくと便利ではある
  • 日毎・返信ごとのタスク管理はそのままにしつつ、「日誌」から独立したチケットごとの見出しに情報を集約したらどうか
  • タスク単位の見出しの下には基本的に見出しを作らず、つらつらとメモとかログとかコード断片とかをごちゃ混ぜに書いているが、もっとちゃんとアウトライン構造にしたほうがいいのではないか

他にも色々と思うところはあるはずだが、これについてこのように書く時間をとってこなかったので、十分考えられていない。まず今日書くことで、考えを深め始めたい。