Endo Tech Blog

Techブログと言う名のただのブログです。

タスクをDoneするまでの時間を計測する 「DoneTimer」を作ってる話

日付が変わりましたが、GMOペパボ Advent Calendar 2019 18日目の記事です!

 

f:id:kikuchi1201:20191219101220p:plain

qiita.com

 

前回は shibatchさんで、「AWS認定ソリューションアーキテクト (アソシエイト)受験記録と合格したのにやらかしたこと」でした!

 

shibatch.hatenablog.com

DoneTimerとは?

 

f:id:kikuchi1201:20191219072019p:plain

 

 

scrapbox.io

(※具体的な実装方針やUIとかの話は上記にまとめています。)

 

タイトルに書いてあるように、自分が業務で取り組んでいるタスクをDoneするまでの時間を計測するためのWebアプリケーションです。

 

主にできる事としては

・Todoリストのようにタスクを入力する事ができる

・追加したタイミングで「タスクを開始」を押すと現在時刻を記録する

・タスクをDone(完了)すると、Doneするまでにかかった時間を割り出して記録します。

・仕事のカテゴリー分けができるので、1日にどのカテゴリーの業務を多く行っているのかがすぐにわかります。

 

ソースコードも公開しているので、中身の実装を見て貰えればわかりますが中の実装内容はほぼTodoリストで、そこに Cabonを使って経過時間を出している内容となってます。

 

github.com

 

裏側はLaravelを使って実装しました。

こちらは残念ながらまだリリースできてなく、できれば近日中にマネージドクラウドで公開しようと考えています..!

 

なぜ作ったのか?

これを作ろうと思ったきっかけは、「タスクを取り組む際に自分の弱点はどこか?」を可視化したくて作りました。

 

例えばある機能を当初、5日でリリースしようと考えていました。

しかし、後から発覚した仕様の変更や色んな要因があって最終的にかかった工数は8日でした。

 

上司から「なぜ遅れてしまったのか?」という問いに対して、すぐに明確な返答できればこのアプリケーションは必要ないです。

しかし、10月に、いや下半期の自分はこの問いに対して正確に答えられませんでした。理由は簡単で「計測をしてなかった」からです。

 

常にタスクが並行で動いている状況と、締め切りが過ぎてしまっている状況では計測よりもまずは、Doneさせようと思って振り返ろうと思っても、出来てませんでした。

 

ここらへんの話はこちらのブログでも紹介しています。

 

www.fendo181.me

 

計測できていたら、仕様の把握に時間をかけてしまっているのか、それとも実装の部分で時間がかかっていたのか、或いは割り込みタスクが発生して...

 

などなど、いろんな要因がある中で遅らせてしまった原因を見つけて改善できるのですが、それが自分には出来てなく一番の弱い部分だと思ったのでこの状況をなんとしても改善したくDoneTimerを作成しました。

 

ただ、DoneTimerの前にも別の方法で自分のタスクを計測する方法は取り組んでいました。

 

具体的には、ポモドーロ・テクニックを導入してみて、25分で1つタスクを行う前提で計測しはじめましたが、この方法は時間よりも、25分1タスクでどれだけ回数をこなせたか?という運用になってしまったので、ちゃんと数字として計測したく今回DoneTimerを作ってみた背景があります。

 

まずは計測する所から始める

以前、「エンジニアの知的生産術」を読んでいた際にタスクを1つに絞る話の中で印象に残る説明文がありました。

 

私の観察では、成果をあげる者は仕事からスタートしない。計画からもスタートしない。時間がなににとられているかを明らかにする事が大切である。次の時間を管理すべく、時間対する非生産的な要求を退ける
そして最後に、そうした得られた自由になる時間を大きくまとめる。
従って、時間を記録する、整理する、まとめるの三段階に渡るプロセスが成果をあげる為の時間管理である

 

エンジニアの知的生産術 - Fendo181

 

タスクのDoneを早くする為には、どこで時間がかかってしまっているのか?を、計測するのが最初のステップであると思っているので、今後、DoneTimerを使ってまずは一番時間がかかってしまっている部分と、必要ない部分は積極的に削ってタスクをうまく回せるようになりたいと考えています!

 

おわり!