Zopfcode

かつてない好奇心をあなたに。

TrelloのButler機能でマイルストーンからタスクをいい感じに生成する

f:id:puhitaku:20200427020916p:plain

tl;drな方はButler機能へジャンプしてください。

カンバンスタイルのTODO管理ツールとして、Trelloは結構な知名度で世界に普及している。

タスク管理、殊に「カンバン」というタームが絡むといつも「タスクカードは物理とデータどちらで管理すべきか」論争が起きる。2017年あたりに前々職でTrelloをひとしきり使った頃は、当時読んだ「Kanban in Action」の影響もあって「タスクカードは物理が最強!」とかのたまっていたものだった。

その勢いのままに、前職では完全物理カンバンを全社で2年間使い倒した*1。その末に「物理とデータ、どっちもどっち」という一番面白くない(?)結論に達したのは、タスク管理がいかに難しいかを体現しているといえる*2

ひと月前から家で独りで仕事をするようになり、物理かどうかはさておき「カンバンが欲しい」と思うのは自然な流れだった。「ものづくりのタスク管理」にはやっぱりカンバンが使い心地が良い。

人気を伸ばすAsanaやWrikeを横目に、「アカウントを持ってるから」という単純な理由で、苔むしたTrelloアカウントに再び足を踏み入れたのがつい二日前の事だ。

「マイルストーン」と「構成タスク」

Trelloでは、カード間の関係性はとてつもなく質素な「リンク」で表現する。カードに別なカードを "Attachment" として添付するか、Checklist itemやDescriptionの中にカードのリンクを置く。たったそれだけ。片方がリンクを張っていても、もう片方がリンクを張っていなければ相互に渡り歩くこともできない。

流石にこれが2017年からなにひとつ変わっていないのはちょっとガッカリした。

ではその「リンク」を使って自分が何をやりたいのかというと、割とデカい目標を「マイルストーンカード」として作っておき、それを分解した「サブタスクカード」を紐付けるというもの。

バカ正直に前者と後者の間でリンクを張り合うなど正直2020年のサービスとは思えない。なんとかならないものかと考えていたら、画面右上に見慣れない "Butler" ボタンを発見した。

Butler機能

"Butler" = 「執事」。要はボードで起きたイベントをトリガしていろんな操作をオートメーションするというもの。某CIおじさんっぽくていい名前だと思う。

前節で紹介した親子カード間のリンク貼りは、実は「親カードのチェックリストを子カードに変換する」という手段を使うと若干ショートカットすることができる。ここにButlerをくっつけて、以下のようなことが可能になる。

  1. 手動で "Milestones" リストにカードを作る
    (例: Implement API) f:id:puhitaku:20200427011336p:plain

  2. 「"Milestones" リストにカードを作った」をトリガにしてButlerが目を覚まし、 "Implement API" カードに "Tasks" という名前のチェックリストを自動で追加する f:id:puhitaku:20200427011512p:plain

  3. Butlerが追加したチェックリストに手動でアイテムを追加する(例: Create a repository) f:id:puhitaku:20200427011528p:plain

  4. 「"Milestones" リストにあるカードの "Tasks" という名前のチェックリストにアイテムを追加した」をトリガにしてButlerが目を覚まし

    • カードの名前から "Tasks of Implement API" というリストを自動でつくる
    • "Create a repository" をカードに変換し "Tasks of Implement API" に自動で追加する

f:id:puhitaku:20200427011600p:plain

自動でカードになっていることがわかる。さらに元のボード画面に戻ると、リストまでもが自動で作られていることがわかる。

f:id:puhitaku:20200427011616p:plain

子カードの詳細を覗くと、親へリンクされている。

f:id:puhitaku:20200427011623p:plain

このようにして、「マイルストーンカードを作ったら、タスクを書く場所が中に勝手にできて、さらにタスクを書くと勝手にカードになる」という嬉しいワークフローが実現する。

定義は直感的

実際の定義はというと、これまた直感的で好感が持てる。

「"Milestones" リストのカードにある "Tasks" チェックリストにアイテムを追加したらカード化」の定義の例でいうと、まずトリガが以下のようになる。

f:id:puhitaku:20200427012838p:plain

もう見た目通りという感じ。条件をポチポチで追加していくと英文法で記述されたトリガが完成する。今回はフィルタとして「in list "Milestones"」しか入れていないが、他にも「自分にアサインされている」とか「○○色のラベルが付いている」みたいな細かいフィルタが可能。

次にどういうアクションを起こすかの定義をする。

f:id:puhitaku:20200427013523p:plain

Tasks of {conditio と見切れているのは Tasks of {conditioncardname} と入っている。この {} で囲まれた文字は変数 (Variable)で、 {conditioncardname} の場合はトリガしたチェックリストを抱えるカードの名前がFormatされる。

このようにして、 "Tasks of {親カードの名前}" リストにチェックリストから変換した子カードを追加するという処理が実装できる。

保存したRuleは英文法で表示され、これまたわかりやすい。

f:id:puhitaku:20200427014200p:plain

無料プランだと 1 Rule のみ

現状、Butlerのトリガを2つ同時に登録することは無料ユーザーではできない。私の場合は、「MilestoneリストのカードにあるTasksチェックリストにアイテムを追加したら…」だけ有効にしている。そこが一番めんどくさくて省略したいところだからね!

しかしながら、この制限はかなーりきついので、もうちょっと緩和してくれたら超嬉しいなとは思う。

まとめ: Trelloがんばってね

ここまでTrello + Butlerを推しておきながら、正直なところ近頃人気のAsanaを見るとTrelloはもう空前の灯火なのではないかと心配になる。それくらいAsanaはよくできている。今回も、もしTrelloのアカウントを以前から持っていなければAsanaを採用していただろう。

まあButlerでできることが極度に目新しいかというとそうではないけども、Trelloの延命へとポジティブに働いてくれるのはきっと間違いない。「タスク管理といえばTrello」が過去のものにならないように、これからも強大なライバルたちとしのぎを削ってもらえたらと願っている。

*1:これは私がやりたいと言ったわけではなく、社長を筆頭にそういう思想だった

*2:スクラムとかチームの可視化みたいな話はもちろん背景にたくさんあるが、今回は割愛する