はじめに
こんにちは。@akr-takaです。
コロナ禍で緊急事態宣言が発生してからは在宅でPMをやってみて半年がたち、
リモートならでは苦労などもありましたので2020年を振り返り、工数見積もりに注目して書いてみました。
対象読者
- 最近プロジェクト管理を始め出した人
- 最近工数見積もりを出してといわれだした人
- WBS見てたら工数を出されているけどなんでこんな数字になっているか興味がある人
簡単な自己紹介
Web系をメインにJavaやPHPや色々な言語でシステム開発をバック・フロント共に携わっていました。
この数年はアプリ開発を行ったり、アジャイルでの開発をやっていたりしていましたが、
紆余曲折あって今となってはPMでもSEでもPGでも時と場合に合わせて与えられたポジションで
求められる動きをする様になっていました。
子供も7歳と2歳の子供が2人います。
結論
今までと同じやり方でやっていたらうまくいくわけがない!!!
これで終わるとこの記事の意味がないのでちゃんと理由を説明します。
その前に
緊急事態宣言が出る前も半分出社、半分リモートでコード書いたりと
リモートワークには経験があったのですが、やはり子供がいると話しかけられたり
おむつ交換をしないといけない、
日中家にいるということで宅配便がくる、色々な勧誘や営業がくるなど出社している時の様に
自分ではどうしようもない中断があって
集中していい感じにのっているスパートタイムが途切れることもあります。
そういう仕事を会社ではなく家ですることによる弊害という事は事前に経験していました。
見積もり時の考え方で変わったところ
大前提としてこちらで提示したスケジュールは守らないといけません。
決めたスケジュールを守れなくなるイレギュラー要素を除外する方がいいのは当然です。
(例:突然入るできれば参加してほしいレベルのMTGや役割以外の作業はなくすなど)
けど、家で仕事しているんだから子供とか介護とか自分ではどうしようもできないイレギュラーは
どうしろっていうんだと思う人もいると思います。
それなら自分たちでは制御できないイレギュラーは発生すると受け入れて工数を見積もったら
精神的にも余裕が生まれて働きやすくなるんじゃないかとなりました。
作業時間の確保がバラバラなのを認める
今までの考え方・やり方
- 1日の作業時間を定時(8時間)で考えない
- 定例の朝会やメールチェック・チャット対応などで1時間は時間を取られるので実質8時間勤務なら7時間しか作業できない
- レビューを担当している人はレビュー時間も考えて1日の作業時間を考えてあげる
- 役職者など業務外の工数が必要な人はちゃんと抜いて考える
- 定例のMTGや勉強会も参加するならその時間は考える
新たな考え方・やり方
- 1日の作業時間は人によって様々。相手の状況を考えて考慮する
- 子供・介護などで数分間の中断が発生するなど作業効率が落ちてしまう。
- だからと言って残業をしてちゃんと1日で終わらせて欲しいかというとそうではない。
(定時内で仕事を終わらせる量にすべき派) - とはいえ毎日3時間しか作業できないというのは論点が違うのでそこは話し合う必要があります。
- だからと言って残業をしてちゃんと1日で終わらせて欲しいかというとそうではない。
- 子供・介護などで数分間の中断が発生するなど作業効率が落ちてしまう。
- よくある事例
- PM「相談なんだけどこれなら簡単な実装だから1日で終わるよね。」
- Aさん「これなら1日でできますね。」
- Bさん「(今日は子供を預けれないから集中してできないかも・・・)多分できると思います。」
- Bさん「普段だったらできるけど今日は子供がよく泣く日で作業が細切れになってちゃんとできなかった。1日で終わるといった手前夜中でも作業しないと・・・」
- こういう人が出てこない様にその人の状況を考えて作業を見積もってあげると助かる
- 他の人がフォローしあえるためにも次の項目にもある通り、タスクは細かく考えておくと作業割り振りを柔軟にできます
- PM「相談なんだけどこれなら簡単な実装だから1日で終わるよね。」
タスクは細かく分割する
完成ができるか心配だからと大きく工数を見積もってしまうといざ遅れが発生した時に
原因が特定できず進捗遅れに繋がる事があります。
複数人で作業をしていることも多いかと思いますが、先行タスク・後続タスク・並行タスクに
分けて考えていたらアサインする時に先行タスクはベテラン、後続タスクに若手といった風に
作業を組み立てることができ、バッファも細かいタスク事に見積もるので
遅れが発生してもフォローがしやすいというメリットもあります。
また、チェックポイントが細かく設定することになりますので
遅れを許せる段階なのか、他の人にフォローしてもらう必要がある段階なのかを
考えるという意味でもタスクを細かく分割して見積もる方がいい事があります。
何よりも工数の根拠をお客様やエンジニアの方にするときにも説得力や安心を
与えられるという意味でも利点となります。
デメリットは細かく分割する時に知識や経験がないと無駄に分割してしまって逆に管理が
難しくなる、タスク間の依存関係が大きくなって複数人で作業がしにくくなるなどが
ありますが、そのさじ加減がプロジェクト毎にバラバラなので難しいという点です。
おまけ:タスク管理ツール
タスクは細かく分割するといってもWBSを細かく分割してしまうと営業の人やお客様に見せた時に
ちょっとした進捗の遅れで突っ込まれることがありえるのでエンジニア以外用と
エンジニア用で分けてタスク管理ツールを分けた事がよかったです。
- スプレッドシート
- 主にエンジニア以外向け
- WBSとしてスケジュール毎のエンドと全体把握用
- Trello
- 主にエンジニア向け
- WBSのタスクを機能分割してカードを登録
- 不具合が発生した時やTODO事項・リファクタ関連はカードを追加
- EllegantというChrome拡張機能でWBS風に見れるので後続タスクの繋がり管理
最後に
今年は急にリモートワークに切り替わり今までと同じ感覚で仕事をしたくてもできなくなった人も
いたと思います。
ただ、リモートワークになることで働き方が変わることを悪い方向にするのではなく、
プロジェクトメンバーも働きやすくするために進捗を守れるように工数を見積もるところから
しっかりとしていきたいと思います。