以前、プロジェクト管理に用いている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モジュールに渡すデータ例
inputurl | output |
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は有効です