クラウドワークス エンジニアブログ

日本最大級のクラウドソーシング「クラウドワークス」の開発の裏側をお届けするエンジニアブログ

JiraのAutomationを使ってワークフロー改善したお

こんにちは。 最近はもっぱら「ふしぎの海のナディア」を鑑賞しているエンジニアの宮城です。
クラウドワークスが運営するビズアシというサービスの開発を担当しています。

bizasst.jp

crowdworks.jp

今日はビズアシで使用している Jira というサービスのAutomation機能について、
最近行った業務改善の話をベースに、簡単な設定方法などを紹介させていただこうと思います。

そもそもJiraとは?

Jira とはざっくり言うと、Atlassianのチケット管理サービスです。(ざっくりしすぎか 😅 )

もう少し具体的に言うと、Jiraにはスクラムを前提とした機能が多くあり、
主にスプリント管理機能やベロシティレポート、バックログ管理機能などがあります。
ビズアシではスクラムを採用しており、管理ツールとしてJira1を使用しています。

今回この記事で紹介するのは Automation と言われる自動化機能で、
様々なイベントをトリガーとして、自動処理のアクションを設定することできます。

公式サイト: Automationについて

で、どこで活用したの?

ビズアシにはテクニカルサポート(通称:テクサポ。以下テクサポで統一します)という業務があり、
ビズアシ事業部(実際にサービス運営を担当している部署)から、以下の様な依頼を受けます。

  • イレギュラー案件などで、通常操作では行えないデータの操作を行いたい
  • オペミスなど誤操作で発生したデータを取り消しをしたい
  • 定期バッチの手動実行をしたい

などなど、色々あります。

事業部がテクサポを依頼したい際は、Jiraにテクサポ依頼内容を記載したチケットを発行してもらい、
Slackワークフローを用いてPOへ連絡する、というフローになっていました。

しかし、ITGC2の兼ね合いもあり、実際の依頼フローは複雑になり、以下の様な課題が発生してました。

  • 課題①:集計が難しい
    • チケット作成時の設定箇所が多く、入力内容が統一されないため、
      後でテクサポのチケットを集計することができない状態でした。
  • 課題②:MGR承認判定されたかわからない
    • テクサポ依頼後、作業内容にMGR承認が必要かどうかPOが判断するのですが、
      後からそのチェックをしたのかどうか確認できない状態でした。
  • 課題③:単純に依頼手順が複雑
    • テクサポチケット発行フローに必要な操作画面が多く、
      手順が複雑なため、運用が難しい状態でした。

特に2つ目「課題②:MGR承認判定されたかわからない 」については、
ITGCにも関わる深刻な問題と考え、改善対応をすることになりました。

何個か案をチームで検討した結果、即対応ができ、かつ効果を出せそうな Jira Automation を用いた改善をすることになりました。

で、どう変わったの?

フローで見たほうがわかりやすいと思うので、まずは変更前の業務フローについて紹介します。
(実際はもう少し細かいですが、わかりやすさを重視し、省略しています🙏)

  • 変更前
    変更前

大まかなイメージは掴んでいただけたでしょうか?
ご覧の通り変更前はSlackワークフローを用いた力技が多く、手入力や画面遷移も多いため運用が難しい状態でした。

そこで、Jira Automationを導入することで 1担当者/1アクション/1画面 で完結するようにし、かつ通知対応を自動化しました。
以下が変更後の業務フローになります。

  • 変更後
    変更後

だいぶスッキリしたのではないでしょうか? 🙌
大きな課題だった「MGR承認判定されたかわからない」に関しても、
ラベルを用いることで、後から承認判定されたかどうか確認できるようになりました。🎉

で、どうやって導入したの?

仕組み導入までの大きな流れは以下のようになります。

  1. Jiraに専用チケットテンプレートを作成
    • テクサポ専用の課題タイプを作成します。使用することで視覚的にも判別しやすくなる他、集計などが楽になります。
  2. Jira Automationを設定する
    • 自動化の肝の部分です。設定手順は後述します。
  3. SlackとJiraを連携する
    • SlackにJira Integrationをインストールします。インストールすることで、SlackからJiraチケットの作成が可能になります。
  4. Jira呼び出しのSlackワークフローを導入
    • 事業部メンバーには、ITに詳しくない方もいるので、ワークフローから容易に呼び出せるようにします。

本記事はJira Automationの紹介を主旨としているので、今回1, 3, 4の解説については割愛させていただきます。🙏
次項から、Jira Automationの設定手順を説明していきます。

Jira Automationの使い方

前提ですが、Jira Automationには ルール という自動化のロジックを管理する概念があります。
ルールを作成し、対象のProjectに割り当てることで、Automationは初めて機能します。
(そもそも「Projectって何?」って人は、公式サイトを参照ください。)

どんなルールを作成するかは、それぞれの組織や環境に応じて検討・設計する必要があります。
今回のテクサポフロー改善においては、最終的に以下3つのルールを作成することにしました。

  1. テクサポチケット作成時に、POへ通知するルール
  2. POがITGC対象ラベルを付与した際に、マネージャーへ通知するルール
  3. マネージャーが承認ラベルを付与したら、エンジニアに通知するルール

今回は例として、「テクサポチケット作成時に、POへ通知するルール」の作成手順を紹介していきたいと思います。

ルールの設定方法

  1. Jiraのプロジェクト設定画面を開きます。
  2. 「自動化」メニューを選択し、右上から「ルールの作成」を選択します。
    (参考画像では既にルール作成済みですが、未設定の場合は何も表示されない状態になります)

  3. トリガーの設定画面が表示されます。
    今回はテクサポチケット作成時に通知したいので、メニューから「課題の作成時」を選択します。

  4. 対象チケットの条件を指定します。
    テクサポチケットの時だけ自動化機能を使用したいので、「課題フィールドの条件」を選択します。

  5. 以下のように設定し、保存を選択します。

    • フィールド: 課題タイプ
    • 条件: と等しい
    • 値: テクサポ(←事前に作成したテクサポ専用課題タイプ)
  6. 続いてもう一つ条件を追加していきます。
    現状だとテクサポチケット作成時に必ず通知アクションが実行されてしまうため、少し使い勝手が悪いです。
    通知したくないケースもあると思うので、「Slackから登録されたテクサポのみ、通知する」という形にしていきたいと思います。
    画面から「新しい条件」を選択します。

  7. 「課題フィールドの条件」を選択し、以下内容を設定、保存します。

    • フィールド: ラベル
    • 条件: 次のすべてを含む(次のいずれかを含む でもOK)
    • 値: テクサポ ラベル(事前に登録した「テクサポ」ラベル)
  8. これで条件設定は終了したので、最後にアクションを設定します。
    コンポーネント追加画面から「新しいアクションを追加」を選択します。

  9. 通知欄にある「Slack メッセージを送信」を選択します。

  10. 以下の設定を行い、保存します。

    • Webhook URL: 送信したいSlackチャンネルのWebhook URL
    • メッセージ: 送信するメッセージ本文3
    • 差出人: ON(Botとして通知されます)
    • チャンネルまたはユーザー: WebhookURLで指定したチャンネル以外に送信したい場合のみ設定
  11. 最後にルール名をつけます。
    ここでは管理しやすいよう「テクサポ連携機能/テクサポ作成時/Slack連携」と命名しました。
    名前をつけたら「オンにする」を押して、ルールを公開します。
    (他画面に移ってしまった場合は、右上に表示される「ルールを公開」ボタンから公開できます。)

  12. これでルールの作成ができました!同じような要領で、他の2つも作成していきます。
    以下が3つのルール作成後の最終画面です。

  13. Jira Automationの設定は以上になります。お疲れさまでした 🎉

実際の動作画面

実際に動かした際に通知されるか確認してみます。
以下は、テクサポチケットが作成された際のSlack通知画面です。

ちゃんと動いてそうですね。
ガスパッチョは一時のお茶目なのでスルーしてください。😅

余談:SlackワークフローでJiraを呼び出す方法

前述したように、事業部のメンバーはは通常業務でJiraを使用しておらず、
そのため常用ツールであるSlackのワークフローを用いて、ボタン1Clickでチケット作成できるようにしたいと考えました。

で、どうやるかなんですが.......
....
残念ながらJiraをSlackワークフローから1Clickで直接呼び出す方法はブログ執筆時点ではありませんでした...。😭

「え、じゃあどうしたの?」
という声が聞こえてきそうですが、安心してください。履いてますよ。
ワークフローなどには対応してませんが、コマンド入力による呼び出しが可能です。

/jira create {対象の課題名}

## 例
/jira create テクサポ

このコマンドを事業部の方に覚えてもらうのは流石に心苦しいので、
現在は苦渋の決断で、このコマンドを召喚するワークフローを作成し、運用しています。
こんな感じです。

フローは以下になります。

  1. 事業部の方はSlackから、コマンド召喚ワークフローを起動。
  2. コマンドをコピペし、Slackに投稿。フォームを呼び出す。
  3. フォームに内容を入力し、チケットを作成

うーん、なんとも惜しいw 😅
まぁそれでも最初のよりよっぽど使いやすくなったので良いんですが...。
(Atlassianの方、ぜひ機能改善お願いします! 🙇‍♂️)

まとめ

いかがでしたでしょうか?
JiraにはAutomationの他にもたくさん機能があり、正直ビズアシでもまだまだ使いこなせてはいません。
スクラムはチケット管理など管理コストが結構かかるので、こういった小さな業務改善を重ねて低コストで運用していきたいですね。

ビズアシでは、こういった業務のKPTも常に実施しており、業務改善を日々心がけております!(←忘れてたビズアシPR)

We're Hiring !

crowdworks.jp では、そんな業務改善するぜMANも含めて、様々なエンジニアを募集しております。
ご興味ある方は、ぜひお気軽にご連絡ください。

herp.careers

ご覧いただきありがとうございました。🙇‍♂️


  1. 誤解のないよう補足しておくと、Jira はクラウドワークス内組織だと、ビズアシ開発チームだけが使用しています。他のチームではNotionやBacklogなど、環境に適したサービスをそれぞれ採用しています。
  2. IT全般統制(Information Technology General Control:ITGC)とは、企業情報の信頼性を確保するために利用するITシステムを、適切に運用管理する仕組みのことです。(出典: OBCコラムより
  3. Slack通知メッセージで使用できる変数は、Jira公式サイトを参照ください。

© 2016 CrowdWorks, Inc., All rights reserved.