インターラプト開発者ブログ

インターラプトのエンジニアによる技術系ブログ

タイムトラッキングでノルマを管理する方法

代表の高橋です。 最近は個人的に多忙な毎日の時間管理を全て管理したいと思い、業務関係はToggl、業務も含めそれ以外の時間管理をHoursというアプリを使って管理しています。

フルトラッキングはHoursを使っているのですが、これにはAPIがないためサードパーティツールを使って時間の計算が出来ません。スクレイピングCSVをダウンロードすればできなくはないでしょうが、出来ればAPIを使いたいものです。

Togglだと、なんと無料プランでもAPIが使えるので業務時間だけでも自動集計し、ノルマ管理を出来る様に実装してみました。

ノルマ管理で使用するTogglの3つのAPI

TogglのAPIには、開始日と終了日を指定してその期間の記録と、今稼働中の時間を取得と、プロジェクト一覧APIがあります。

これで、下記のような数値がわかります。

  • 今月の稼働時間
  • 今日の稼働時間
  • 昨日の稼働時間
  • それぞれのプロジェクト毎の稼働時間

ノルマを設定する

ノルマは目標稼働時間で設定します。 一ヶ月は必ずこの稼働時間を確保したい時間を設定します。 これはプロジェクト毎に設定しても良いですが、合算値のほうが日々のノルマを追いやすいです。

ノルマを計算する

ノルマの計算方法は、下記のようにします。 * 月の残りの稼働時間 = 月の目標稼働時間 - 月の実稼働時間 * 月の残り時間 = 月の最終日 23:59:59:999 - 現時間 * 1日のノルマ時間 = ( 月の残りの稼働時間 / 月の残り時間 ) * 24

これで、1日に必要な稼働時間を計算することができます。プロジェクトによっては通常よりも稼働が必要になる場合があったりと、時間配分のバランスや、事務作業に割くことができる時間の計算も必要になっていますが、これで可処分時間をリアルタイムに把握することが可能になります。

Botでリアルタイムに計算したノルマ時間を通知する

計算した時間は、

  • 1日の稼働ノルマ時間
  • 1日の実稼働時間
  • 1日の差分時間
  • ノルマ達成かどうか
  • 前日のノルマレポート

を用意します。 計算結果は定期的にLINEなどに通知すると便利です。

f:id:interrupt_inc:20201214121438j:plain

画像はノルマ時間だけですが、このようにお好きなプラットフォームに自動送信すると便利です。

実際にTogglから数値を取得する

開発言語はRustを採用しました。 Rustのライブラリでtoggle-rsがあったのでこちらを利用しました。

cargo.tomlからは直接組み込めないようで、ダウンロードして利用しました。この時に作業中の時間の取得するメソッドにバグがあるようで、ライブラリ本体に一部修正を行いました。 データの取得は下記のようにしました。

期間を決めてその範囲の記録を取得する

let entries = toggl.get_time_entries_range(Some(start_time), Some(yesterday_end_time))

稼働中の記録を取得する

let running_entry = toggl.get_running_entry();

稼働中のデータもリアルタイムに取得できるのが便利です。 これによって、稼働中でもノルマ時間が増えていかず、リアルタイムに現状の状態を把握することができます。

リモートワークに便利?

働く時間に場所でなくワークライフバランスを重視して時間も自由になっている会社も多くなっていると思います。 「今日あんまりできなかったけど、明日取り返す」といったことも、増えてくるかもしれません。そういった場合に、こういったリアルタイムにノルマを管理できるものがあると全体の管理がシームレスになって来るのかなと思います。

動いているものを使ってみたい!

現在トライアルでノルマ管理bot「QuaTime」のモニターを募集しています(規模問わず) 無料で使えますのでご連絡ください。

■QuaTimeって?

月間の時間または売上目標または目標ポイントを決めてその数値を満たせるように進捗を毎日教えてくれるbotです。

■どう使うの? Togglでタイムトラッキングするだけ、あとはLINEやSlackなどでbotが「今日のノルマは5時間です。今日は3時間やりました。残りは2時間です。」と教えてくれます。

■毎日やらないとどうなるの? 毎日のノルマ時間が増えていきます。サボるほど、月の後半が辛くなっていきます。

■どんな人におすすめ? 昼夜逆転で時間リズムがすぐに狂う人、寝過ぎてる人、何かを成し遂げたい人、サボりがちな人、三日坊主な人、最初遊んであとから始めようとしてどこまでやればいいのか覚えてない人、お金を稼ぎたい人、勉強時間を確保したい人におすすめです。

お試しください。