LCL Engineers' Blog

バス比較なび・格安移動・バスとりっぷを運営する LCLの開発者ブログです。

自動タイムトラッキングツールのGTMを手動のTogglの結果と比較してみた

フロントエンドエンジニアの岡田です。 エンジニアは工数を出す機会が多いと思いますが、みなさんはどのようなツールを使っていますか?

私は数年前から、Togglというツールを使って計測しています。 仕事を始める前にはボタンをポチッと押し、終わったらポチッと止める。 Togglの前に使っていたツールを合わせると5年以上このスタイルで仕事をしているため、今ではすっかり習慣になっています。

ただ、手動での計測は、以下のデメリットがあります。

  • 押し忘れたり、止め忘れることもたまにある
  • 突然話しかけられた時など、切り替えるのが面倒

そこで自動で計測ができる、GTMというツールを導入し、使い慣れたTogglと結果を比較してみました。

Togglとは

作業の前後にボタンを押して計測する、手動のタイムトラッキングツールです。 toggl.com

ブラウザでログインをしてすぐに使えます。その他、デスクトップアプリ(Mac, Windows, Linux)やiOSアプリもあります。 デスクトップアプリでは、ポモドーロにも対応しています。 f:id:lcl-engineer:20180416133521p:plain

GTM(Git Time Metric)とは

Gitの履歴と、エディタに入れたプラグインを使って、自動でタイムトラッキングするツールです。 準備さえしてしまえば、あとはいつもどおりコーディングするだけで、自動的に時間を計測してくれます。
Git Time Metric by git-time-metric

GTM導入方法

インストール

Homebrewからインストールします。

brew tap git-time-metric/gtm
brew install gtm

エディタプラグインのインストール

以下のエディタに対応しています。

  • Sublime 3
  • Atom
  • Vim
  • IntelliJ IDEA, PyCharm, WebStorm, AppCode, RubyMine, PhpStorm, AndroidStudio
  • VSCode
  • Terminal

それぞれのインストール方法は、公式ドキュメントに記載されています。

Atomの場合は以下のパッケージを入れます。
git-time-metric
※インストール後はAtomの再起動が必要です

初期化

プロジェクトごとに初期化します。

cd your/project/root
gtm init

以上で設定は完了です。
あとは普段どおりにコードを書くだけです。

比較方法と集計手順

3/14 - 3/20の1週間で、夜行バス比較なびの各issueにかかった時間を集計しました。

Toggl

f:id:lcl-engineer:20180416135145p:plain Web上のReports画面で期間を選ぶと、集計されます。 集計の単位は、clientとprojectが選べます。 現状は、clientには対応するサービスの名称(夜行バス比較なび、格安移動、等)、projectにはissue番号を入れています。

GTM

コマンドを打って出力します。

gtm report -format summary -from-date 2018-03-14 -to-date 2018-03-20

f:id:lcl-engineer:20180416142738p:plain

コミット毎に時間が出力されます。 今回は、issueごとに集計する必要があるため、この情報を使います。

なお、コミット毎の時間はわかるものの、issueをグルーピングする情報はコミットメッセージにつけた文字情報(issue番号)しかありません。 そのため、集計するためには文字列を解析する必要があります。 今回は、テキストエディタとGoogle スプレッドシートを駆使して手動で集計しました。

今回の集計では使いませんが、以下のコマンドを打つと、タイムライン形式で表示されます。

gtm report -format timeline-hours -from-date 2018-03-14 -to-date 2018-03-20

f:id:lcl-engineer:20180416144521p:plain ※ 印のついていない時間が多いですが、他のプロジェクトの仕事や開発以外の仕事をしている時間です。

集計結果

TogglとGTMの計測結果を表にまとめてみました。

ツール issueA issueB issueC issueD
Toggl 11 428 574 71
GTM 6 121 310 0

※単位:分
※小数点以下は切り捨て

結果にはかなり開きがあります。 GTMでは実際にコードを書いている時間しか計測できないため、以下のような時間が漏れているのだと思います。

  • ミーティング、他のチームやメンバーとのやりとり
  • 仕様確認や設計、ドキュメント作成
  • テスト、コードレビュー等

良いところ・良くないところ

結果をふまえて、それぞれのツールの良いところと良くないところをまとめました。

Toggl

良いところ

  • 準備が簡単。アカウントを作ればすぐに始められる
  • 計測が正確(ただし押し忘れなければ)
  • コードを書いていない時間も計測できる
  • Reportがいろいろな形式で見やすく、集計しやすい

良くないところ

  • 計測が手動(慣れないとボタンを押し忘れる)

GTM

良いところ

  • 計測が自動(ボタンを押さなくて良い)
  • タイムラインがおもしろい(Togglにもあるのかもしれないが見つけられず)

良くないところ

  • プロジェクトよりも細かい単位では集計するのが大変。issueごとに集計する場合は、自分で加工が必要
  • コーディング以外の時間が入らないため、短期間で見ると結構ずれがある

まとめ

今回は短期間(1週間)かつ細かい単位(issue単位)で比較してしまいましたが、GTMはこのパターンが苦手なようです。 もっと長い期間で大きな単位、例えば3ヶ月間でプロジェクトAとプロジェクトBにかけた時間の割合を比較する、といった用途ならGTMでも役に立ちそうです。

仕事に慣れるまでの方や、細かく記録したい方はTogglが向いていると思いますので、用途に合わせて使い分けるのが良さそうですね。