工数管理というものを理解する

エンジニアのみなさま、日々の学習本当にお疲れ様です！
また本記事まで足を運んでいただき本当に感謝です。
約3分程度で読めるので最後まで読んでもらえると幸いです。

# はじめに

工数管理はプロジェクトの成功に欠かせない要素です。工数を正確に見積もり、管理することで、プロジェクトの遅延を防ぎ、クライアントやプロジェクトメンバーの信頼を得ることができます。

本記事では、工数見積もりの重要性とその手法、そして失敗しないためのポイントについて書きたいと思います。

「もっとこうした方が良いよ！」 や 「うちの会社ではこの様な考えで取り組んでます！」 があればぜひコメント欄で教えていただけますと幸いです。

# 工数とは？

プロジェクトや業務を完了するために必要な作業時間のことを指します。

**「人日」** や **「人月」** と呼ばれており、1人日は8時間、1人月は160時間（1日8時間、平日20日稼働）で表現するケースが多いです。
プロジェクトでは上記の単位を使って、プロジェクト管理を行なっていきます。

# なぜ工数を見積もるのか？

### 1. クライアントからの信頼を得るため

正確な工数見積もりは、プロジェクトの進捗状況をクライアントに適切に伝えるために不可欠です。予想通りのスケジュールで進行することで、クライアントからの信頼を得ることができます。

### 2. 労働環境を整えるため

工数見積もりは、プロジェクトメンバーの労働環境を整えるためにも重要です。適切な工数見積もりに基づいたスケジュールを立てることで、無理のない作業計画を作成し、過度な残業やストレスを避けることができます。

# 工数見積の手法

工数見積もりにはいくつかの手法があります。
以下に代表的な手法を紹介します。

| 見積手法               | 説明                                                                                 | メリット                                                          | デメリット                                                      | 考え方                                      |
|------------------------|--------------------------------------------------------------------------------------|------------------------------------------------------------------|----------------------------------------------------------------|---------------------------------------------|
| 類推法                 | 過去の類似プロジェクトのデータを基に見積もる手法                                    | 過去の実績がある場合、迅速かつ比較的正確な見積もりが可能          | 過去のプロジェクトが異なる場合、精度が低下することがある        | 過去のプロジェクトの実績を参考にする        |
| 係数法（パラメトリック法）| 特定のパラメータを基に工数を算出する手法                                           | 客観的な数値データを基にするため、再現性のある見積もりが可能      | パラメータの精度に依存するため、不正確なパラメータでは精度が低下  | FP法・COCOMO/COCOMO II                       |
| ボトムアップ法         | プロジェクトを細かいタスクに分解し、それぞれのタスクの工数を積み上げる手法            | タスクレベルで詳細な見積もりが可能                                | タスク分解に時間がかかり、大規模プロジェクトでは管理が煩雑になる | WBS            |
| 3点見積もり法          | 最適（楽観値）、最も可能性の高い値（最頻値）、最悪（悲観値）の3つの見積もりを行い、それらを加重平均して工数を算出する手法 | リスクを考慮した見積もりが可能                                    | 見積もりに時間がかかることがある                                  | (楽観値 ＋ 最頻値 × 4 + 悲観値) ÷ 6          |

# 工数見積を失敗しないための5つのポイント

### 1. タスクを細分化する

このポイントについては以下の記事を投稿したので、合わせて読んでみてもらえると嬉しいです。

https://qiita.com/hirokazu_nakao/items/3342575e1cf33a128be8

### 2. クリティカルパスを設定する

プロジェクトの重要なタスク（クリティカルパス）を明確にし、それらのタスクの進捗を重点的に管理します。

### 3. バッファを適切に設定する

予期せぬ事態に備えて、バッファを設定します。
**PERT法**や**不確実性コーン**といった設定方法があるみたいなので追って学習します。

個人的にはプロジェクトによって固有でバッファを検討するものがあると考えてます。

過去対応したプロジェクトAでは、機能ごとに以下の検討項目がありました。

- ログインユーザーは「管理者」 or 「作業者」
- ログインユーザーにより機能を表示する or 非表示にする
- 機能は管理画面 or ユーザー画面の両方で必要かどうか
etc

今対応しているプロジェクトBでは多数のチームと連携が必要なため

- 実装する機能は「他チームとの連携」が必要かどうか
- 連携が必要な場合、依頼内容の回答をいつまでに設定するのか
etc

があります。
プロジェクトごとに **「何をバッファ項目として設定するか？」** をいち早く掴み、検討することが肝要かと考えます。

### 4. レビューを行い認識をすり合わせる

これ、めちゃくちゃ大事です。
開発者とレビューの時間を割かずに話を進めてしまうと完全に詰みます。
メンバーのスキルや経験に基づいて、現実的な工数を算出します。

### 5. ツールを活用する

個人的には有料ツールを活用したいのですが、過去経験したプロジェクトでは活用している所は無かったです...
ほとんどのプロジェクトでは「Excel」や「スプレッドシート」が使われています。
定期的にメンテナンスできる人であれば上記ツールでも問題ないですが、プロジェクトが進むにあたって時間が取れずに更新されないことが結構あります。管理者と開発者で更新時の認識齟齬も多く、完璧に使いこなしているプロジェクトはあまりない印象です。

# さいごに
今回の学習で良かったことは、見積手法にいくつかパターンがあることを知れたことです。プロジェクトによって使えるものが異なると思うので、臨機応変に使いこなせるように理解を深めていきたいと思います！

# 参考記事
https://timecrowd.net/blog/how-to-estimate-man-hour/

https://liskul.com/effort-estimate-108680

https://lychee-redmine.jp/blogs/project/tips-effort-estimate/

https://www.crowdlog.jp/blog/110824/

https://studio-tale.co.jp/career-stories/guide/how-to-estimate-work-hours/

# おまけ
弊社のご紹介になります。

▼ コーポレートサイト

https://prum.jp/

▼ Wantedly求人

https://www.wantedly.com/projects/626662

株式会社PRUMのエンジニアの **95%以上** は、未経験からの採用です。
弊社メンバーは学習した内容を、日々Qiitaの記事にアウトプットしております。
弊社にご興味のある方、まずは求人を見てみてください！
ご応募お待ちしておりますー！