Togglでいろいろな可視化をするためのツール
概要
生活環境が大きく変わった去年からToggl(https://toggl.com/app/timer)をまめにやるようになりました。
今日はTogglの解析に使う便利ツールを作ったよというお話。
Togglとは
Togglとはタイムトラッカー(タスクにかかった時間を記録するやつ)のサービスで、無料で提供されています。他のサービスと比較したわけではありませんが、以下のような特徴があるので利用しています。
- ブラウザ、スマホアプリ、デスクトップアプリ様々な端末から記入できる (ただ、スマホアプリは大分不安定っぽい)
- ブラウザ上で簡単な可視化ができる
- タグ、クライアント、プロジェクトなど複数の属性を設定できる
- 無料版でも十分な機能がある (有料版は複数人でのプロジェクト管理に有用?)
タイムトラッカーを使うことのメリットはいろいろ*1ありますが、自分がどんな風に時間を使ったかがわかるのが一番のメリットだと思います。
データとっただけにならないように、自分の生活習慣、無駄な時間がどれくらい発生しているかなどを可視化して考察しようと思い、Togglからデータをとってきて解析などができるツール(ライブラリ?)を作りました
コードは以下のリンクから。
github.com
機能
- 前日までのタスクに関するデータをローカルファイルへ保存。毎回データを取ってくると時間がかかったり、API切れをしてしまったりするので、ローカル環境にデータを保存しておき、いつでも手軽に解析できるようにするという狙いがあります。
- 最新一週間(7日間)のデータは書き直すことがあるかもしれないので、更新する
- 各タスクの属性データ(クライアント、プロジェクト、開始時刻、継続時間、タグ)を記録
- いくつかの可視化機能(詳細は以下)
可視化の例
①特定種類のタスクにどれくらい時間を使っているか各日付でプロット
タグやクライアントやプロジェクトに縛られない可視化をしたくなります。例えば、頭を使う作業が複数のクライアントに点在するなどの時、Toggl公式の機能でやろうとするとグラフ生成までに結構な時間を要します。複数種類のプロジェクトが与えられたときに、どの仕事に何割の時間を割くかというのは、すぐに決められるものではなく試行錯誤の結果決まるものです。その試行錯誤に使えるデータを出しやすくしようというのが狙い。
②特定のタスクに何割の時間を割いているか?
7つの習慣では、時間貧乏にならないためにはタスクを4種類(領域)に整理し、重要度の高い種類のタスクをこなしていくのが有効であるといっています。Togglと4領域の整理は相性がいいらしくいろんな方が合わせ技でタスクの整理をしているようです。私もそれにならって4つの領域のどの領域かをクライアントとして登録しています。
関連: 7つの習慣×Toggl!自分の時間の使い方を4つの領域で見える化しよう!
各領域でどのくらいの時間が使われているのかを三角グラフを使って可視化しました。三角グラフはいくつかの制約があるものの、それをクリアすれば2次元上で3変数に基づいたデータの傾向を可視化できます。
③1日の中での時間の使い方
関連: Toggl APIとPythonで時間軸一覧レポートの作成に挑戦 - Qiita
今までの可視化方法ではどの日に何をどれくらいやったかという情報しか可視化しかやってきませんでしたが、どの時間に何をしたかというのも貴重な情報です。例えば朝起きてから1時間くらいは何もしていない時間が多いとか。横軸を日付、縦軸を同一日の中の時刻としてタスクの種類を色で表現するグラフを生成します。
利用法
main.pyを実行する
応用法
タスクスケジューラで定期的に実行し、slackでグラフと一緒にレポートを上げるとかやると良さそうです。
Toggl公式が送ってくれるメールもありますが、大分生データに近い形で送られてくるので、自分でカスタマイズできると結構嬉しいです。
これから
時系列パターンに注目すると何か見えてきそうですが、ちょっとまだ考え切れてないです
備考
Togglが習慣になるのには大分時間を要しました。いきなり全部つけようと思って挫折してしまう人が多いイメージ。最初は仕事場にいるときだけとか、無理のない範囲でつけるのがいいと思います。
また、TogglのAPIで取ってこられるタスクの量は1回に50件が限界*2らしく、1日のタスクが50件を超える場合、少し修正が必要です。