メインコンテンツへスキップ
見出し画像

【Obsidian最適化の旅 #13】Metadata Menuでタスク管理せんとす。

    どうも。趣味でObsidianを使っている者です。

    このnoteを含む一連の記事は、私が新しいVaultに求めるものを明確にし、Obsidianの機能を改めて深掘りした上で、私のためだけに存在するObsidian環境を作り上げるまでの旅の記録になります。

    本記事は第13弾です。興味のある方はこちらもあわせてお読みください。

    前回はObsidianで自分がしたいと思っていた「プロジェクトマネジメント」とは具体的に何なのかを、上手くいってないと考えた原因から探ってみました。

    今回からはその中の一つ、タスク管理に焦点をあて、数回にわたりプラグインを使ったりしたタスク管理を試していきます。

    今回はMetadata Menuというプラグインです。
    どうぞお付き合いください。

    導入方法とか設定の詳細を説明するの、苦手だなぁと思いました。

    オーピー

    Metadata Menuの概要

    Metadata MenuはObsidian上の様々なインターフェースを通してノートのメタデータ(= プロパティ)を変更できるようになるプラグインです。

    長めの動画ですが、こちらを見て「ほぉーん、夢広がるやん」と思い試してみることにしました。

    Obsidianのデフォルト状態では、キャンバスのグループや矢印には表現としての機能しかありません。
    ですがMetadata Menuを使うと、これらの機能によってノートのプロパティを変更することができます。

    これならキャンバス上でタスク管理ができるのでは!?
    ということで試してみます。

    Metadata Menuでタスク管理キャンバス

    まず、私がやりたいことの確認です。

    • タスクを洗い出し

    • デイリーノートに計画する

    • 全体像を把握できるとよい。全体像とは、

      • 依存関係

      • 全体のスケジュール感

    こんなところでしょうか。

    設定

    まずプラグインの設定画面ではFileClass settingsのみいじります。

    • Class Files pathを指定(下ではTemplateの中)

    • FileClass field aliasを設定(デフォルトかどうかも定かではない)

    画像
    わたしのMetadata Menu設定画面

    この状態でパスに指定した「Template/fileClass」フォルダの横にプラスマークが付きます。

    画像
    File Explorerタブの中。

    このプラスマークをクリックして新しいクラスを作成します。
    とりあえず「task」とでもしましょう。
    このノートはクラスの設定用なので直接いじりません。

    次にこのクラスをもったテンプレートを作成します。
    ここでつくるテンプレートをタスク追加の際のノートに適用して運用します。

    画像
    プロパティって便利になりましたよね。

    タスクの目的や具体的なゴールなんかは見出しをおいてノート内に書くスタイルでもいいと思います。
    私はDataview等でテーブルとして抽出した際に見えるといいかなぁなどと思い、プロパティに入れてみました。

    設定の「FileClass field alias」に指定した項目で、先程作成した「task」クラスを指定すると、taskクラスと同じアイコンがノートタイトルの横に出現します。

    フォルダエリア内でも同様の表示がされるので、クラスが設定されているノートがひと目でわかるようになっています。

    そしてとりあえずタスク用のノートを作ります。

    画像
    4つめは(タスク1の子と2)の子、です。

    これをタスク管理するキャンバスに置きます。
    ここではtaskManagement.canvasになってます。

    画像
    空虚。

    とりあえずここまでを設定としましょう。

    実装

    ここから今欲しいと思っている機能を実装していきます。
    具体的には

    1. 矢印によって前のタスクを表現し、ノートにリンクとして反映する

    2. 矢印によって後のタスクを表現し、ノートにリンクとして反映する

    3. 週ごとにグループを作り、そのグループ内に置くことでプロパティの値を変える

    の3つです。

    まずコマンドプロンプトやその他、お好きな手段でfileClass viewを開きます。

    画像
    上はコマンドから。方法は何通りかあります。

    続いてFileclass fieldsのとこのボタンをクリック。

    画像
    Obsidian上でExcalidrawを使って図示するのが正解だと気づいた瞬間。

    ここでField Name(≒プロパティ名)を指定し、Field typeには「Canvas: Updates with links in canvas」を選択します。

    するとキャンバスを選択できるので、先程のtaskManagement.canvasを選択。

    「Direction of the edges pointing to those nodes」は、
    次のタスクを示すのは外向きの矢印「Outgoing」
    前のタスクを示すのは内向きの矢印「Incomming」

    になります。

    タスクの前後関係以外にも矢印を使う予定がある場合には、どの色の矢印で反応するか、などの設定も可能です。
    ここでは割愛します。というか私は使いません。

    ここまでで以下のようになっています。
    これで一番下のチェックをクリックすると設定完了です。

    画像
    説明に疲れました。

    この時点でタスクノートに変化はありませんが、タスク同士を矢印で追加していくとプロパティと値が追加・変更されていきます。

    画像
    まぁ、なんということでしょう。

    続いて、何週目に計画するかを決めるための週グループとプロパティ変更の仕組みを実装していきます。

    とりあえずタスクを入れる箱としてグループを作っていきます。
    名前は自由ですが、年をまたぐ可能性も考えると「2024-W01」などが良いと思います。もちろん、月単位でも構いません。

    画像
    グループ作成後。グループの大きさはデフォルトのノートが収まる大きさが良いと思います。

    続いて、先程と同様にMetadata MenuのFileclass fieldsで項目を追加します。

    ここでのField typeは「CanvasGroup: Updates with groups in canvas」になります。
    他は大体先程と同様です。

    画像
    scheduledWeekとして実装しようとしている例

    これでチェックマークを押せば実装完了です。

    作成したグループの中にノートを置くと、ノートにscheduledWeekというプロパティが追加され、グループ名が値として入るようになります。

    画像
    2024-W03のグループ内に置かれた「タスク1の子と2の子」のプロパティに反映されている様子

    ちなみにMetadata MenuのTable viewはクラスが割り当てられた全ノートを自動抽出してくれますが、プロパティの全要素を表示してくれはしません。

    表示させたいものは別途Fileclass fieldsで設定してあげる必要があります。

    画像
    Table viewがタスク一覧になる。

    運用

    ゴールは「デイリーノートに抽出できる状態にする」です。
    そのためにプロパティに「scheduledDate」を入れています。
    ※ 直接デイリーノートにリンクしてもいいと思います。

    とはいえいきなりピンポイントに日付を指定するのは難しいので、まずは週単位で「どの週に取り組むか」くらいの粒度で計画するのが良さそうです。
    これをキャンバス上で実施します。

    毎週末、今週のタスクが全て完了したか、来週のタスクはどれだけあるかを確認し、リスケが必要なタスクのノートを修正します。

    週ごとに見直しだと過去に計画したものがいつの間にか押し出されたりで特定の週に溜まることもありそうなので、毎月、その月の週ごとのタスク計画を確認する必要もありそうです。

    必要なら四半期ごとにも。

    まぁ・・・タスクを管理したいなら「管理」してねってことですよね・・・。

    あと、複数のプロジェクトが同時に走っている場合は同じキャンパスでグループによって分類できるよう、横長のグループを作成して同様の設定を行うか、プロジェクトごとにクラスを作成するかになります。

    私は前者が良いと思います。
    全く同じ設定をいくつも作成するのはちょっと・・・。

    使ってみて実感した良さ

    依存関係が丸見え

    設定しやすいし、確認もしやすい。これはとてもいい部分です。
    自動でリンクもできるので、後から経緯を再確認しやすいです。

    リスケしやすい

    「今週はできなかったな」という時にタスクを後ろにずらしますが、その際後続のタスクが確認できるので、合わせてリスケが必要かどうかの判断が早くなります。

    タスクごとにノートが存在するのでメモしやすい

    Tasksとかでタスク管理をすると、そのタスク中のメモをどこに書こうかと悩むこともあろうかと思います。

    この方法ではタスクごとにノートが存在するのでそういった悩みとは無縁です。ちゃんとノート同士をリンクしていれば、振り返りやすくもなります。

    副次的ですが大きなメリットです。

    課題

    一方で「ここがもうちょっとなぁ・・・」という部分もやはりありました。

    タスクごとにノート作成がちょっと面倒

    これに尽きます。

    Tasksならタスクを書いて日付を設定するだけ。
    対してこの方法では

    1. ノート作成

    2. テンプレート適用

    3. キャンバスに配置

    4. 依存関係を追記

    これをちゃんとやるかどうかです。

    キャンバス上で完了したタスクを確認しづらい

    確認できない事はありませんが、字が小さかったりあるいは2クリック必要だったりします。

    週ごとに確認している場合は覚えているかもしれませんが・・・。

    アーカイブ難

    この方法でプロパティを変更すると、キャンバス上からそのノートが消えると同時にプロパティに入った値も消失します。

    完了したタスクやプロジェクトはキャンバス上に残す必要がないのでアーカイブ(キャンバス上から削除)したいところですが、これが気軽にできません。

    取れる対策としては、定期的に新しいキャンバスを作成してアクティブなものだけ移行する、とかでしょうか。

    いや、プロジェクトのグループをキャンバスの最果てにポイッとすればいいのか。格好良くはないけども。

    いつやったかという情報はさほど重要ではない・・・ですよね?
    少なくともタスク(ノート)はデイリーノートに計画されたことでリンクできているはず。

    おや・・・解決した?

    キャンバスは分けたい。テーブルはまとめたい。

    勝手な話ですが、プロジェクトごとにfileClassを個別に作成するのは格好良くないと思えてしまうので、全プロジェクトを単一のfileClassで管理することを考えています。

    そうなると、一つのキャンバス上ですべてのプロジェクトのタスクを管理することになります。

    同時に進行しているプロジェクトが2,3個ならまだ行けそうですが、5個も6個もあった場合、キャンバスがどんどん縦に伸びていきます。

    横も期間が伸びるほど、粒度を細かくするほど伸びていきます。
    月だと12分割なのが、週だと52分割くらいになります。

    キャンバスのグループ名は枠の左上にしか表示されないので、グループの色を変えるとかマメなことをしないと、今自分が見ているのが何週目のどのプロジェクトの項目かを見失いかねません。

    一方でTable Viewは自動でリストアップしてくれて、viewの保存もできるのでプロジェクトごとにフィルターできたりして便利です。

    デイリーの負荷が見えない

    週単位でタスクをリストアップしている弊害かもしれませんが、「どの日の負荷が高い(≒あまりタスクを入れられない)」かがキャンバスからはわかりません。

    タスクは自分で予定できるものだけでなく、他所から日時指定で放り込まれるものもあります。

    週初めの計画時点で「あれ?今週積んでね・・・?」となる可能性がゼロではありません。

    カレンダー形式で予定が見れたら良いなぁ、と思った次第です。

    まとめ

    Metadata Menuを使うとタスクの視認性を大きく向上する事ができました。

    完了したプロジェクトも同じキャンバス内の隅っこにグループごと移動させることで無害化できそうです。

    あとはタスクの新規作成の手間を許容できるかどうかがカギになりそうでしょうか。

    個人的には十分採用候補になりそうな感触です。

    次回予告

    次回のテーマは「Tasksをちゃんとやる」です。

    乞うご期待。

     
     
    毎日21時に寝て4時ごろ起きるJTC勤務のサラリーマンです。意味のあるものが好き。おぎやはぎも好き。 noteでは自分の体験に基づく内容を発信しています。

    あなたへのおすすめ