見出し画像

Notion で(自分なりの)タスク・時間管理を行う「新たな」方法(タスク実行編)

前回から、この、新しいシステム「RoutineGarden」の、基本的な機能の説明を始めたのですが、

今回は、その「第二弾」として、いよいよ、タスクの実行の仕方と、関連するデータベースについて、紹介していきたいと思います。

というか、特に、タスクを実行する際には、本システムにおける、三つの主要データベース、全てが連動することになるので、
これを機に、改めて、少し整理しておくとしましょう。

ちなみに、現在、私が利用している「RoutineGarden」のトップページには、上から順に、

  • セクションデータベース

  • ログデータベース

  • ルーチンデータベース

と、配置されていて、ボタンなどを除けば、基本的には、その三つを並べているだけという、実に、シンプルなものとなっています。

「RoutineGarden」のトップページを確認する

まぁ、今後も、どんどん拡張していく予定で、最終的にどれくらい複雑になるかは分からないのですが、
通常、表示させているビューで言えば、以下の通りですね。

  • 現在のセクション

  • フォーカス(実行中のタスク)

  • 今日のプラン

それでは、「今日のプラン」を基に、タスクを実行していく手順に沿って、少しずつ、解説していきましょう。


タスクを開始する

まずは、タスクの「開始」ボタンを押すところからで、私は「着手する」ボタンと呼んでいる(ボタンの表記もそうなっている)のですが、
前回の記事で説明した通り、本システムでは、ルーチンデータベースに「今日のプラン」があるため、当然、このボタンもそこに設置されています。

ルーチンデータベースで「今日のプラン」を表示する

果たして、その動作はどのようになっているのかというと、

「着手する」ボタンのオートメーションを編集する

基本的には、ただ「ログデータベース」に「新規ページ」を追加するだけでいいはずなのですが、
その前に、一応、すでに「進行中」のタスクがあれば、ステータスを「完了」に変え、「終了日時」も記入してやることで、
次のタスクを「開始」する際、前のタスクの「終了」ボタンを押す手間が、省けるようになっているわけですね。

ちなみに、上の画像では、実は、次のアクションの処理が下に隠れていて、最後に、「ルーチンページ」を(フルページで)開くようにしてあります。

それは、私が、現在、ルーチンページを、ほとんど「プロジェクトページ」のような形で利用しているからなのですが、
サブタスクの扱いも含め、その辺の話は、またの機会にするとしましょう。

と言っても、ルーチンページについては、下の方で少し紹介しています。

ともあれ、ここで、最も重要なのは、そんなにすごいことをしているようには見えないかもしれませんが、
ログデータベースに「新規ページ」を追加する際、そのページの「名前」として、「このページ」の「名前」を設定している(できる)という点です。

これこそが、最近の Notion のアップデートで可能となった、ボタンで「関数」を使えるようになったことの、真価の一つであり、
それまで、「RoutineGarden」のようなシステムを作るには、リレーションとロールアップをフル活用した、かなりの工夫が必要だったのですが、
今では、こうして、ごく簡単に、「ルーチンの名前」を、そのまま「タスクの名前」として、ページタイトルへ入力できるようになりました。

また、このボタンを押した時には、ログデータベースにページを追加するだけでなく、ルーチン側のプロパティも、いくつか更新されるようになっていて、
前回、少しだけ触れたように、「今日のプラン」上で、着手したタスクを非表示にしていくために利用している「実行日時」も、結構、大切です。

厳密に言うと、これは、そのルーチンの「最終実行日時」を指しており、
その日付が「未入力」か、「今日より前」なら、そのタスクは、まだ(今日は)実行していない、ということが分かります。

「今日のプラン」の「フィルター」設定を確認する

逆に言えば、「着手する」ボタンを押すと、この「フィルター」条件に該当しなくなるので、プランには表示されなくなる、という仕組みですね。

結果として、「RoutineGarden」では、ルーチンデータベースから「今日のプラン」を実行することにより、
ログデータベースの「今日のログ」や「フォーカス」ビューに、一つずつタスクが移っていくような形となります。

それでは、次に、そうして作成されたタスクを、ログデータベース上で、実際に見ていくとしましょう。

実行中のタスクを確認する

ログデータベースの「フォーカス」ビューは、単純に、ステータスが「完了」になっていないタスクだけを表示しておくためのものですが、

「フォーカス」ビューを確認する

開始ボタンが「ルーチンデータベース」内にあったのに対し、終了(切上げる)ボタンは、「ログデータベース」の方にある、というのも、
他の実装とは異なる、本システムの特徴的な部分と言えるかもしれません。

ちなみに、以下が、「切上げる」ボタンを押した時の処理となります。

「切上げる」ボタンのオートメーションを編集する

こちらのオートメーションは、タスクのステータスを「完了」に変え、「終了日時」を記入しているだけなので、簡単ですね。

一応、最後のアクションで、トップページへ戻るようにもしてあります。

そして、「今日のログ」や「ログ」テーブルでは、それぞれ、「今日」や「特定の日付」の、全てのログが確認できるわけですが、

「今日のログ」を表示する

そもそも、「ルーチンデータベース」で「着手する」ボタンを押した時に、このテーブルに「ルーチン名」と同じ名前のタスクが追加されるとして、
そう言えば、そのボタンのオートメーションでは、「名前」と「ルーチン」プロパティだけしか、設定してはいませんでした。

しかし、実際には、ステータスは「進行中」にしなければならないし、最低でも、「開始日時」には「今」の日時を入れておきたいところでしょう。

もちろん、オートメーションの方でやってもいいのですが、私は、ログデータベースの「データベーステンプレート」も、活用しています。

こちらで設定しておけば、後述するように、直接、ログデータベースにページを新規作成した際にも、適用させることができますからね。

ログデータベースの「データベーステンプレート」を作成する

一応、ページの内容にも、タスクに関するコメントなどを書くために、「コールアウト」ブロックを一つ、デフォルトで設置したりしていますが、
この辺りは、まだ、どうするか迷い中です。

おそらく、「RoutineGarden」を使うようなタイプの人は、各タスク(ログ)のページは、あまり使うことがなく、
どちらかと言えば、各「ルーチンページ」を更新していくことを、重要視しがちになるのではないでしょうか?

その場合、ルーチンとは、基本的に、「プロジェクト」を進めるためのもの、という認識になるかと思います。

例えば、私の場合、毎日のルーチンである「ユタカジン」を読むためのルーチンページには、次のように、記事リストのテーブルを配置しているので、

「ユタカジン」のルーチンページを編集する

各記事の感想を書いたりするにしても、各タスク(ログ)のページを使う必要はないというか、この方が良いわけです。

実質的に、ここが、「プロジェクトページ」になっていると言えるでしょう。

特に、上のテーブルは、特有のプロパティを有しているため、
そういう時には、ルーチンページ内に、それ専用の「インラインデータベース」を作成してしまうのがオススメで、
こういうことを自在にできてしまうというのが、Notion の強みであり、私にとっては、必須の機能なんですよね。

ちなみに、こういったテーブルに、RSS からデータを自動追加していく方法については、次の記事で紹介しています。

まぁ、必要に応じて、タスクページも併用していくと良いのですが、
ともかく、タスクの「進行中」は、いずれかのページを編集したりしつつ、最後には、「切上げる」ボタンを押して、トップページへ戻ることとなり、
ステータスが「完了」になれば、「今日のプラン」から移ってきたそのタスクは、「フォーカス」ビューの方にも、表示されなくなるはずです。

ログを確認する

そうして、ルーチンデータベースからログデータベースに、どんどんタスクを追加し、「完了」させていくわけですが、
各ルーチンのログが、以下のように、「ルーチン」プロパティによって絞り込まれた、ルーチンページに配置されたテーブルで、閲覧できるのに対し、

ルーチンページで「ログ」を確認する

1日分のログは、ログデータベースの「今日のログ」か、特定の日付のものが見たい場合は、次のような「ログ」ビューで、確認することができます。

特定の日付のログを表示する

ちなみに、ログテーブルも、ルーチンテーブルと同様、何かあれば改良しやすいように、まだ、あえて全てのプロパティを表示させているのですが、
いずれ、特に必要な項目以外の列については、非表示にしていく予定です。

さて、ここで、そろそろ、「セクション」の話もしていきましょうか。

前回にも、少し触れましたが、実は、ルーチンデータベースにおける「セクション」プロパティは、単なる「リレーション」プロパティとして、
以下のような「セクションデータベース」の項目から、一つを選んで、ルーチンごとに設定しておくという、端的な形式となっていました。

「セクションリスト」を表示する

一方、ログデータベースでは、どうしているのかというと、
もちろん、こちらでは、選択して設定しなくとも、実際のタスクの「開始時刻」から、該当する「セクション」が、自動的に決まってくるはずです。

つまり、タスクごとに、セクションの「判定」が必要であり、
実際、この「ログ」や「今日のログ」のビューは、そうやって割り出されたセクションにより「グループ化」されているわけですが、

まず、その「数式」プロパティの中身は、次のようになっています。

「セクション」プロパティの関数を確認する

改めまして、関数全体は、以下の通りです。

format(
	prop("セクションリスト").filter(
		and(
			current.prop("開始") <= prop("開始日時").hour(),
			current.prop("終了") > prop("開始日時").hour()
		)
	).first()
)

一見、シンプルなようでいて、結構、テクニカルなことをしていますね。

似たような「判定」の仕組みを実装したことのある人には、案外、お馴染みの手法かもしれませんが、
まず、「セクションリスト」プロパティの説明が必要でしょう。

ログデータベースの、各行(ページ)の「セクションリスト」プロパティに、一体、何が入っているのかというと、
実は、全てのページに共通で、なんと、全てのセクションが(選択肢として)保存してあり、この意味さえ理解できれば、後は、簡単かもしれません。

これについては、さすがに、普段は非表示にしているのですが、例えば、次のページ右のサイドバーを見てもらえば、分かるでしょうか?

そう言えば、このプロパティについても、上で見せた「データベーステンプレート」で、自動的に全てのセクションが入力されるようにしてあります。

「セクションリスト」プロパティを確認する

つまり、上の数式では、タスクの「開始日時」を、各セクションの開始や終了の時刻(時分の「時」の値)と照らし合わせることによって、
全セクションのリストから、該当するものを選び出しているわけですね。

ちなみに、「filter()」を実行しただけだと、その結果は、複数の出力がある場合に備えた「配列」形式になっているため、
末尾の「first()」で、一つ目の要素だけを取り出しています。

というわけで、何やら少し込み入った話になってきましたが、
まぁ、そもそも、ここまで付いてきてくれている方なら大丈夫だろうと仮定して、このくらいの説明で良しとさせてください。

詳しいことは、また、補足するようなタイミングもあるでしょう。

割り込みタスクを追加する

ところで、前回は、「新しいタスク」を追加したければ、新しいルーチンを追加する必要があるということで、その方法もいくつか紹介しましたが、
それは、「今日のプラン」を作成する際に、新規タスクを入れておきたい場合の話であって、「割り込みタスク」は、その限りではありません。

つまり、今すぐ着手するなら、ルーチンを作成する必要はないのです。

順算思考でタスクシュートを実践していくのであれば、この機能を使いこなすことは、ある意味、必須とも言えるかもしれませんね。

その場合は、直接、ログデータベースにページを作成することになるわけですが、上述した「データベーステンプレート」を適用する必要もあるため、
次のような「単発タスクを追加」するためのボタンを、テーブルの下にでも設置しておくのが、オススメです。

「単発タスクを追加」ボタンを作成する

基本的には、ログデータベースに「新規ページ」としてタスクページを追加するだけなのですが、
その際、すでに「進行中」のタスクがある場合は、そのタスクのプロパティとして存在する「割り込み」チェックボックスをオンにすることで、
ここでは、割り込まれた側のタスクの「実績」時間が、なんにせよ、厳密ではないかもしれない、という事実も記録しています。

その上で、実は、「今日のプラン」から次のタスクを「開始」した場合、「進行中」のタスクを自動的に「完了」とするのとは違って、
割り込みの場合には、私は、自動的に「マルチタスク」状態になるような仕様を採用しているのですが、
まぁ、この辺の、個人的な運用方針に関する話も、色々と長くなるかと思うので、また、個別に機会を設けて、解説することにしましょう。

むしろ、地味に重要なのは、先ほど、「ルーチンを作成する必要はない」とは言ったものの、
こうして作成されるタスクの「ルーチン」プロパティにも、「単発タスク」という名前のルーチンを設定している、という点かもしれません。

別に、ルーチンプロパティは、必須というわけではないのですが、
これで、その「単発タスク」ルーチンのページを見れば、今まで「単発タスク」として実行したタスクの一覧が、確認できるということになります。

「単発タスク」ルーチンのページを確認する

これの何がいいかと言えば、ルーチンタスクも含む、1日分のログを見て、各タスクを「ルーチン化」するかどうかの判断をするのではなく、
過去も含む、最近の「単発タスク」のリストだけを見て、その傾向から、「ルーチン化」するかどうか、検討することもできるということで、
これは、その他のタスクが全てルーチンである、「RoutineGarden」ならではの視点と言えるかもしれませんね。

ちなみに、「ルーチン化」ボタンのオートメーション設定は、次の通りです。

「ルーチン化」ボタンを作成する

当然ながら、この場合、多くのプロパティをログから引き継げるので、ゼロからルーチンを作るよりも、かなり楽だと思います。

というより、推奨される「タスクシュート」的な使い方としては、
最初は、全てのタスクを「単発タスク」として追加し、実行してログを取っていき、少しずつ「ルーチン化」する、といった流れになるでしょうか。

まとめ

プランの作成(表示)について説明した、前回の続きとして、
今回は、タスクを実行していく方法というか、ログの見方まで含めて、紹介してみました。

詳細は省いたところも多いので、結構、分かりにくい部分もあったかと思いますが、とりあえず、大まかな雰囲気は、伝わりましたでしょうか?

すでに、「ルーチン化」についても触れてしまったので、これで、一通りの手順は、一応、簡単に説明したことになると思います。

以降は、細かいトピックを個別に取り上げて、紹介していくとしましょう。

ではまた。

いいなと思ったら応援しよう!