Jiraによる時間管理
弊社では勤怠管理として人事労務freee、タスク管理としてJiraのServer版*1を導入しています。
さらにJiraのアドオンとして、Timesheet Reports and Gadgetsを使用しています。
これらを以下のルールで運用しています。
- すべての勤務時間は、必ず何らかのJiraチケットと紐付ける。(ちょっとした雑談の時間なども、専用のチケットを用意してそこに時間を付ける)
- Jiraに入力した時間の合計が、勤務時間と必ず一致させる。
Jiraにすべての作業時間を入力することで、人事評価の参照資料にしたり、AIによる作業時間予測の学習データに使っています。
しかしながら、これには課題が2点ありました。
- 細かく作業時間を記録してないよ!
- Jiraの合計時間が勤務時間と合ってないよ!
細かく作業時間を記録してないよ!
誰かのレビューしたり、作業相談にのったり、お客様の問い合わせに対応したり、という風に、毎日突発的な割り込みが起こりますが、それらの時間をすべて異なるJiraのチケットへ記録するのは、ツールでもなければ実現できません。
そこでToggl trackを使います。
これに、Chrome用の拡張機能を組み合わせます。
そうすると、ChromeでJiraのチケットを表示した際に、時間計測ボタンが出てきます。
弊社の作業の流れだと、作業開始時にJiraチケットを確認することが多いため、ここでStart Timerを押すことで、Togglにチケット別の時間が記録されていきます。
あとは、Chrome拡張のToggl to JIRA(FREE)*2を使用することで、Togglに入力した時間が、Jiraに同期されます。
Togglの時間は秒単位で集計、Jiraの方は分単位で集計のため、多少の誤差が出ますが、そこはTimesheet Reports and Gadgetsの画面で勤務時間と比較し、手動で調整します。
Jiraの合計時間が勤務時間と合ってないよ!
ここまでで、作業ごとの時間入力ができるようになりました。
が、Jiraの合計時間が勤務時間と合っていないことがある、の課題が残っています。
弊社では、勤怠入力は人事労務freeeを利用しているため、当初は、freeeの勤怠画面を見て、それをJiraの合計時間と一致しているか、目視確認としていました。
上記画面だと、7時間51分という時間が表示されていますが、この時間は休憩時間が入っていないため、各自が休憩時間を脳内で減算処理する必要があります(画面例だと6時間51分となる)。
休憩が1時間だとシンプルで良いのですが、弊社はスーパーフレックス×自由休憩制度なので、休憩時間が1時間36分など、中途半端なこともしょっちゅうあります(勤務途中に水泳に行ったり) 。
これはアカン。
こんなのを『各自で注意する』運用にしてたら、ミスはいつまでもなくなりませんし、じゃあ『ちゃんとミスがないか目視ダブルチェック』とか言い出すと、イケてない組織へまっしぐらです。
救世主freee API!
見つけたのがfreee APIです!
この中の人事労務freee APIを使えば、プログラムで勤務時間を取得することができます。
そこでTampermonkey用のユーザースクリプトを作成し、Timesheet Reports and Gadgetsの表を書き換えるようにしました。
初回アクセス時には、認証情報を求める状態になります。
認可情報を取得をクリックすると、別ウィンドウが開きます。
ここで許可するを押すと、ユーザースクリプトがアクセストークンを勝手に記憶します。
結果、Timesheet Reports and Gadgetsの表がこうなりました。
入力時間があっているかどうか、一目瞭然!
❌のついた日の時間を修正して、画面をリロードするだけです。
(自転車のアイコンは、自転車通勤した日を意味しており、本記事とは関係ありません)
さいごに
Timesheet Reports and Gadgetsは若干マイナーなアドインだと思いますが、超ピンポイントに合致する人に役立てばいいなと思い、記事にしました。 リモートワークが増えた昨今、『Jiraにすべての勤務時間を入力する』というのは、需要が増えていくのかな、と思っています。 スクリプトはGitHubに公開してますので、興味のある方はコード改造して使ってみてください!