Trello、便利ですよね!
タスク管理ツール、Trello。
アジャイル開発におけるカンバンとして、あるいはチームのタスクと状況の見える化ツールとして、活用されている方も多いと思います。
私自身も、仕事において複数のボードを使いつつ、さらには個人タスクの管理にも利用しています。
拡張機能も色々とあり、カスタマイズしてより便利に活用できますよね!
Trelloをスクラム開発で使う場合に困ったこと
スクラム開発において、プロダクトバックログを定義し、それをTrelloボードにおけるカードとして登録し、開発を進めています。
ただし、そこで迷うことがありました。定義したプロダクトバックログとカードの行き来の仕方です。
- プロダクトバックログ ⇒ カード
- ユーザーストーリーマッピングなどの手法で洗い出したプロダクトバックログをカードに1つ1つ登録するのは大変。かつ、バックログの粒度や優先順位について、リスト上では構造的に把握しずらい。
- カード ⇒ プロダクトバックログ
- ボード毎にjsonやExcelファイルでエクスポートすることはできます。ですが、特定の項目のみとなり、カスタム項目については相互変換することができません。
実現したいカタチ
プロダクトバックログ ⇔ Trello にて、それぞれの役割で担う要素、項目について
相互で取得できる状態であること。かつ、相互のマージに人力の手間が極力かからないこと。
もう少し細かく書くと、
- Trelloだけでプロダクトバックログの管理はつらい
- 外部で作成したものを取り出して、自動でカード登録できないか?
- ただし、外部の方が正本でメンテナンスをそこでするだけ、であればTrelloを使う意味がない
- 初回は外部からカードに登録が楽にできて、その後カードをメンテしつつ開発を進め、状況・結果をきちんと外部に反映できる形で取得できる、というのがしあわせになれそう
APIでどこまでできるのか、調べてみた。
実現したいことがどのように実現できるかを調べてみたところ、
APIが公開されていたので、試してみました。
API実行用のキーとトークンを発行
https://trello.com/app-key にて apikey / token を発行する。
色々試してみる。
https://developers.trello.com/reference/
ここに丁寧なリファレンスがあり、実際に試すこともできます。
ユーザーIDをスタートとして、ボードID、リストID、カードIDを取得して
色々な処理要求が行えます。
-
ボード一覧取得
-
メンバー一覧取得
- https://trello.com/1/boards/(ボードID)/members?key=(key)&token=(token)
- ボード参加者のIDと名前が取得可能
-
ボードのリスト一覧取得
-
カード登録
-
既存のカードの情報の取得
- 基本項目
- listsでとれる
- チェックリストは https://api.trello.com/1/cards/id/checklists で詳細取得可能
- 添付ファイル
- listsで有無はわかる
- https://api.trello.com/1/cards/id/attachments で詳細取得可能
- カスタム要素
- 基本項目
ここまでのまとめ
- APIを使うことで簡単にカードの登録や更新ができる
- Pythonなどでツールを作成することで
- 外部で作成したもの(例:CSVファイルなどの構造体)より、ボードへの一括登録が可能。
- 項目のマージも可能(作りこめば)
- ただし、API実行には、先にボードやリストを作成し、そのIDに対して実行が必要
ということで、管理項目や運用フローが定まっていれば、
Import / Export ツールを作ることで実現したいカタチに近づけられそうです。