はじめに
本記事ではビジュアル分析ツールである「Tableau(タブロー)」とプロジェクト管理ツールの「JIRA Software」を連携させる手順を紹介します。
JIRAに蓄積されたプロジェクト管理やタスク管理、工数管理等のデータを活用したい場合、標準機能ではダッシュボードの各種レポート機能を使用します。しかし、それだけでは意図した集計仕様が実現できず、悩んだ方も多いのではないでしょうか。
JIRA標準のレポートは、あくまでも定形レポートであるため、各社各様の柔軟なデータ出力にまでは対応しきれないケースも存在します。また、主に現時点での最新データを照会するものであり、時系列のデータの変化を捉えることはできません。
そのため、より柔軟なレポートを必要とする場合は、Tableauとの連携をおすすめします。先述した問題を解消するだけでなく、他の業務システムのデータとも連携が可能になり、複合的なデータを元にした指標の算出の自動化によって、データ活用の幅が広がります。
また、高い視覚効果やグラフ間の連動、しきい値アラートの設定等によって、大量のデータの中から気づきを生むための仕掛けを作ることができます。
対象読者
- JIRA SoftwareまたはJIRA Coreを利用中のユーザーで、かつJIRAデータ活用にお困りの方
環境
今回は以下の環境で検証しています。
- JIRA Software 7.5
- PostgreSQL 9.6
- Tableau Desktop 10.4.0
- Tableau Server 10.4.0
TableauからJIRAデータベースを参照する
本記事ではJIRA DBサーバーへ直接アクセスすることを前提に、RDBMSはPostgreSQLであるものとして説明します。
ただし、実際の運用環境においてはTableauからの照会における複雑さ、頻度によってJIRA DBサーバーへの負荷増が懸念されます。そのため、状況次第で集計用DBサーバー(データウェアハウス用のカラム型DB推奨)を別途用意し、データ移行を行った上で移行先DBを照会してください。
1.Tableau Desktopの起動
「サーバーへ」 カテゴリ内で[詳細…]→[PostgreSQL]と選択し、Tableau Desktopを起動します。
2.接続情報の入力
JIRAデータベース接続に関する接続情報を確認した上で入力してください。
検証過程において、不明な項目については <JIRA ホームディレクトリ>/dbconfig.xml内のDB接続情報を確認することで判別可能です。正式運用に際しては、自社のアクセスポリシーに従い適切なユーザー情報を使用してください。
<?xml version= "1.0" encoding= "UTF-8" ?> <jira-database-config> <name>defaultDS</name> <delegator-name> default </delegator-name> <database-type>postgres72</database-type> <schema-name> public </schema-name> <jdbc-datasource> <url>jdbc:postgresql: //172.31.34.13:5432/jira_db</url> <driver- class >org.postgresql.Driver</driver- class > <username>jira_db_usr</username> <password>jira_db_password</password> <pool-min-size> 20 </pool-min-size> <pool-max-size> 20 </pool-max-size> <pool-max-wait> 30000 </pool-max-wait> <validation-query>select 1 </validation-query> <min-evictable-idle-time-millis> 60000 </min-evictable-idle-time-millis> <time-between-eviction-runs-millis> 300000 </time-between-eviction-runs-millis> <pool-max-idle> 20 </pool-max-idle> <pool-remove-abandoned> true </pool-remove-abandoned> <pool-remove-abandoned-timeout> 300 </pool-remove-abandoned-timeout> <pool-test-on-borrow> false </pool-test-on-borrow> <pool-test- while -idle> true </pool-test- while -idle> </jdbc-datasource> </jira-database-config>
項目 | 説明 | 上のサンプルでの設定値 |
---|---|---|
サーバー | JIRA DBサーバーのホスト名またはIPアドレス | 172.31.34.13 |
ポート | DBサーバー接続ポート番号(デフォルト:5432) | 5432 |
データベース | JIRAインスタンスを導入したスキーマ名 | jira_db |
ユーザー名 | JIRA DBサーバー 接続ユーザー名 | jira_db_usr |
パスワード | JIRA DBサーバー 接続ユーザーにひもづくパスワード | jira_db_password |
よくある接続できない理由として、以下が挙げられます。接続できない場合は、まずはこちらを確認してください。
- pg_hba.confに自身のホストからのアクセスが許可されているか?
- postgresql.confのlisten_addressesにlocalhost以外からの接続許可がされているか?
- DBサーバーへ該当ポートで接続可能か? ファイアウォール等でポート制限がされていないか?
Tableau Serverも利用する場合、Tableau ServerからもJIRA DBサーバーへアクセスする必要があります(最新データでレポートを更新するため)。
また、通信疎通が可能か、DBアクセスに必要なドライバが導入されているかを確認してください。
状況がよく分からない場合、レポートをパブリッシュ(公開、共有)する際に不備があればエラーが表示されます。その内容に応じた対処を実施してください。
データソースの準備
JIRAのER図は、Atlassian社より開発者向け資料の一部として公開されています。必要に応じて参照してください。
下図は、このER図から使用頻度の高いテーブルのみ抜粋し結合キー情報を追記したものです。
各テーブルの概要は以下の通りです。集計仕様に応じて必要なテーブルを結合してください。
テーブル名称 | 概要 |
---|---|
jiraissue | チケット情報全般 |
worklog | 作業工数 |
cwd_user | ユーザー情報 |
project | プロジェクトマスタ |
issuetype | 課題タイプマスタ |
priority | 優先度マスタ |
resolution | 解決状況マスタ |
issuestatus | 課題ステータスマスタ |
fileattachment | 添付ファイル情報 |
customfield | カスタムフィールドマスタ |
customfieldvalue | カスタムフィールド入力値 |
changegroup | チケット変更履歴(ヘッダー) |
changeitem | チケット変更履歴(ボディ) |
なお、jiraissueに保持される各種チケット属性情報は現時点のものであり、過去の時系列の設定値の変化を捉えるためには、changegroupおよびchangeitemを経由して照会する必要があります。
照会用のSQLはVIEW化しておくことをお勧めします。Tableau Desktopカスタムクエリに直接SQL記載することもできますが、DB側でのオブジェクト管理ができていれば変更履歴管理ができる上に、チーム内で同一の集計仕様を共有化できます。
Tableau Desktopからデータソースへ接続する
DBサーバーへの接続が確立したら、Tableauから読み込むオブジェクト(データソース)を選択します。今回は、前工程でご案内したVIEWをデータソースとして指定します。
[今すぐ更新]ボタンを押下し、VIEWの内容が取得できていることを確認します。
問題なければ、レポート作成を実施します。
レポート作成
下図は作業工数の予実対比をEVM(Earnd Value Management)のイメージで集計したものです。本記事内では、レポート作成に関するすべての各種TIPSの紹介は割愛しますが、従来のJIRA標準レポートでは実現が難しかった時系列データ分析も可能になります。
集計・分析
いくつかのレポートを組み合わせてダッシュボードを作成し、アクションを用いて連動させることで、過去の一定時点でのプロジェクトの状態を可視化できます。
「いつ頃からプロジェクトの進捗遅延が始まったのか?」「どういった作業に遅延の傾向が強いのか?」「遅延要因が個別の人やタスクに依存しているか?」「全体の管理プロセスの問題か?」――レポートを動かし、さまざまな切り口でデータを見ながら考えることで、原因を追究可能になります。
JIRAとの連携(URLリンク)
URLアクションを使用し、TableauレポートからJIRAのチケットを開くことも可能です。
URLアクションでは、レポート内の特定フィールドをURL文字列として使用可能です。チケット番号にあたるフィールドをあらかじめ用意し、URLアクションのパラメータとして指定することでTableauからJIRAの画面へ直接遷移できます。
URLアクションの設定は上部メニューから、[ダッシュボード]→[アクション]→[アクションの追加]→[URL]を選択してください。
URL欄へは以下の通り指定します。
http://server-name/jira/browse/<チケット番号>
チケット番号にあたるフィールドをあらかじめ作成し、レポートのディメンションへ指定しておきます。
URLアクション用の項目についてレポート上への表示が不要であれば、該当項目の「ヘッダーの表示」をオフにしてください。
本機能は活用の幅が広く、
- プロジェクトコードをURLで渡し、WBSガントチャート for JIRAで該当プロジェクトを開く
- Tableauレポートの値からJQLを組み立て、Issue Editorで該当チケットを一括表示、編集する
- JIRAの添付ファイル一覧レポートを作成し、Tableauで検索した添付ファイルをURLで渡してダウンロードする
など、アイデア次第でJIRAとのシームレスな連携を実現できます。ぜひお試しください。
Tableau Serverへパブリッシュする(公開・共有)
Tableau Desktopで作成したレポートはTableau Serverを通じてチームへ共有しましょう。
- ブックの変更内容を速やかに共有できる
- 閲覧回数が記録され、陳腐化したレポートの特定が可能になる
- レポートの定時メール配信ができる(他ユーザー向けの配信設定も可能)
- しきい値アラートによる異常検知
このように、効率的にデータ共有、閲覧するための機能が豊富にあります。
また、柔軟なアクセス権限設定によって閲覧対象者を明確に指定できるため、ブックのまま共有するよりも、情報共有におけるセキュリティリスクが低減します。
上部メニューから[サーバー]→[ワークブックのパブリッシュ]と操作し、Tableau Serverのサーバー名とポート番号を入力します。
パブリッシュ権限を保有しているユーザー情報を入力します。権限レベルの内訳はヘルプページを参照してください。
コンテンツ情報を入力します。
パブリッシュが完了したら、実際にWebブラウザ上でレポートを確認し、最終の動作確認を実施します。
おわりに
本記事では簡単なレポート作成までの手順を紹介しました。実際にデータ活用を進める場合においても、最初のステップでいきなり深い分析を実施するのではなく、まずは日常使っているデータをTableauのレポートに置き換えてみることをお勧めします。
魅力的なツールを手にしたことで、凝った分析を実施したいと思われるかもしれませんが、
- データソースの量(履歴や傾向を見るに足るだけの情報量)が足りない
- データソースの質(実業務と一致する精度でのデータ管理や多軸分析用のマスタ情報整備、類似データの名寄せ)が不十分
- 深い分析に必要なTableauのレポート作成習熟度(非定型分析のような)が不足している
- レポート作成や分析に充てる業務時間の確保ができない
などの問題を抱えているケースがあり、導入後、即座に意図した成果(分析結果)が得られない可能性があります。
一方で、基本的なレポートを作成するまでのプロセスは簡単なので、Tableauのさまざまな便利機能により、容易にレポート作成を始めることができます。
これを踏まえて、下図のようにいくつかの段階を経て目標にいたるような、自社の状況に合ったロードマップを作成することをおすすめします。
なお、リックソフト株式会社は、米Tableau Softwareとリセラー契約を締結し、Atlassian製品とTableauの連携や分析ソリューションのご提案が可能になりました。
Tableau製品、Atlassian製品に関するご相談は、リックソフト株式会社までお気軽にお問い合わせください。
リックソフトはアトラシアン製品アジアパシフィック売り上げ第1位(2015~2016年)
リックソフト株式会社は、日本でトップレベルのAtlassian Platinum Solution Partnerです。アトラシアン製品の専任技術者が30人以上在籍しており、手厚いサポートを提供しています。また、豊富なライセンス購入特典もご用意しております。