複数の案件を並行して進める中で、
「どの案件にどれくらいの時間を使っているのかを正確に把握したい」
「でもいざツールを導入してみると、入力の手間がかかって運用していくのは非現実的。。。」
そんな経験はありませんか?
add moreでもこれまで同様の問題を抱えており、いい方法はないかと模索してきました。
今回は工数管理の効率化に関わるadd moreでの取り組みについてお話ししたいと思います。
複数の案件をこなす際の課題
add moreでは複数の案件を並行して進める中で大きく二つの課題がありました。
一つ目はチーム全体で抱えている案件やそれに紐づくタスクに対しての予定工数と実工数の差がわかりづらいということです。例えば、3時間程度で完了できると思っていたことが、10時間以上かかっていても後から検出するのが難しいという問題がありました。
そしてもう一つの課題は後から見積もりの答え合わせをするのが困難ということでした。
新しい取り組みや複雑な要件の場合、見積もりが難しく案件終了後に実際にかかった時間と見積もりを照らし合わせたい事がよくあります。しかし案件にかかった時間が分かりづらく、答え合わせをしにくい状況でした。
これらの課題をクリアにするために、工数を正確に把握するための仕組みが必要でした。
よくある解決策
工数を管理する方法として一般的に以下の方法などが考えられます。
add moreでもいくつか導入を検討してみたものもありました。
- 日報や週報の運用 。
負荷が高い割にうまく運用できているケースが少ない。
WordやExcel等は簡単にgrepもできないし再利用しにくいし編集も辛い。 - Redmine, Backlogなどのプロジェクト管理ツールで工数の記録。
何度かチャレンジしたが、記録漏れが発生しやすく後で辻褄合わせも難しい 。 - ストップウォッチ型の時間管理ツール。
業務中に気がまぎれそう、集中したい。
しかし実際に導入するとなると運用のハードルが高くなり、継続して続けるのが難しい印象でした。
作業の邪魔にならず、負荷なく記録できる便利なツールはないものでしょうか。。。
add moreでの解決策
add moreでは以下の要件を満たすような工数管理のツールを開発することにしました。
- なるべく既に導入済みで社内で浸透しているツールを使いたい。
- 運用負荷を少なくしたい。
- 汎用的で二次利用が容易なサービスやデータにしたい。
技術選定
社内でGoogle Workspaceを導入しており日頃からGoogleカレンダーを使っていることから、工数管理の入力にはGoogleカレンダー採用する事にしました。Googleカレンダーは常にブラウザで開いているので入力はそれほど苦じゃないというのも理由として大きかったです。
また、バックエンドの処理にはGoogle App Script、記録、集計はGoogleスプレッドシートで行うことにしました。
運用ルール
入力内容が正しく反映されるよう、Googleカレンダーに作業を記録する際は、以下のように記入するよう運用のルールを定めました。
- カレンダーのタイトルは「group1:group2:note」のようにコロン区切りの定義を想定。
- 「note」の部分は集計結果には出力しない。
- 「group1」と「note」を指定したい場合は、「gorup::note」の記法も可能。
- 集計結果で「group2」が空の行は「group1」が一致するもの全ての合計時間となる。
Googleカレンダーで左の表のように記載したものが、右の表のように集計されるイメージです。
(集計する時に階層構造を持ちたいのでこのようにルールを定めました。)
実際の運用
普段の業務の中で利用する際は、以下のような流れを想定しました。
①1週間の予定をざっくり作成する。
金曜日に翌週の予定をGoogleカレンダーにざっくりと作成します。
(この時点での粒度は荒くて良く、何を中心に業務を行うかわかるようにします。)
チームで来週のざっくりとした予定と稼働率を共有します。
(「〇〇開発プロジェクトと〇〇製品LP制作が中心で稼働110%予定」など。)
②当日の朝にタスクを細分化する。
毎朝、工数管理用カレンダーの当日の予定をより具体的に修正します。
・「〇〇の件でメールが来ているから、午後に1時間ぐらいかけて作業しよう。」
・「〇〇はまだスケジュールに余裕があるから、今日でなく明日に回そう。」
チーム内で作業予定と退社予定時間を共有します。
・「午前は〇〇開発プロジェクト、午後は〇〇製品LP制作で19時に退社予定」など。
③業務をしながらカレンダーを修正する。
業務をしながらカレンダーを修正することで退社時には工数管理カレンダーの当日の内容は予定から実 績に変わります。
予定を実績に変えている中で「朝に立てたスケジュール通り動けたなぁ」とか「思っていたよりこの作
業に時間がかかったなぁ」とかを振り返れます。
④集計結果を利用する。
プロジェクトごとの振り返りで実工数を共有します。
導入してみた結果
導入した結果、次のような効果がありました。
- 案件終了後に見積もった予定工数と実工数に乖離があった場合に具体的に何時間の差があったかわかるようになった。
- プロジェクトに紐づかない社内の会議などにかける時間も把握できるようになった。
- Googleカレンダーなので予定していたタスクを終えた時に思っていたより時間がかかった場合にドラッグで簡単に修正できる。
- 今日のタスクを明日へ、明日のタスクを今日へ移動させるのもドラッグで非常に簡単にできる。
- 視覚的に誰がどの仕事をどれくらいやっているのか把握しやすくなった。
一方、実装するときには気づかなかった課題も見つかりました。
- ルールは決めたものの、たまに入力ミスがあった場合に集計から漏れてしまう。
- 案件名が統一されていない場合、正しく集計されない。
上記の問題を解決するため以下のように改善しました。
- プロジェクト定義のシートでエイリアスを指定する事で、ここで定義されているものは正しい案件名に自動で変換されるように改善。
- 自動集計の対象のタイトルを色付けし、自動集計から漏れているカレンダーを発見しすいように改善。
最後に
今回は工数管理の効率化に関わるadd moreでの取り組みについてお話しました。
開発したシステムはGoogleのサービスだけで完結しているので、データの連携などはGoogleのAPIを使ってお手軽に実装できます。社内で利用するためのちょっとしたシステムが欲しいという場合に、Googleのサービスだけで解決できるのはコストパフォーマンスの良い解決策の一つではないかと考えています。
ある課題を解決したい時、いろいろな機能をたくさん盛り込んだシステムの開発をイメージしがちですが、本当にやりたい事だけに絞ると意外と既存のサービスの組み合わせで実現できたりするものですね。
add more ではフルスクラッチ開発だけではなく、業務支援や業務効率化のシステムも開発しております。
普段の業務の中で、「これって面倒なんだよね。。何かいい方法ない?」等、そういったご相談があれば是非お問合せください。add moreが皆様のお力になれれば幸いです。