SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

JIRAやConfluenceをもっと使いこなそう! エキスパートが教える、外部ツール連携術(AD)

JIRAのデータを柔軟に分析するならTableauが最適! レポートを作成し、データ活用の第一歩を踏み出そう

JIRAやConfluenceをもっと使いこなそう! エキスパートが教える、外部ツール連携術 第5回

  • X ポスト
  • このエントリーをはてなブックマークに追加

 昨今、開発現場での情報共有は必須ともいえるほどに重要視されています。情報共有ツールとしてJIRAやConfluenceといったアトラシアン製品は多くの開発現場で使用されていますが、チームの仕組みに存在するからなんとなく使っている……そのような方も多いのではないでしょうか。しかしせっかくのツール、多種多様な機能をもっと活用したいと思いませんか? 本連載では使い慣れた環境と組み合わせてツールをさらに使いこなす方法を、アトラシアン製品の国内販売代理店であるリックソフトがお伝えします。前回は「Slack」と、JIRA/Confluenceを連携する方法を紹介しました。今回は「JIRA Software」をビジュアル分析ツールである「Tableau(タブロー)」と連携させ、データを可視化する手順を解説します。

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 本記事ではビジュアル分析ツールである「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を起動します。

Tableau Desktopの起動
Tableau Desktopの起動

2.接続情報の入力

 JIRAデータベース接続に関する接続情報を確認した上で入力してください。

接続情報の入力画面
接続情報の入力画面

 検証過程において、不明な項目については <JIRA ホームディレクトリ>/dbconfig.xml内のDB接続情報を確認することで判別可能です。正式運用に際しては、自社のアクセスポリシーに従い適切なユーザー情報を使用してください。

dbconfig.xmlサンプル
<?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> 
dbconfig.xmlの各項目の説明
項目 説明 上のサンプルでの設定値
サーバー 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をデータソースとして指定します。

Tableau Desktopデータソース選択画面

 [今すぐ更新]ボタンを押下し、VIEWの内容が取得できていることを確認します。

[今すぐ更新]ボタンを押下
[今すぐ更新]ボタンを押下
VIEWの内容が取得できていることを確認
VIEWの内容が取得できていることを確認

 問題なければ、レポート作成を実施します。

レポート作成

 下図は作業工数の予実対比をEVM(Earnd Value Management)のイメージで集計したものです。本記事内では、レポート作成に関するすべての各種TIPSの紹介は割愛しますが、従来のJIRA標準レポートでは実現が難しかった時系列データ分析も可能になります。

作業工数の予実対比をEVMのイメージで集計
作業工数の予実対比をEVMのイメージで集計

集計・分析

 いくつかのレポートを組み合わせてダッシュボードを作成し、アクションを用いて連動させることで、過去の一定時点でのプロジェクトの状態を可視化できます。

 「いつ頃からプロジェクトの進捗遅延が始まったのか?」「どういった作業に遅延の傾向が強いのか?」「遅延要因が個別の人やタスクに依存しているか?」「全体の管理プロセスの問題か?」――レポートを動かし、さまざまな切り口でデータを見ながら考えることで、原因を追究可能になります。

ダッシュボードの例
ダッシュボードの例

JIRAとの連携(URLリンク)

 URLアクションを使用し、TableauレポートからJIRAのチケットを開くことも可能です。

[チケットを開く]をクリックすると、
[チケットを開く]をクリックすると、
JIRAのチケットを開くことが可能
JIRAのチケットを開くことができる

 URLアクションでは、レポート内の特定フィールドをURL文字列として使用可能です。チケット番号にあたるフィールドをあらかじめ用意し、URLアクションのパラメータとして指定することでTableauからJIRAの画面へ直接遷移できます。

 URLアクションの設定は上部メニューから、[ダッシュボード]→[アクション]→[アクションの追加]→[URL]を選択してください。

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のサーバー名とポート番号を入力します。

Tableau Serverのサーバー名とポート番号を入力
Tableau Serverのサーバー名とポート番号を入力

 パブリッシュ権限を保有しているユーザー情報を入力します。権限レベルの内訳はヘルプページを参照してください。

Tableau Serverのサインインページ
Tableau Serverのサインインページ

 コンテンツ情報を入力します。

コンテンツ情報の入力画面
コンテンツ情報の入力画面

 パブリッシュが完了したら、実際にWebブラウザ上でレポートを確認し、最終の動作確認を実施します。

パブリッシュの完了画面
パブリッシュの完了画面

おわりに

 本記事では簡単なレポート作成までの手順を紹介しました。実際にデータ活用を進める場合においても、最初のステップでいきなり深い分析を実施するのではなく、まずは日常使っているデータをTableauのレポートに置き換えてみることをお勧めします。

 魅力的なツールを手にしたことで、凝った分析を実施したいと思われるかもしれませんが、

  • データソースの量(履歴や傾向を見るに足るだけの情報量)が足りない
  • データソースの質(実業務と一致する精度でのデータ管理や多軸分析用のマスタ情報整備、類似データの名寄せ)が不十分
  • 深い分析に必要なTableauのレポート作成習熟度(非定型分析のような)が不足している
  • レポート作成や分析に充てる業務時間の確保ができない

などの問題を抱えているケースがあり、導入後、即座に意図した成果(分析結果)が得られない可能性があります。

 一方で、基本的なレポートを作成するまでのプロセスは簡単なので、Tableauのさまざまな便利機能により、容易にレポート作成を始めることができます。

 これを踏まえて、下図のようにいくつかの段階を経て目標にいたるような、自社の状況に合ったロードマップを作成することをおすすめします。

ロードマップの例
ロードマップの例

 なお、リックソフト株式会社は、米Tableau Softwareとリセラー契約を締結し、Atlassian製品とTableauの連携や分析ソリューションのご提案が可能になりました。

 Tableau製品、Atlassian製品に関するご相談は、リックソフト株式会社までお気軽にお問い合わせください。

リックソフトはアトラシアン製品アジアパシフィック売り上げ第1位(2015~2016年)

 リックソフト株式会社は、日本でトップレベルのAtlassian Platinum Solution Partnerです。アトラシアン製品の専任技術者が30人以上在籍しており、手厚いサポートを提供しています。また、豊富なライセンス購入特典もご用意しております。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/10494 2017/11/10 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング