作業時間を見える化して、見積もりの確度をあげる(かもしれない)アプリをつくった
TL;DR
作業時間をトラッキングするWebアプリを作ったので、よかったらさわってみてください。(すみません、PCのChromeでみてください)
https://tasktrack.web.app/
こんにちは。Webエンジニアしてるものです。
突然ですが、わたしは楽しく仕事をしたいです。
そして、楽しく仕事をするためには、計画通りに仕事を進めることが大事だと思います。
仕事が予定より遅れている時などは心理的なストレスがあるので、仕事がしんどくなりますが、逆に予定通り仕事が進んでいる時は、プライベートの時間も確保しやすいの、仕事というか人生が楽しくなると思います(きっと。たぶん。個人的な見解)
そしてそれを表した絵がこちらになります。
ということで、自分の力量に合った現実的な計画をたて、その計画通りに仕事を進める力を身に付けたいなと思うわけです。
そこでどうしたらいいのかを考えてみたのですが、まずはどういう作業にどのぐらいかかっているのかを正確に知ることが必要なのかなと思いました。
このへんはわりと感覚でやってることが多い気がしていたので、まずはこの部分を見える化し、具体的な数値で振り返ることで、より計画の確度が高くなるんじゃないかと思ったわけです。
また、作業時間の見える化だけではなく、なぜこれだけ時間がかかったのか、その作業の時間がかかる要因はどこにあるのかを記録しておけば、さらに計画の確度を高くできるんじゃないかと思いました。
他にも、作業時間を見える化しておけば振り返りの時に有効活用でき、仕事の進め方の改善にもつなげられるんじゃないかなとも思います。
そして、作業時間見える化をする前の世界と見える化した後の世界は下記のようになります(たぶん)。
この見える化した後の世界にわたしは行きたい。人生を楽しく過ごしたい。仕事ばっかりに追われたくない。
ということで、作業時間をトラッキングできるWebアプリをつくりました。(すみませんPCのChromeでみてください)
csvのimport機能があるので、サンプルデータで試してみたい方はこちらからダウンロードして使ってみてください。
sample.csv
不具合等ありましたら、こちらまでご連絡ください。
https://github.com/shuufei/task-track/issues
ちなみに、すでに作業時間のトラッキングアプリはいろいろあるんですが、自分が理想としている使い方ができなかったので今回自分で作った次第です。細かい理由は後述しています。
Webアプリの説明
簡単に機能について紹介したいと思います。
機能は大きく分けて、次の2つです。
1. タスクトラッキング機能
2. レポート機能
タスクトラッキング機能
1 : 簡易的なタスク管理。TODOリスト的なのりで、タスクの完了・未完了を管理できます。
2 : タスクのトラッキング。タスクの作業時間を記録することができます。
3 : タスクに対するコメント追加。コメントを残すことで、そのタスクの補足や、どういうことに時間がかかったのかを記録しておくことができます。
4 : サブタスク機能。一つのタスクを細分化できるため、より具体的に作業時間を把握することができます。
5 : セクション機能。タスクを一つのセクションとしてまとめることができます。プロジェクトごとにセクションを分けたり、期間ごとにセクションを分けることで、タスクが乱立してわけがわからなくならないようにします。
6 : CSVファイルとしてArchive。現在はサーバ等でデータを保存していないので、記録を永続的に残しておきた場合は、CSVとしてPCに保存しておくことができます。(リロードとかでデータが消えるということではないです)
7 : セクションのImport。6でArchiveしたCSVファイルを取り込むことができます。
レポート機能
1 : タスクごとに作業時間の確認ができます。
2 : サブタスクごとにも作業時間の確認ができます。
3 : タスクに追加したコメントの確認ができます。
こんな感じで、タスクのトラッキングとレポートの確認が行えるWebアプリです。
もし良かったら1度さわってみてください!
より計画の確度を高めるための工夫
次にこのアプリを作るときに考えたことを書いておきます。
より計画の確度を高めるには、細かい粒度で作業のトラッキングを行う必要があるかと思いす。
ただ、細かい粒度でのトラッキングとなると結構面倒くさくなるので、途中でやめてしまいがちです。
そこで、どうしたら面倒くさがらずに細かい粒度でトラッキングできるかを考えて、アプリに落とし込んでいきました。
ポイントになるのは次の3点です。(この3点が既存のトラッキングアプリでは満足できなかったので、今回作った次第です)
1. タスク管理機能も兼ねる
2. 連続したタスクの追加が行いやすいようにする
3. サブタスク機能
1. タスク管理機能も兼ねる
普段のタスク管理を行う流れでトラッキングできれば、トラッキングに関する手間がなくなるだろうという考えで、簡易的なタスク管理をできるようにしました。
タスクAが終わった
→ タスクAを完了にする(トラッキングが終了される)
→ 次のタスクBを確認し着手(次のタスクBのトラッキングが開始される)
というふうに、普段のタスク管理する流れでトラッキングができるといった具合です。
そしてそれを表した絵がこちらです。
ただ、既にJIRAやAsanaといったプロジェクト管理ツールでタスクの管理はやっていると思うので、どうしても二重管理になってしまいます。
これに関しては、このアプリケーションをどんどんでっかくしていって、Jiraを超えるプロジェクト管理ツールにするぜとは言えないので、私が行ってるやり方を書いておきます。
Jira等:少し大き目の粒度でタスク管理して、プロジェクトの状況を把握できるようにしておく。
トラッキングアプリ:Jira等に追加したタスクをまず洗い出して、それぞれを細分化していく。
って感じで私はやってます。そんなに苦ではない(と信じている)。
2. 連続したタスクの追加が行いやすいようにする
これは、タスク管理にも関連しているのですが、計画を立てる時にまずタスクを洗い出すことをやると思います。
その際に、連続してタスクを追加しやすいというのは重要だと思います。
一つのタスクを追加するたびに、追加ボタンを押して、タイトルを入力して、作成ボタンを押して、といった操作は、たくさんのタスクを追加する時には煩わしくてかないません。
そしてそれを表した絵がこちらです。
ということで、Enterを押したら次のタスクを作成し、そこにfocusを当てるようにしました。これで、連続して追加するときにマウスやトラックパッドに手を伸ばす必要はありません!
3. サブタスク機能
細かい粒度でトラッキングしたいとなった時に、一つのタスクを細分化したくなるというのは絶対出てくると思います。
なので、このサブタスク機能を実装しました。
このサブタスク機能があることで、後々見返した時に、そのタスクで何やっていたのかが具体的に思い返せるかと思います。
また、作業の計画を立てる上でもタスクの細分化は重要になってくると思います。
そしてそれを表した絵がこちらです。
データの永続化について
サーバでデータを持つことは一切していないので、利用端末、利用ブラウザ、利用ユーザが変わったらまっさらな状態になります。
CSVのExportとImportはできるようにしたので、それでとりあえずは勘弁という感じです。
今後
ここまでいろいろ書きましたが、まだこのツールを使って当初の目的を達成できるかというのをちゃんと検証していないので、まずは検証してみたいなと思っています。
そこで効果が発揮できたら、徐々に大きくしていきたいなと思います。
最終的な理想形態は、プロジェクト管理ツールとして使えるところまでになるところですが、あくまで理想ですね。
ということで、もしよかったら1度さわってみてください!
おまけ
今回このWebアプリを作るにあたって、Reactでつくってみました。そのときのナレッジをQiitaに書いたのでもし興味があればこちらも読んでもらえると嬉しいです。
https://qiita.com/shuuhei/items/64bc53312603b32e4a3b
あと、他にもちょこちょこなにか作ったりしてるので、その記事も読んでもらえると嬉しいです。