プロマネとAlteryxとTableau

以前、プロジェクト管理に用いているJIRAのデータを活用し Python ×Alteryx×Tableauでタスクを可視化した事例の記事を書きましたが、成り立ちと、データ、Alteryxにもう少し焦点をあてます

きっかけ

最初にあった課題感は必ず(そして突発的に)発生する ”ちょっとした作業” というものが、本来の進めなければならない物事の進行を阻害している場合があり

いったい今それにどのぐらいの”コスト”と”時間”が使われているのかわからず、ただただやり続けるという状態をプロジェクトを管理する上でどうにかしたいと考えたのがきっかけです。そこでtruestarでは作業を可視化するためにJIRAを導入し管理するようになりました


あらかじめ分かっている作業タスクの多くはこのツールに登録され、誰が、どのタスクの担当で、それはどんなステータスなのか、についてはある程度わかるようになりました。それでもタスクにならないまま作業が行われ1つ1つは小さかったはずなのにそれが積み重なりいつの間にか大きくなり本来の作業を阻害します。しかも最終的にどのぐらいかかったかもよくわからない。データを利用して何とかこの課題を解決できないかと考えました


JIRAのデータベース構造

JIRAは登録されているタスクのデータをCSVで吐き出すことができます。ざっくりと以下のようなデータを取得することが可能です
(*実際には他にも多くのデータが取得可能)

要約課題キーステータス優先度担当者期限作業ログコメント
作業タスクのタイトルユニークなキー状態優先度そのタスクを担当している人の名前このタスクに設定された期限日作業した内容とそれにかかった時間コメントのやり取りの履歴

その中でも”作業ログ”というデータには、タスクに対して「誰が」、「いつ」、「どのぐらいの時間」、「どのような」作業をしたかというデータが詰まっています。このデータを有効利用すればタスクにかかっている時間や、だれがどれだけ何に動いているのかをとらえることができます。
実際の作業ログフィールドの中身は

作業内容;作業日時;作業者;かかった時間(秒)

というように「;」で区切った形でデータを持っています。実際には以下のような形です

Rawデータチェック、データ取り込み、データ簡易チェック;2018/12/05 15:46;Toshihiro.Rokusya;5400


とあるタスクに対する作業のタイミングというのは1度とはかぎりませんが、例えば5回の作業をしている場合、それぞれの作業ごとに列が分かれた状態で取得することができます

作業ログ1 作業ログ2 作業ログ2 作業ログ4 作業ログ5
1回目の作業ログ 2目の作業ログ 3回目の作業ログ 4回目の作業ログ 5回目の作業ログ

データプリパレーション

このデータを活用するためにはデータの事前準備が必要です。データの”抽出”とデータの”加工”にAlteryxを使います。必要なことは主に以下のようなことです

  • JIRAからデータの取得
  • 不要なデータのカット
  • 必要なデータの追加
  • データの加工(整形や集計)
  • データのアウトプット

今回はここから「データの取得」と「データの加工」についてピックアップ

以前の記事ではデータの取得については異なるプログラムを使っていましたが、これをAlteryxに統合しました。抽出から加工までシームレスにデータの準備を行うことができています


データ抽出


Alteryxは指定したURLからデータをダウンロードできるツールがありJIRAは特定のURLからデータをCSVとして落とすことができます、まずこれを使ってデータをダウンロードします

読み込みたいURLと、データを出力する場所をDownloadツールに渡すことでデータを抽出します

Downloadモジュールに渡すデータ例

inputurloutput
http://HOST/sr/jira.issueviews:searchrequest-csv-all-fields/13600/SearchRequest-13600.csv\DIRPATH\作業ログ.csv

Download モジュールの設定


データクレンジング

例えば、今回の”作業ログ”というデータの列には「;」区切りで複数のデータが詰まっていることを書きましたが、このようなちょっと複雑なデータでも、Alteryxにはデータクレンジングのための様々なツールが揃っています。

今回つかったRegular Expressionツールならば正規表現でデータをクレンジング可能です

たとえば
「Rawデータチェック、データ取り込み、データ簡易チェック;2018/12/05 15:46;Toshihiro.Rokusya;5400」
というデータのうち、作業者のデータは;で区切られた3番目に位置しており
それを正規表現で表すことで、その3番目のデータだけ切り出して「作業者」というデータのみをクレンジングして取り出すことができます

(.*);(.+);(.*);(\d+)

アウトプット

Alteryxをつかって必要なデータが整形、準備してしまえばあとはTableauを使って可視化は比較的簡易にすることができます

”月別にどのぐらい~”や、人別に”どのぐらい~”といったことです
画面の下部にあるように、”タスクごとにどのぐらいの時間を使った”のかや、
いま”なにが止まっているのか”ということもまとめて可視化することができます。

高度な分析だけでなく、普段のタスクの可視化にもAlteryx × Tableauは有効です