hacomono TECH BLOG

フィットネスクラブ・スクールなど施設・店舗のための会員管理・予約・決済システム「hacomono」 開発チームの技術ブログ

Jira の自動化でリードタイムを測定してみた

プロダクト開発チームのまっつん(@pagu_o28)です。

hacomonoではお客様からの問い合わせや社内問い合わせはサポートチームが受けて回答する体制になっています。
基本的にサポートチーム側で解決できるものの、中には解決が難しい問い合わせも来たりします。
そういった場合に開発チーム側にエスカレーションする、というような運用になっています。
今回は開発チームの調査、回答までのリードタイムを測定する仕組みを作ってみたのでその話をしようと思います。

開発チームへのエスカレーションチケットの管理方法

Jira を使って管理しています。サポートチームが開発にエスカレーションが必要と判断したら調査用の Jira プロジェクトにチケットを切り、開発チームが調査に着手し、サポートチームへ回答する、という流れで運用・管理しています。

Jira の自動化を設定する

なにかをトリガーに自動でなにかをする、ということができる Jira の機能です。 今回はチケットが特定のステータスに変更されたら日時を自動で更新する、ということをやってみました。

まずはチケットのフィールドに項目を増やす

今回はこのようなフィールドを増やします。

調査着手日時に関しては、デフォルトでチケット作成日時が格納されるようにしておきます。

各フィールドの更新タスクを作る

調査着手日時更新タスク
Jira のプロジェクト設定から自動化ページに遷移します。
右上にある ルールを作成 を押して自動化ルールを作成します。

次にトリガーを設定します。
今回のトリガーはステータスの変更にしたいため 課題のトランジション時 を選択します。

何のステータスから何のステータスへ変更した時をトリガーとするのかを設定します。
今回は TODO から 開発 調査中ステータスに移動したときのみをトリガーとして保存します。
サポートチームに回答した場合は サポート 確認中 というステータスに変更し、その後開発側の回答が不十分だった場合にステータスは 開発 調査中 に戻ります。このときに今回の自動化タスクが発火しないようにするため、 TODO からに限定しています。

次に、上記のトリガー発火時に何をするのか、の部分を設定していきます。
今回は 新しいアクション を選択します。

アクションのタイプとして、 課題の編集を選択します。

課題の編集画面では、どのフィールドの値をどのような値に変更するか、の設定をします。
先程作成した調査着手日時フィールドの値をトリガーが発火した日時(現在日時)に設定します。
ここに設定できる値は Jira smart values と言われる変数が利用できるためそちらを使います。
現在日時は {{now}}で取れるためそれを設定します。
https://support.atlassian.com/cloud-automation/docs/jira-smart-values-date-and-time/

最後にタスク名をつけて保存すれば完成です。

調査完了日時とリードタイム
トリガーの設定と調査完了日時については前段の調査着手日時とほぼ同じなので割愛します。
リードタイムの算出部分の設定方法をしていきます。
追加で新しいアクションを選択して、アクションとして課題の編集を選択します。

リードタイム(分)とリードタイム(テキスト)を選択します。
Jira smart values で日付の差分を取れる関数があるのでその設定をします。
https://support.atlassian.com/cloud-automation/docs/jira-smart-values-date-and-time/

調査着手日時と調査完了日時の差分を取れればよいのですが、このフィールドはカスタムフィールドなのでプロパティ名がパッとわかりません。調べる必要があるのですがここが一番わかりにくかったです。

※カスタムフィールドIDの調べ方
サポートサイトに調べ方が載っていたのでこの方法でも確認できましたが、別な方法でもカスタムフィールドIDを見つけることができたのでそちらも共有します。

適当なチケットを開いて右上あたりの三点リーダーから XML のエクスポートをクリックします。

すると別タブで XML ファイルが開くので、その中で今回知りたいフィールドを検索します。

customfield タグの id 属性に設定されている値が今回参照したい値となります。

自動化タスクの設定画面に戻り、調べたIDと diff 関数を利用して下記のような設定をします。

これで設定は完了です!

動作確認する

実際に課題のステータスを変更して確認しましたがリードタイム(分)もリードタイム(テキスト)も正確に計算されてそうです!

また、自動化タスクの監査ログも確認できます。
自動化の設定をしたけどうまく動いてなさそう、という場合にここでログを確認すると良いです。

まとめ

  • Jira の自動化で開発側の調査完了までのリードタイムを測定することができました。
  • 今回はリードタイムの計測のために Jira の自動化機能を使ってみましたが、トリガー、アクションが豊富にあるので他にも色々できそうです。
  • Next Step としては、今回取得できるようになったリードタイムを可視化していきたいと思います。