工数管理しないエンジニアリングなんて
エンジニアに限った話ではありませんが、工数管理しない仕事は仕入れ値や製造コストを考えずに商品を売っているようなものです。
見積の精度がどうだったか、案件終了後に答え合わせをしようと思っても、「どうだろう?」「なんとなく..利益でた案件かも?それとも採算あってなかったかしら?」となります。
これではいけませんね。
仕事のための仕事になりすぎる
一方で、“正しく”工数を記録するのは、労力が莫大にかかります。
- 日報や週報で運用
- 時間を記録するのが大変、そしてどうやって案件ごとに集計するのか(まさかマネージャーが!?)
- Redmine、Backlogなどのプロジェクト管理ツールで工数の記録
- 記録漏れが起きやすい
- 時間管理対象はすべて課題(Issue、Ticket)に起票する必要あり、細かな粒度のものが無視されがちになる
- 実稼働時間とのギャップがあった場合に調整や編集が大変
- ストップウォッチ型の時間管理ツール
- 業務中に気が紛れる、集中できなくなる
- そしてやっぱりタイマー回すのは忘れる
とにかく、実際にはやってられない!!
よい方法を考えましょう
- なるべく既に社内で浸透しているツールや仕組みを流用したい
- 運用負荷は少なく
- 汎用的で二次利用が可能なものに
考えました
普段料理をしていなくても、キャンプでカレーくらいは作れるように、工数管理がやってられない人たちにもGoogleカレンダーに実働の案件名いれるくらいは出来るんじゃなかろうか。と考えました。
これだと、あらかじめ予定を立てて、実際の稼働状況が変わってもドラッグで時間を伸ばしたり縮めたりが楽です。
ここまで入力してもらえれば、あとは機械的に集計できるはずですね。
集計結果イメージ
こうするとメンバー各々の生産性や案件や顧客ごとの採算が確認できるようになりますね。
実装方法
Google App ScriptからGoogle Calendarにアクセス可能ですので、工数管理用に作成したカレンダーの情報を解析して、Google Spreadsheetへ集計するようにしました。
プログラム修正の必要頻度を下げるため、Spreadsheetでは下記のマスタ管理も行っています。
- 解析対象の工数カレンダーとその所有者の名前
- プロジェクト名の表記揺れを名寄せするための定義
詳細は末尾の関連記事「工数管理のシステムをGoogleのサービスだけでコスパ良く開発してみた」をご参照ください。
まとめ
お仕事には、やるべきだとわかっているものの実際にはやってられない事というものがあるでしょう。その時にシステム構築や自動化、負担の少ないワークフローの整備などが効果を発揮します。
なるべく苦労しない仕組みづくりが私達の存在意義であり、やりがいだと考えています。
関連記事
この記事は下記の記事をリライトしたものです。
add moreでのエンジニアリソース管理方法
この頃はGoogle App Scriptを使用せずNode.jsからAPI経由でデータ取得し、CSV出力していました。
ここで登場するおサルはLINEスタンプにもなっていますのでよろしければどうぞ。
工数管理のシステムをGoogleのサービスだけでコスパ良く開発してみた
Google App Scriptを使用して、Googleのサービスの中で完結させた簡易版を実装したときの話です。現状の運用はこちらをベースとしています。