Notion でかっこよくプロジェクト管理するテンプレートの解説
Notion が大好きな皆さん、進捗バーをかっこよく表示したいですか?
Notion の表現力がありすぎて、様々なページテンプレートを試行してきました。この記事では、私が最近(数ヶ月)、プロジェクト管理のためのテンプレートとしてお気に入りの構成を紹介します。
この記事では最終的に、以下の Notion ページ(およびデータベース・テーブル)を作成します。
(完成物)
本記事で説明する最終成果物は、以下の Notion ページでデモ版テンプレートを公開しています(複製できるようにしています)。直感的にもある程度わかると思いますが、本記事の内容に一通り目を通して頂いた方が理解が早いと思います。
https://fandjp-sandbox.notion.site/Project-fand-jp-8ea093aa9a404cc984b6c3d898377a3a
どのような人にお勧めか
- Notion でテーブル操作するのが好きな人
- Notion にあらゆる情報を詰め込んでいる人
- 公私のタスクリストやプロジェクト管理を Notion でしている人・やりたい人
- 既に似たようなデータベース構成にしているが、進捗バーを活用する方法を知りたい人
逆に、「面倒くさいことはいいから秒でも早くシンプルに使いたい」という人には向きません。
はじめに
この記事で説明する手順の画面は、英語版のUIになっています。日本語版とは単語が異なる部分がありますが、位置や雰囲気ですぐに分かると思いますので、適宜読み替えをお願いします。
進捗バー表示方法の基礎
以下の画像を見ただけで分かる方は、この先に読み進める必要はありません。
- 同一テーブル内の「進捗」プロパティを Rollup (虫眼鏡アイコンのプロパティ)で選択する
- プロパティの編集(Edit property)を以下画像の通りに選択する
Calculate
→ Percent per group → CompleteShow as
: Bar
わからない方は、この先でひとつひとつ説明しますのでご安心ください。
手順説明
ここからは、進捗バーの使い方例を示すことを目的に、プロジェクト管理の一例を説明します。
前提となるテーブル構造
- 「タスク」テーブル: 具体的な作業項目(タスク)を列挙するためのテーブルです。
- 「スプリント」テーブル: その作業をいつ実施するのか、期間の概念を反映するためのテーブルです。例えば、「四半期」や「12月」、あるいは「プロジェクトStep1」のような任意の時間軸を表現します。
【ただの余談】スプリントとは、「全力疾走する」「短距離走」などの意味を持つ英単語です。ITの分野ではシステム開発の手段のひとつであるアジャイル開発手法、そして更にその手段である「スクラム開発」(Scrum)における、工程の期間のことを指して使われます。スプリントの期間そのものは開発チームにより様々で、1週間〜4週間程度の期間の中で設定されるのが一般的です。
「時期」でも「期間」でも何でも構わないのですが、この記事は「スプリント」で統一していきます。
サンプルとして予めいくつかのページ(タスクやスプリントなどの値)を作成してあります。
「タスク」に進捗バーを表示する
タスクのテーブル新規プロパティ(Rollup タイプ)を追加します。
プロパティは以下の通り設定してください。
Type
: RollupRelation
: サブタスクProperty
: タスク進捗Calculate
:Percent per group
→Complete
最後に、表示スタイル(Show as)を変更します。ここらは好みですが、テーブル表示の場合は “Bar スタイル” の収まりが良いと思います。
この時点では、まだ「タスク」のステータスを変更していないので全てが 0% になります。
さてここで、「要件書の作成」のサブタスクを一通り完了にしてみます。すると、タスク進捗率が 100% になりました。
「タスク」への「スプリント」の関連付け
次に、「タスク」に対して「期間」の概念を与えてみましょう。
セレクトタイプでは駄目なのか
「特定のタスクに対して、選択式で何かの値を設定したい」という操作を実現する場面では、Notion にはセレクトタイプと呼ばれる使い勝手のよいプロパティが存在します。これを利用することで任意の文字列を設定できますので、スプリント設定においても全然問題はなく実用的です。
強いて弱点を挙げると、セレクト形式のUI的に、値の種類が増えすぎると選択操作が面倒くさそうなのが挙げられますね。セレクト形式は上限にある程度の目処が立っている選択項目から選ばせるために利用するのが丁度よいかなと思います。
Relation タイプでスプリントを設定する
セレクト形式ではない手段として、Relation(別のテーブルと関連付けをするタイプ)を用います。ここで関連付けるテーブルは、冒頭に説明した「スプリント」テーブルとなりますね。
新規プロパティを「Relation」で作成します。
次に、「スプリント」データベースを選択
以下の画像に沿って設定し、「Add relation」で値を確定。
- 「Limit」を
1 page
とすることで、1タスク1スプリントの関係にします - Show on スプリントのスイッチは On (有効化)
設定を確定すると、「スプリント」テーブル上に「タスク」が表示されます。
「スプリント」に値を設定していく
「スプリント」テーブルに存在する値を「タスク」に対して設定しましょう。(↓)
一通り設定すると以下のようになります。
オレンジで表示されている「スプリント(セレクト)」は、ついさきほど Relation を作成する前に説明したものです。比較のため画像上では表示していますが、既に役目を果たしていて説明上は何も関係ありませんので無視して構いません。
タスクに「スプリント」を設定したことで、「スプリント」テーブルにもタスクが表示されていますね。こうすることで、いよいよやりたかった「スプリント」ごとの進捗率の表現ができるようになります。(このために、わざわざ Relation によるスプリントとしました)
進捗バーの表示方法は、「タスク」で説明したものと同様の手順で実施してください。
Type
: RollupRelation
: タスクProperty
: タスク進捗Calculate
: Percent per group → Complete
結果、「スプリント」テーブルは以下のようになります。進捗率を時間軸(期間)の単位で見ることができますね。
オプション:プロジェクトの関連付け
ここまでで、今回の目的である「進捗率の表示」という目的は達成できました。
- 「タスク」テーブルの「親タスク」に対して、「サブタスク」の完了率を表示した
- 「スプリント」テーブル上で、その「スプリント」に関連付けられた「タスク」の完了率を表示した
最後に「タスク」と「プロジェクト」を関連付けて完成です。
「タスク」への「プロジェクト」の関連付け Rollup 設定
上の設定では「Show on プロジェクト」のチェックを外していますが、有効化・無効化どちらでも構いません。この場合は以下の通り、「プロジェクト」テーブル上では「タスク」の一覧を表示することができなくなります。
Relation 設定での “Show on” 挙動の整理
Show on 有効化 | Show on 無効化 | |
---|---|---|
「プロジェクト」上での表示 | される | されない |
「プロジェクト」上で「タスク」の進捗率の表示 | できる | できない |
「プロジェクト」の対象ページ内での表示 | Backlink として表示できる | できる |
選択すべき場面 | データの関連付けだけをしておきたい場合 | いつも通り「プロパティ」のひとつとして扱いたい場合 |
個人的には有効化しておけば良いと思います。特に害は見当たりませんし、邪魔なら消せばいいですからね。(後から変更可能です)
プロジェクトの関連付けを設定する
プロパティができたら、「タスク」それぞれに対して「プロジェクト」を設定していきます。
まとめて設定するとこうなる(複数のセルを選択して一括貼り付け可能です)。
仕上げ:プロジェクトダッシュボードの作成
さて、ここまでのテーブルを整えて、くどいプロパティは非表示にしてスッキリすると、記事の冒頭で紹介したテンプレートになりました。
プロジェクトテンプレートの作成
ここまで面倒くさい関連付け作業をやってきましたが、本領発揮するのはこれからです。
プロジェクト右上の青い「New」ボタンの横にある下向き三角ボタンから、「New template」を作成します。もし「New」から新規ページに移ってしまっても、そこから新規テンプレートを作成することもできるので、どちらでも構いません。
すると以下の通り、テンプレート作成画面に移ります。Notion のテンプレートは、「ページ」を作成するたびに使い回せる雛形を作ることができます。これがまた強力なのです。
本文はお好みで自由に(本当に、自由に!)作って構いません。
ここで絶対にやっておきたいのは、あらかじめ “カンバン” や ”スケジュール” などの便利なオブジェクト(モノ、道具的な意味)は作っておきましょう。そして、作成するテンプレート名をフィルタで選択しておきます。(↓こんな感じ)
作り終えると、改めて青い「New」ボタンメニューからテンプレートが選べるようになっています。
すると「プロジェクト」プロパティが自動でセットされるようになる
さっそく「新規プロジェクト」テンプレートを利用してページを作成してみます。
テンプレートを選択後に、↑の操作でやったこと
- ページタイトルを記入した
- プロジェクト目的を書いた
- プロジェクトゴールを書いた
- カンバンにタスクを1個追加した
なんとなくそれっぽい感じで、新規プロジェクト企画が1個できましたね。
このとき、「タスク」テーブルでは以下の状態になっています。
意識せずとも「せどりプロジェクト」が自動的に関連付けられました(最高!)
Notion では、テーブルなりのデータベースオブジェクトをフィルタリングした状態で「ページ」を追加した場合、そのフィルタされている値は自動で設定されるようです。つまり、プロジェクトを新規作成するページでは、テンプレート作成時に設定したように自分自身のプロジェクトをフィルタ対象としているので、追加したタスクには自動でプロジェクトが設定されるわけですね。
ここまででやりたいことはできいました。あとは、煮るなり焼くなりお好みで仕上げてください。
応用:クライアントリストを別テーブル化
今回の例では、以下のようなテーブル間の関連付けが登場しました。
- 「プロジェクト」に対しての、複数の「タスク」
- 「タスク」に対しての、単一の「スプリント」
この記事のチュートリアルを通じて、「テーブルをわざわざ分離することの利点」を少なからず体感できたと思います。
ほかには、
- 「プロジェクト」は、いずれかの「クライアント」に属する
- 裏返すと、「クライアント」は、複数の「プロジェクト」に関与する
という関係を作ることも一案です。そうすると、
- 特定のお客さんのプロジェクトをリストする
- 特定のお客さんの質疑対応(サポートチケット)をリストする
- 特定のお客さんの納品物をリストする
というように、様々なテーブルと関連付けることができますね。
わざわざ別テーブルに分ける必要はあるのか
Notion のいいところは、シンプルに使いたい入門者から、ゴリゴリとカスタマイズをして使いたい玄人まで幅広いニーズに対応できることだと考えます。
「プロジェクト」規模の捉え方も人それぞれですし、最適解は人それぞれ違います。プロジェクトが1個や2個であれば、テーブルの分離を考えずに、プロジェクトごとの単一ページ(テーブル)で管理してしまっても問題ありません。
一方で、数十〜数百個におよぶプロジェクトの情報を集約したい場合は、テーブルの使い方(設計)を統一しないと逆に面倒くさいのですよね。面倒くさいということは、自分の作業効率を低下させることにもなってしまいます。
例えば今回のやりかたであれば、プロジェクトが必ず1つのテーブルに列挙されているので、ソートやフィルタリングも自由自裁です。見失うこともないでしょうし、新規プロジェクトの作成もワンクリックで一瞬ですね。
このような理由から、私はテーブルを分割するスタイルが気に入っています。
まとめ
Notion は進捗バーをちょっと加えるだけで見栄えがよくなったりするので、進捗バーの使い方を例に、私がお気に入りのプロジェクト管理テンプレートの作り方を説明しました。
Notion はいつの間にか便利な機能が追加されるので情報を追いかけきれませんが、便利な機能はどんどん吸収して使いこなしていきたいですね。
完成版のテンプレートはこちら(記事の冒頭に記載したリンクと同じです)
https://fandjp-sandbox.notion.site/Project-fand-jp-8ea093aa9a404cc984b6c3d898377a3a