GeekFactory

int128.hatenablog.com

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を参照してください。

github.com

チケット作成BOTの導入効果

BOTを導入する前は、JIRAをポチポチする作業に10分×チーム人数ぐらいの時間が掛かっていました。BOTを導入することで、わずか数秒で終わるようになりました。より本質的な、バックログやタスクの内容に対する議論に時間を使えるようになりました。

また、チケット作成の作業コストが小さくなったので、レトロスペクティブの内容をバックログに入れるといった改善サイクルを回せるようになってきました。定着するまでには時間が掛かりそうです。

総合的に考えると、チームの貴重な時間を節約できてよかったと思います。

*1:No JIRA!!!とシャウトしてたw

*2:Hubotのスクリプトはどんな形(npm?GitHub?)で公開するとみんなが使いやすくなるのかな。詳しい人ぜひ教えてください。