JIRAチケットにリマインダー機能をつけてみた【JIRA⇔Zapier⇔slack 】
こんにちは、ファンズでQAエンジニアをしているSHIOと言います。
今日はJIRAに関するTipsを記事にしようかなと思います。
※ 今回は割とJIRAのセットができる方向けなのでJIRAわからない・・って方は是非知ってそうな方とチャレンジをお願いします・・!
現在ファンズで私は開発・QAのワークフロー改善も行う立場で駆け回っています。そのフローの要を担うJIRAの改善をよくやっています。
ちなみにQAポジションも募集してますのでぜひ(PR)
そんな私ですが、長く使ってたとかではなく、前職からJIRAを使い始めてあっという間にJIRA大好きマンになり、こういう設定したい!といじくりまわしていたら人より少しJIRAに詳しくなっただけの民です。
チケット管理大変じゃないですか?
短期的に消化をする予定のチケットなんかは多分そんなに課題は生まれないと思います。
生まれてから完了するまでの期間が短いので、TO DOリストとさして変わらないくらいの手軽さで運用が回りますもんね。
問題は「息の長いチケット」「担当者のいない古のチケット」たち。
今回は、まだ傷の浅い「息の長いチケット(いつかはやるやつ)」に対しての改善の話です。
通常は、バックログにスプリントを切って対象のスプリントにチケットを入れて置き、当該スプリントになったらその作業に着手する、というのがプランニング的な側面でもセオリーかと思います。
一方で現実を見ると「その間に別タスクが入ってしまったのでできない」「なんらかの都合で先延ばしになった(詳細な日付は未定)」といった事情で、チケットが宙に浮いてしまうことが多々?あると思います。
当社もロードマップ上のタスクついては進行するものの改善系で比較的優先度の低いものと等は後回しになる傾向があります。
たぶんこの辺はDevOpsチームがいて改善を回してくれることで運用が正しく回るのですが、当社は少数チームのため現状それは難しい・・。
で、どういう問題が出でくるかというと「すっかり忘れて古のチケットになっちゃう」ってことです。
2か月後くらいに確認したいねーとチームで話あったとしても、チケット担当者が2か月後に気づかないといけない世界観、良くない・・・よくないのです。
というわけで作りました「JIRAチケットにリマインダー機能」!
🍖材料
ざっくりとした工程を説明します。
JIRAのカスタムフィールド等で「リマインド日」を作成
JIRAの自動化機能を使い、スケジュール(毎日定時)で起動するように設定
起動したら該当するチケット情報をWebhookに送信する
【チケット担当者にメンション必要な場合】Zapierに送ってJIRAのIDとSlackのIDを付け合わせさせる
【チケット担当者にメンション必要な場合】付け合わせたslackのIDとチケットの中身で通知に必要な値をslackのWebhookにに送る
手順4と5については、「JIRAの命名がslackと同一」とか「固定メンションでよい」という場合はすっとばしていただいてOKかと思います。
では、詳細な設定に行きましょう!
JIRAのカスタムフィールド等で「リマインド日」項目を作成
シンプルにお伝えすると、チケットに以下のようなリマインド日を設定できる項目を作成します。
これはJIRAのカスタムフィールドから作成し、利用したいプロジェクト画面に紐づける作業が必要です。
私は「リマインド通知 (slack)という名前の項目にしています」
2. JIRAの自動化機能を使い、スケジュール(毎日定時)で起動するように設定
プロジェクト設定>自動化 があるのでクリックしましょう。
「ルールを作成」ボタンをクリックします。
「自動化」では、ほぼノーコードで自動化の中身をセットアップすることができますので、私がしている内容を記載します
まず、スケジュールをセットします
設定内容は以下です。(複雑なリマインドスケジュールでない場合は、ベーシックな方で設定ください。cron使って設定したい場合は「高度な設定」から可能です。
ここでは、起動するタイミングを起動したときに起こすアクションの実行対象を設定できます。
つまりここでは「Nのタイミングでこの処理をスタートさせる」、「スタートしたら前の手順で作成した項目に「今日」と同じ日が入ってたら絞り込む」までが設定されているということです。
例:
project in (プロジェクトキー名,プロジェクトキー名 ) AND "リマインド通知 (slack)[Date]" = now()
3. 起動したら該当するチケット情報をWebhookに送信する
次のステップも設定しましょう。
このステップでは、前ステップで絞り込んだチケット情報をWebhookで送る部分を設定します。
個別メンションか固定メンションかでルートが変わります。
本フローは、「個別メンション」をメインに解説します。
個別メンション:Zapier から 受信用のWebhookURLを発行して設定しましょう
固定メンション
slackワークフロービルダー でWebhookURLを取得して設定するかWebhookではなくSlack request を選んで直接Slackに送りましょう。
※ 「カスタムデータ」を設定(送りたい情報を限定)し、文面もセットすることができます!
次は、このWebhookの飛び先であるZapier側の設定を見ていきましょう。
4. Zapierに送ってJIRAのIDとSlackのIDを付け合わせさせる
全部で3ステップを設定しますので、新しいZapを立ち上げてください。
Webhookをトリガーとして選びも、以下のように受信設定を行います。
2ステップ目ではスプレッドシートに、JIRAのユーザーIDとslackのユーザーIDを記載しておいて付け合わせるように設定しています。
当社はスプレッドシートを利用しているので、スプレッドシートベースでの入力をしていますが、リスト自体をZapierに持たせて付け合わせすることもできます。
今回はスプレッドシートを利用します。
付け合わせのリストが格納されているシートを指定し、どの項目ベースで付け合わせるかを設定していきます。
基本的には、チケット担当者のJIRAのユーザーIDをキーに検索して、その隣に記載しているslackIDを参照しています。
5.付け合わせたslackのIDとチケットの中身で通知に必要な値をslackのWebhookに送る
通知に必要な情報を得たので、slackに通知をしましょう。
slackを選んで以下のような設定をしていきます。
Message text部分は、皆さんの任意ですので必要な情報を記載しましょう!
実際に送られたものは・・?
こんな感じでチケット担当者に送られます!
担当者は、「ハッ」と気づきチケットの内容に対してのネクストアクションを行っていくという形です。
注意
本設定の場合は、「チケット担当者」が設定されていないと名無しで通知が飛んでしまいます。
メンションが欲しい場合は、必ず「担当者」のアサインを忘れないようにしましょう!
運用をはじめて
チームや会社が大きくなり扱うチケット量が増えてきたころに、MTGをしていると「そういえばあのチケット・・」みたいなやり取りが増えたり、担当者が覚えてないといけない世界観に違和感がありました。
使われるかちょっと心配したものの、MTG等で積極的に宣伝をした結果、皆さん意外と使い始めてくださり、通常機能のように利用されています。
個人的にまだ改善の余地があるはあるので、引き続き現状を見つつ改善を進めていきたいなと思いますが、まずはこういったリマインダーの設定で脳リソースを開放していくというのはどうでしょうか?
これ以外にもJIRAにはたくさんの自動化を仕掛けていますので、また改めてご紹介できればと思います!
また、チームメンバーにはここが不満!とかあればガンガン伝えていただける環境にはしているので、私の改善の日々は終わらない(終わりたくない)・・!
最後に
さて、こういう自動化も進めているファンズ社ではエンジニア採用も活発です。
是非、気になったらカジュアル面談しましょう・・!
また転職意志ないけど雑談したいとか、JIRAについて相談したいとかも全然受け付けてますので、SHIOのXアカウントより、DMやリプライくださいませ~!
それではまた次の記事でお会いしましょう~!
SHIO@ファンズの中の人