半空洞男女関係

思ったこととかプログラミングしてるときのメモとか色々かいてます。メールはidそのままgmail

レッツプッシュ購読

Notionでおうちスクラム - RelationとView、Rollupでタスク管理システムを作ってみる

ふと思い立ちNotionでタスク管理をしてみていたのだけど、スクラムっぽく運用できるのか興味が出たので実装してみていた。意外といい感じにできた気がするのでメモがてら書き留めておく。RelationやRollup、DatabaseのViewについて学ぶことができます。

スプリントを作る

まず最初にスプリントのデータベースを作っておく。スプリントは、取り組みたいことを実施する期間のこと。期間を作ることで振り返りやすくなるし、自分の場合はそろそろやらないとなあと火が付く。w 必要なプロパティは次のようにする。

  • スプリント名: 文字
  • 期間: 日付
    • End Dateを有効にして、期間として表示。

f:id:mactkg:20210111162305p:plain

やっておくこと

適当に期間を区切って並べておく。

バックログを作る

次に、バックログのデータベースを作る。バックログは取り組みたいことを一覧に並べておく場所。必要なプロパティは次のようにする。

  • ストーリー: 文字
  • 規模: 数字
  • スプリント: リレーション
    • リレーション先は先ほど作ったスプリントのデータベースを参照する
  • ステータス: セレクト
    • Doing / Done を作っておく
    • Configure options から設定できるよ

やっておくこと

やりたいことが思いついたらタスクに追加していく。規模を見積もっておくと便利だと思うのでやってみている。フィボナッチ数列を使って、これはこっちより簡単そうだねとか、やり方を考えないといけないから8にするかー。など。規模を見積もるプロセスで、この作業ってどんな感じだろう?だるそうなポイントはあるかな?ということを考える。タスクを取り組む人とゴールを揃えることにもなる。

規模を見積もったら、やりたい順に並べておく。これは急いでないからあとでいいやとか、これは先にやりたいなど。

先ほど決めたスプリントの期間でできそうなことを、「スプリント」のリレーションに入れておく。

カンバンボードを作る

次に、毎日見るカンバンボードを作る。Backlogのデータベースの中に、新しいビューを作る。データとしては同じものを見るが、見方を変えてあげるという仕組みのものだ。

データベースの上に「Add a view」があるので、ここを尾クリックすると新しいViewを作ることができる。Boardを選んで作る。

f:id:mactkg:20210111163558p:plain

できた。ただ、2点気になることがある。

  1. 並び替えが反映されていない
  2. スプリントに関係ない物が入ってしまっている

1の問題は、Notionの仕様みたいだ。それぞれのViewで並び替えは維持されている。便利なこともあれば、不便なこともある仕様だ。並び順を維持するために「優先度」というのを作ってもいいけど、だいたいうまく運用できないと思う。ただ、

  • デフォルトビューで優先度管理する
  • カンバンボードの中にあるタスクは十分に少ないからどれからやるか判断がつくし、好きにやればいい

と思うので、気にしなくていいだろう。

2の問題はフィルターで解決できるので解決しよう。

フィルターを作って、該当スプリントだけを有効にする

本当は、「今日」が期間に含まれているスプリントとRelationがあるタスクだけを出せれば良いんだけど、生憎そういうことを簡単にやるのは難しそう(頑張ったらできそうだけど)なので、アクティブなスプリントにチェックボックスをつけて、そのスプリントで絞り込んで出すような仕組みを作りたいと思う。

まずはアクティブなスプリントのしるしを作ろう。スプリントのデータベースに戻って、次のようなカラムを追加する。

f:id:mactkg:20210111164145p:plain

次に、カンバンボードをそれで絞り込めるようにする。フィルターでRelation先のデータは読めないので、Rollupを使ってタスクにアクティブ情報を埋め込んでおく。バックログのデータベースに移動して、次のようなカラムを追加する。

  • アクティブなスプリント: Rollup
    • Configure rollup で次のように指定。
    • Relation: スプリント / Property: アクティブ / Calculate: Show Original

f:id:mactkg:20210111164553p:plain

これで、アクティブなスプリントのストーリーかどうかがわかるようになった。これは計画を立てている間に必要な情報ではないので、カラムを右クリックして「Hide」しておくと便利だ。(っていうか、Notion気が利くね・・・!)

最後に、カンバンボードでフィルターする。

  • 「アクティブなスプリント」の「Any(いずれか)」が「is」「チェック済み」である

f:id:mactkg:20210111164826p:plain

これでいい感じになった。完了したらDoneに持っていけばよい。

やっておくこと

アクティブなスプリントにチェックボックスを入れておこう。

おさらい

読み返すとだいぶ複雑に見えるが、やっていることは次の機能を使いこなすだけだ。

  • データベースを作る
    • ビューを定義して、計画用と日常用で使うビューを変化させる
  • Relationでデータの関連付けを行う: Relation
  • そのデータをもとに、絞り込みを行う: RollupとFilterの組み合わせ

このあと、見積もりを使ってベロシティを計算することができるようになるんだけど、それはまた次回。次回はFormulaが登場する。

参考文献