はじめに
1人月規模のタスクは、遅延すると他メンバーの作業にも影響するため、堅実な見積もりと進行管理が求められます。つまり、これができる(または、できるよう適切に対処する)ことは、チーム貢献や「安心して1人月タスクを任せられる」エンジニアに繋がるといえます。
この記事では、わたしが実践しているタスク管理の方法を、具体例とともにまとめます。自分の振り返り用でもありますが、同じ課題を持つ方の参考になれば幸いです。
1. 仕様確認:曖昧さを残さない質問リストを作る
なぜ必要か
要件が曖昧なまま開発を始めると、手戻りが発生し、工数が膨らみます。最初の仕様確認で「後で困る箇所」を潰しておくことが、結果的に最速です。
具体例:ECサイトの「お気に入り機能追加」
クライアントから「商品をお気に入り登録できるようにしたい」という要望があった際、以下を確認しました。
- **上限は?**→ 1ユーザーあたり100件まで
- **重複登録は?**→ エラー表示(「すでに登録済みです」)
- **未ログイン時は?**→ ログイン画面へ遷移
- **削除機能は?**→ 一覧画面から個別削除可能
- **既存のカート機能との関係は?**→ お気に入りから直接カートへ追加可能
これを最初に確認したことで、「あとから仕様変更」を防ぎ、予定通り5日で完了できました。
2. 開発の段取り:WBSを書いて抜け漏れを防ぐ
なぜ必要か
「なんとなく進める」と、テストやドキュメント作成を忘れたり、予想外の作業が発生したりします。最初に作業を分解しておくことで、見積もり精度が上がります。
具体例:上記のお気に入り機能のWBS
以下のように作業を分解しました。
作業項目 | 想定工数 |
---|---|
DB設計(テーブル設計・マイグレーション作成) | 0.5日 |
API実装(登録・削除・一覧取得) | 1.5日 |
フロントエンド実装(ボタン・一覧画面) | 1日 |
既存機能との結合(カート連携) | 0.5日 |
テストケース作成・実施 | 1日 |
コードレビュー対応 | 0.5日 |
合計 | 5日 |
実際は、API実装で予想外のバリデーション処理が必要になり+0.5日かかりましたが、最初にバッファを設けていたため、全体では遅延なく完了しました。
3. 品質担保:デグレを防ぐテストケースを先に書く
なぜ必要か
新機能を追加した際、既存機能が壊れる(デグレ)ことがあります。特にフリーランスは「品質の責任」を強く求められるため、テストは後回しにできません。
具体例:お気に入り機能でのテストケース
以下のような観点でテストケースを作成しました。
新機能のテスト
- ✅ お気に入り登録ボタンを押すと、登録される
- ✅ 100件登録後、101件目の登録はエラーになる
- ✅ 未ログイン時は、ログイン画面へリダイレクトされる
- ✅ 重複登録時は「すでに登録済みです」と表示される
既存機能のテスト(デグレ確認)
- ✅ お気に入り機能を追加しても、商品一覧が正常に表示される
- ✅ カート追加機能が正常に動作する
- ✅ 商品詳細ページの表示速度が落ちていない
特に「既存機能のテスト」を事前に用意しておくことで、リリース前に安心してレビュー依頼ができました。
4. 見積もり:過去実績をもとに「係数」で調整する
なぜ必要か
「だいたいこれくらい」という感覚だけで見積もると、大抵遅延します。過去の実績から「自分の開発速度」を把握し、それをもとに見積もる方が精度が高まります。
具体例:過去案件からの係数算出
過去3案件で、以下のような実績がありました。
案件 | 見積もり | 実績 | 乖離率 |
---|---|---|---|
検索機能追加 | 3日 | 4日 | 1.33倍 |
CSV出力機能 | 2日 | 2.5日 | 1.25倍 |
通知機能 | 4日 | 5日 | 1.25倍 |
平均して「見積もり×1.3倍」かかることが分かったので、今回のお気に入り機能では、4日の見積もりに対して「5日」で提示しました。結果、余裕を持って完了できました。
5. 進捗報告:毎日の振り返りで「ズレ」を早期発見
なぜ必要か
タスクが遅れていることに気づくのが遅れると、リカバリが難しくなります。毎日の振り返りで「予定と実績のズレ」を可視化し、早めに軌道修正します。
具体例:日次の進捗管理シート
Notionで以下のようなシートを作り、毎日更新していました。
日付 | 予定作業 | 実績 | 所感 |
---|---|---|---|
1日目 | DB設計 | 完了 | マイグレーション作成に少し手間取った |
2日目 | API実装(登録・削除) | 80%完了 | バリデーション処理が想定外に複雑 |
3日目 | API実装完了・フロント着手 | 完了 | 予定通り |
4日目 | フロント完了・結合テスト | 完了 | カート連携で軽微な修正が必要 |
5日目 | テスト・レビュー対応 | 完了 | 問題なし |
2日目の時点で「少し遅れそう」と気づき、3日目に巻き返しました。この可視化がなければ、気づくのが遅れていたと思います。
まとめ
1人月規模のタスクを遅延なく完了するために、わたしが実践しているのは以下の5つです。
- 仕様確認:曖昧さを残さない質問リストを作る
- 段取り:WBSで作業を分解し、見積もり精度を上げる
- 品質担保:デグレ防止のテストケースを先に書く
- 見積もり:過去実績から係数を算出し、現実的な工数を提示する
- 進捗管理:毎日振り返り、ズレを早期発見する
これらは案件を重ねる中で身につけた習慣ですが、まだ改善の余地があると感じています。今後も精度を上げていきたいです。
この記事が、同じような状況の人の一助になれば幸いです。