エンジニア向けタスク管理ツール Tritask を作った

こんな感じで、テキストエディタ上でサクサク動いて、データを Plain Text で扱えて、シンプルだがそれなりに機能的なタスク管理を作ってみた。

180301_083931_tritask_demo2

成果物

最初に成果物を晒しとく。GitHub に置いている。

一応まとめているけど、たぶん自己満の域を出ない。需要があれば本格的にドキュメント整備するかもしれない。

以降、概要やら思いやらをつらつらと。

Tritask とは?(概要)

五行で書く。

  • タスク管理メソッド
  • タスクを「昨日以前にやったもの」「今日やるもの・やったもの」「明日以降やるもの」の三種類に分け、今日やるものに集中する
  • 全タスクはソート(昇順並び替え)することで並び替える
  • データは Plain Text
  • オープンソース

TaskChute にインスパイアされている。ただ TaskChute は個人的に(特にエンジニア気質としての自分に)合わなかったので、要らないところを引いて、要るところを足した感じの仕組みを今回つくった。

Tritask とは?(利用イメージ)

もうちょっと利用イメージに沿った観点で、五行で。

  • 一行に一タスクを書く
  • フォーマットはこんな感じ: M YYYY/MM/DD DOW HH:MM HH:MM DESCRIPTION
    • 解説すると → (ソート制御文字) (実行日付) (同 曜日) (開始時間) (終了時間) (タスク名とかその他備考とか)
  • タスクの開始 = 開始時刻記入、タスクの終了 = 終了時刻記入
  • 昇順ソートしたら「時系列順」とか「終了タスクずらり→開始タスクずらり」みたいに、上手い具合に見やすく並ぶ(並ぶようにフォーマットを練ってある)
  • 全部手で書いてもいいけど、フォーマットがこれなんでちょっとしんどい。テキストエディタのマクロとか使って省力化するのがオススメ

Tritask で目指したもの

以下の三つ。

  • データを Plain Text で管理できる
  • 愛用のテキストエディタ上で操作できる
  • 仕様に拡張性を持たせる

Plain Text は軽いし、整形しやすいし、バージョン管理しやすいし、で絶対に欠かせない。

テキストエディタ上で操作できる も譲れない。というのも、タスクという「行単位で」「ある程度自由なフォーマットで記述する」データフォーマットは、使い慣れたエディタで編集するのが一番快適だと思うから。タスク管理というと、普通はブラウザやら何やらで GUI で操作させるけど、GUI は(わかりやすいけど)煩わしいんだよね。あっちこっち編集したい時は何度も画面を行き来することなって萎える。反面、エディタ上だとテキスト編集の延長でサクサク書ける。

仕様の拡張性 というのは、オープンソースらしく色んな人がカスタマイズできるようにしたいという話。Tritask は(後述するけど)「仕様」と「実装」に分けて展開している。これにより、仕様に従って実装しさえすれば、色んな環境やエディタ上で動作する Tritask をつくれる。

※今は秀丸エディタ上で動く実装しかないけど、Vim やら Atom やらで動くものも作れるはず。

Tritask で捨てたもの

以下の三つ。

  • ブラウザ/スマホから利用できるようにすること
  • 見積もり機能を盛り込むこと
  • 過剰なフォーマット/使い方を強要すること

ブラウザ/スマホ利用はそもそも想定していない。エンジニアは PC 上で作業するものであり、 PC の仕様(画面解像度やキーボード操作や低級で高速な動作)をフル活用して極力操作性のストレスを減らす のは当然である。下手にブラウザ/スマホ対応するよりも、PC でしか使えないが使いやすくストレスの少ないインタフェースを目指した方が賢いと考えた。

見積もり機能については、私が嫌いだから省いた。私は見積もりが嫌いだ。未来のことなんて所詮はわからないし、そもそも見積もりベースのタスク管理に頼らねばならないほど慌ただしい状況や、見積もりという名の過程で管理させたがる業務のやり方や組織の体制が窮屈で不自由で嫌なのである。見積もりという概念そのものを否定するつもりはないが、少なくとも日常的に触るタスク管理において常に意識したいとは思わない。エンジニアはもっとのびのびと自由に働くべき。

フォーマットや使い方については、あまり強要しないことを目指した。設定より規約という言葉もあるように、下手に柔軟性を持たせるよりも「こうやって使え」「このやり方以外は許さん」と決めてしまった方が使いやすいケースはあるが、タスク管理については(個人的なものだし、ある程度直感的・感覚的に扱うことが多々あるので)その限りではないと私は思っている。そうでなくとも エンジニアはただでさえ細かい癖やこだわりを持っていて、そこが踏襲されてないだけでストレスを感じる生き物 だ。そうならないよう、なるべく柔軟に使えた方が良いと考えた。

Tritask におけるタスク管理とは?

タスク管理という言葉には色んな意味があるが、Tritask では以下のようなニュアンスがある。上手くまとめられないが感じ取っていただければ幸い。

  • タスク = 個人のタスク
  • タスク管理 = 個人のタスクを個人で管理する( 人に見せることは考えてない
  • タスクは 見逃さない(存在を忘れて実行し損ねない)ことが第一
  • 今日やらなくてもいいタスクは放っておきたい、でも必要な時はきちんと忘れないようにしたい
    • 例: 毎週日曜日の朝に行う定期タスクは日曜日に見えればいい(それ以外の曜日では見せなくてもいい)
  • タスク管理は(多数のタスクを書き換えたり並び替えたりすることを繰り返すため) コーディングみたいにバリバリ手を動かす作業 である

Tritask の体系

「仕様」「実装」の部分について、改めて整理しておく。

  • Tritask はタスク管理 メソッド (仕様)
  • Tritask-sta は、Tritask を実装した 一つのツール (実装)

要するに Tritask そのものはただの方法論や仕様でしかなくて、実際にツールとして使いたいなら「Tritask を実装したツール」を使う必要があるという話。

おわりに

本当は Qiita に投下して反応見てみたかったけど、怖いのでやめた。(2018/03/19 追記)書いた