こんにちは、アプレッソ開発部 / 30 分早く帰り隊の野口です。
私の業務時間を一日あたり 5 分程度短縮してくれた DataSpider × Trello の連携についてご紹介します!
Trelloとは
Trello は、オンラインのコラボレーションツールです。
* Trello
お持ちの Google アカウントか、専用のアカウントを登録して簡単に使いはじめることができます。
もともと小規模チームでのオンラインコラボレーションのために作られているツールですが、UI がとても優れているため、私は個人的なタスク管理ツールとして愛用しています。
その機能については、言葉で説明するよりもスクリーンショットを見ていただくほうが伝わると思うので、ご覧ください。
・「お仕事」ボードの様子
・カードをつかんで移動させている様子
こういうツールです。
ふりかえり
私は、一日の終わりに「ふりかえり」を行っています。
「ふりかえり」を行うことによって、業務を日々改善していくことができます。
この「ふりかえり」を行うにあたって、Trello のカードに入力したコメントがとても役に立つことに気づきました。
・プロフィール画面の様子
Trello では、個人のプロフィール画面で直近のアクティビティを一覧することができて、ふりかえりにぴったりに思えます。
しかし、このページを参照して一日のふりかえりをするには、ちょっと面倒なことがありました。
* 一度に少量のアクティビティしか表示されず、一日ぶんの記録をすべて出すにはページ下部の「Load More Activity」(上の画像で、赤い丸で囲んだところ)を数回押す必要がある(しかも、一回あたり数秒待たされる)
* あまり興味のない「カードをリストから別のリストに移動した」みたいな記録も表示される(ノイズが多い)
* 作業への割り込みや、予定外の作業等を記録しているので、ふりかえりではそれを集計したいが、手動で行う必要がある
……こうなったら、DataSpider の出番です!
Trello REST API
と、その前に一つだけ。
Trello では、REST API が公開されています。
* Trello API Documentation
Trello の REST API はキーとトークンを認証情報に含める形式なので、 ガイドに従ってキーとトークンを取得します。
これで、REST 形式で Trello にアクセスできるようになりました。
レスポンスはこのように、JSON で返ってきます。
REST アダプタによるデータの取得とマッピング
さて、ここでいよいよ、(おなじみ)REST アダプタの登場です!
グローバルリソースの作成
REST アダプタでは、まずはグローバルリソースを作る必要があります。
いたってシンプルなものです。
actions の取得
今回取得したいのは、「一日のふりかえり」に使うためのデータなので、特定のユーザ(私)の actions ということになります。
クエリパラメータを指定して、必要なデータだけを取得しましょう。(デフォルトで取得してしまうと、不要なデータが取れすぎるので)
便宜上、キリよく「今日の 0 時」からのデータを取得することにします。(始業は 9 時 30 分ですが……)
基本的なデータのマッピング
一度結果データの JSON をファイルに保存したうえで、[JSON ファイルを指定して出力スキーマを設定] することによって、簡単にマッピングのためのスキーマを設定することができます。
基本的なデータのマッピングはこんな感じです。
あとで説明しますが、出力先は CSV 書き込み処理ですね。
データの分析と集計
私は、Trello で作業を記録するにあたって(勝手に考案した)各種のタグを使用しているので、そのタグを拾い集めるかたちで、それぞれの件数を集計します。
・「割り込み」を集計している様子
・ Plus for Trello という拡張機能が記録する文字列(独自タグを含む)をパースして、見積追加・予定外作業等の各工数 *1 を集計している様子
このように、必要なマッピングは一つのマッパーでレイヤを分けて、一気に行ってしまうようにしました。
CSV への出力と Excel への転記
どんどんいきましょう。
実際のところ、マッピングで必要な値は揃ったので、あとは出力するだけです。
もちろん、Excel アダプタで直接出力してもよいのですが、私はプログラマなので、プレインテキストが大好きすぎて、CSV に出力するという選択肢を取ってしまいました。
このようにマッピングすると……
こういうのが出ます。
ところがご覧の通り、CSV のままでは、思いのほかクソ読みづらい……、さりとてその都度手動でフォーマット直すのもメンドクサイ……ということがわかったので、Excel に転記しましょう。
Excel で予め必要な書式を入れたテンプレートを用意しておけば、CSV を読み取って、そのまま書き出すだけですみます。マッパーは不要です。
できました!! *2
セルの色が変わっているところは、テンプレートとなる xlsx ファイルで予め変えておいたり、条件付き書式を設定しておいたところです。
なかなかいい感じに、読みやすくできたものです。
めでたい
仕上げとして、このスクリプトをサービス登録して、ScriptRunner で実行できるようにしておきましょう。
……これで、毎日の終わりにスクリプトを一度実行するだけで、一日のアクティビティと、集計された各種のデータを一望のもとに見たわしながら、じつに快適にふりかえりを行うことができるようになりました。
もう「Load More Activity」をポチポチしたり、「★E:」で検索をかけて、ヒットした部分の実績工数を暗算して……といった単純作業は必要ありません!
最後に、スクリプトの全貌をざっくりお見せしておきます。
アイコンが多く見えますが、やりたいことをざくざく置いていった結果こうなっただけなので、工夫すればもっとコンパクトにまとめることも可能だと思います。
まとめ
こうして、私の業務時間は一日 5 分短縮されました。
一日 5 分とあなどるなかれ、仮に年間 240 日勤務するとして、一年に 5 * 240 = 1200 分、つまり 20 時間もの節約になります!
スクリプトを作るのにかかったのは(Trello の API リファレンスと格闘していた時間も含めて)ほんの 4 時間程度なので、非常に回収率のよい投資ですね。
自動化できそうな作業をポチポチ手動でやることへの(プログラマ特有の怠惰さに起因する)ストレスもなくなって、健康にもよい影響がみられます。
【30 分早く帰り隊】が 30 分早く帰れる日まで、あと【25 分】です。
読者の皆さまも、ぜひ DataSpider を利用して業務の自動化に取り組んでみてください!
*1 厳密には工数ではなく、「ポモドーロ数」です。どうしてここにポモドーロ数なんてものが出てくるのかご興味のある方がもしいらっしゃれば、私の個人ブログを読んでいただけるとよい……かもしれません。(ポモドーロと Trello によるタスク管理(1 of 3 : 導入編) - この国では犬がコードを書いています)
*2 実際のログを出力したら全部公開するにはちょっとファンキーすぎたので、適当にダミーデータを混ぜています