HubotによるJIRAチケット作成の自動化
チケット駆動開発を行う上で障壁になることの一つに「チケット作成が面倒でだんだんやらなくなる」という課題があります。
Jim Coplien先生は紙の付箋を強く推奨しています*1し、私も分かりやすいアナログの方が好きです。しかし、JIRAにはディスプレイさえあればどこでもタスクボードを確認できる、バーンダウンをすぐに確認できるといったメリットがあります。何よりエンジニアはツールを導入したりハックしたりするのが好きですしね。このような理由でデジタルなツールを利用している現場も多いと思います。
本稿では、JIRAを使う上で面倒なチケットの作成をHubotで自動化する方法を考えます。
スプリント計画のフロー
私が以前にいたチームでやっているフローを書きます。現在いるチームでも同じフローを導入しようとしています。
このチームでは、プロダクトバックログリスト(PBL)をGoogleスプレッドシートで管理しています。バックログの相対見積もりやタスク計画も同じスプレッドシートを使っています。スプレッドシートは共同編集できるので、企画からリリースまでチーム全員がリアルタイムに共同作業を進めるにはスプレッドシートが最適ですね。
そんなわけで、プロダクトバックログリストは下表のような形式にしています。
バックログ名 | KPI | ステータス | 相対見積 | タスク |
---|---|---|---|---|
HubotによるJIRAチケット作成の 自動化をブログに書く |
ブクマ数 | READY | 3 | 設計1 執筆1 推敲1 |
過去記事のまとめを書く | 直帰率の改善 | NEW | - | - |
ここでは、1番目のバックログに着手する場合を考えてみましょう。1番目のバックログに対して、JIRAには以下のチケットを追加します。
- ストーリー「HubotによるJIRAチケット作成の自動化をブログに書く」
- サブタスク「設計」 残り1時間
- サブタスク「執筆」 残り1時間
- サブタスク「推敲」 残り1時間
手作業で行う場合は、JIRAの画面からポチポチとチケットを追加していくことになります。チーム全員で手分けしてやればできますが、とても根気の要る作業です。
Hubotによる自動化
私は考えました。Hubotに話しかけるだけでJIRAにチケットが追加されたら幸せになれそうだと。
@hubot create PROJECT backlog HubotによるJIRAチケット作成の自動化をブログに書く,設計1,執筆1,推敲1
そうすれば、ちょっとしたタスクもチケットに残すようになり、見える化が進んでチームが助け合うようになるのではないかと。
@hubot create PROJECT backlog Hubot勉強会 @hubot create PROJECT backlog Docker勉強会
スプレッドシートでバックログとタスクを上記の形式に変換する数式を書いてあげれば、スプレッドシートからチャットに貼り付けるだけでバックログを作成できる仕組みを整備できますね。
そこで、JIRAのREST APIを利用してバックログを作成してくれるHubotスクリプトを書いてみました*2。使い方はREADME.mdを参照してください。
チケット作成BOTの導入効果
BOTを導入する前は、JIRAをポチポチする作業に10分×チーム人数ぐらいの時間が掛かっていました。BOTを導入することで、わずか数秒で終わるようになりました。より本質的な、バックログやタスクの内容に対する議論に時間を使えるようになりました。
また、チケット作成の作業コストが小さくなったので、レトロスペクティブの内容をバックログに入れるといった改善サイクルを回せるようになってきました。定着するまでには時間が掛かりそうです。
総合的に考えると、チームの貴重な時間を節約できてよかったと思います。