2022-05-31

ツール製作日誌:タスク&スケジュール把握ツール

 前回(タスクとプロジェクトを考える)の最後で「どういうタスク管理ツールがあったら(私個人が)嬉しいだろうか、ということも考えていきたい」と書いた。今考えて設計しているところなのだが、その前に、この話題が出る以前に考えて作ったツールについてちょっと書いておきたい。


 例によって自分用のツールなので公開はしておらず、提供していないツールについてこまごま語るのもどうかといつも思っているのだが、私と同じように「自分で作ってみたい人」の役にはいくらか立つだろうかとも思うので、(ここは私が好きに書いていい場所なのだし)細かく書いていこうと思う。

 全体像としてはこんな感じ。実際に使っているところなので全面モザイクにせざるを得ず、イメージが湧きづらくなってしまったかもしれないがご容赦いただきたい。(加えて、ちょっと間違えて異様に劣化した状態になってしまった…)


 左のDetail欄で「タスク」「日程」「プロジェクト」の三種類の項目を作成することができる。それぞれを作ると右のビューが構築されていく。そして右のビューに表示されたアイテムをクリックすれば内容が左のDetail欄に表示され、編集することができる。

 なお、右のビューの上段はスケジュール欄として「日程」の項目が並び、中段・下段には「タスク」が並ぶが、中段と下段は同じ内容がそれぞれ別の基準で各リストに振り分けられている状態である。プロジェクト単位で見たければ中段を、現在の取り組みの状態を俯瞰したければ下段を見ればいいということになる。


 Detail欄は項目の種類によって少し違っているので、ひとつひとつ触れていこうと思う。まずはタスク項目。


 開始日・終了日の記録というのはタスク管理の中で普通にやることだと思うが、バシッと正確に書けないこともあって(几帳面でないため)、一般的なタスク管理ツールだとちょっと記録にもやもやすることがある。そのストレスを和らげるため、日付専用のメモ欄を設けてその日付はどういうつもりで書かれたものなのかを記録できるようにしている。

 結局のところ、書き込む時に不正確さにもやもやするだけで、日が経ってしまえば厳密に何月何日のことかはどうでもよくなってくるのだが、少しでも書き込みやすくするためにズボラ仕様にしているわけである。


 次に日程項目。


 日程(=特定の日付についての備忘録)というのは、実のところ様々な意味合いがあるため、区分が一種類や二種類では少し困る。と言ってあまりに細かく仕分けしても、その労力の割に意味をなさない。私にとってはこのくらいの分類が必要かつ十分かなというところだ。

 なお、ひとつのことに対して、「開催日はこの日」「関係することの締切はこの日」「そのための目標はこの日以前の完了」といったことをそれぞれ別項目として書いておくことも当然可能で、ステータスによって色分けされるのでごちゃごちゃあってもそんなに混乱しないで使えている。

 繰り返し機能はまだ作っていないが、作ろうと思えば作れるし、そのうち作るつもりでいる。


 最後にプロジェクト項目。


 実装が面倒くさいから入力欄を増やしたくないという理由で全部の種類の編集を同じ場所で兼ねているのだが、案外悪くないという感じがしている。なおプロジェクト項目にはプロジェクト選択が要らないので非表示になる。


 ちなみに、一度生成した項目を編集する時には、項目の種類が変わってしまうと困るので項目選択ができないようになっている。(↓表示が薄くなっている部分。)


 これを作る前までは実装を考えたことがない挙動だったが、自分が余計なことをしないために先に回って自分の行動を封じるというのもツールを作る上では重要と感じる。他にもいくつか「ユーザーとしては当たり前の挙動だが、作る側としては目立たない要素なのであまり着目しないこと」という感じのものを実装して、少しばかりコーディング能力のレベルアップを感じている。

 

 なお、このツールは今のところ特定のパソコンからしか使えない(データの保存にブラウザのlocalStorageを使っているため)。しかしタスクをパソコンの前以外で確認できないのは困る。ということで、手動の原始的な方法だが、スクリーンショットを撮ってScrapboxに貼っておくことでスマホでも見られるようにすることを思いついた。せめてスクリーンショットを貼りつけるページはクリックひとつで用意できるように、と思って上部にボタンを作ってある。

 テキスト情報で出力してもいいのだが、見た目が変わると逆によくわからなくなるので、画像としてそのままの見た目で保存した方が良いと考えた。適宜出力しておけばログにもなるし、テキストではなく絵的に残しておけば、後から見ても意味を解釈し直す必要があまりないのでわかりやすいだろうと思う。

(検索、OPMLダウンロード、Markdownダウンロードのボタンが右上にあるが、これらは「実装しようと思えばできるが面倒なのでとりあえずまあいいか」という感じの未実装要素。)



 タスク管理ツールは世の中に数多存在しているし、アウトライナーなどでもタスク管理はできるし、それなのにどうしてわざわざ自分でツールを作ったのか。

 一言で言うと「どれも自分に合わないから」なのだが、それならば何がどうなっていれば自分に合うのかというのを見出すのは容易でない。抱えているタスク自体、どういう規模でどういう粒度でどういう頻度でどういう種類のものになるか人それぞれだし、更に物事を頭の中でどう認識してどう把握してどう処理しているのかも人それぞれである。ある程度はパターン化される、ということさえも言ってしまえるものかどうか怪しいところだ。仕事の種類だけならばいくらかパターン化できても、そこに個人の特性を加えると急激に傾向の分類は困難になる気がしている。

 ということで、自分は何を求めているのかを自分で知るためにも、自分にとってスムーズな使用感のツールを作るということに取り組もうと考えた。少しずつコーディング能力が上がってきて再現できる挙動が増えた分、「面白そうなことを思いついたから試したい」という娯楽感覚も動機づけとしては大きいが、前々からいずれは「思い通りにタスクを管理するツールの形」を見出したいと思っていた。


 そうして作ってみて、今自分に必要なのは「細かくなくていいから全体がわかる形」かつ「一枚の面に整然と配置された状態」だということがわかった。

 縦に並べていくだけだと、的確に構造を作れていたとしてもなんとなく「把握できていない」という不安を覚えてどうも駄目らしい(大丈夫な人は普通に大丈夫だと思うのだが)。また、例えばマインドマップや付箋ツールのように自由に配置できる形式、あるいは一枚の紙のあちこちに書いていくという形式は、書き込むには良いが結局何がどの程度あるのかよくわからず、それも結局「把握できていない」ということになってしまう。つまり、リニアではなく、しかし秩序はある状態というのを欲しているようだ。

 その結果、目的の異なる三種類の表を上段・中段・下段と配置する形に至った。今のところは納得しているし、現在のライフスタイルではこの配置が最適なのではと思っているのだが、処理しなければならないタスクの質が変わってしまえば使いにくくなるだろうとも推測している。「面」で認識したいという自分の性質は不変でも、対象が変わると形式は変わらざるを得ない。

 そういったシステムの柔軟性という意味でも、紙のノートやExcelなど汎用性の高いものを工夫することによって満足できたらよかったのだが、どうも「ぴったりハマっている専用ツール」でないと続かない。なんとなく見たくなくなって、「なんか別のやり方でやりたい」などという気持ちを生じて情報がばらばらになっていく。微妙な我慢に対して飽きるということなのだろうか。ともかく、そうなると自分で自分に発注してオーダーメイドのツールを作るしかないようである。

 そういう変に神経質な人間なのに、プログラミングを全くわからなかった状態では「与えられたツールの使い方の工夫」という形でしか努力できず、したがって常に「なんか違う」という不満に悩まされていた。しかしプログラミング(JavaScript)を覚えたことでダイレクトに「自分のためのツール」を作れるようになり、初めてサイズの合った服を着れるようになったような気持ちでいる。作るのは大変だが、それでしか自分を助けられないとなれば頑張れる。


 ここまでが前回の記事以前のタスク管理観で考え出したことだが、前回の思索を通して、もう少し違う形のツールを作ってみたいと思い始めたところである。

 今回のツールは「プロジェクト」の扱いが緩く、単に大まかな分類として使われている面がある。タスクの質が変わった時に最も影響が出る箇所がおそらくその点で、現状では処理が簡単な分伸縮性がない形になってしまっている。その部分を解消した形式をこれから模索していきたいと思う。