ソフトウェア開発の見積もり【効率的かつ正確に見積もるためのポイント】
イントロダクション
見積もりは、開発プロジェクトの実現性や優先度を判断するために不可欠な存在であると思うことがあります。見積もりがあることで、そのコストを把握し実現性や優先度の判断を開発チームや関係者との間で行うことができるからです。プロジェクト進行の調整や予算超過を防ぐ判断が行えることは、プロジェクトを成功させる為にはあったほうが良いことは想像に難くありません。
この投稿では、私が効率的かつ正確に見積もるために重要だと思ったポイントをいくつか共有します。見積もりのチェックや振り返りに役立てていただければ幸いです!
1. 求められている見積の精度を確認する
見積もりの精度を事前に確認することで、不要なコストを削減できることがあります。状況によっては、非常に高い精度での見積もりが求められることもあれば、大まかな見積もりで十分な場合もあるからです。例えば重要な判断やシステムの変更、リリースのタイミングに関わる見積もりでは、より正確な見積もりが要求されたりしますが。それほど重要でもなければ、重要なものが片付いた後に取り組むことになるので大雑把なもので問題ないことがあります。もちろんこの違いはやるべき事の質や量が変わるので、作業にかかるコストも変わります。また適切な精度で見積もりを提出することで、後からの修正や再見積もりの手間を省くことができます。
2. 伝達には適切な単位(時・日・週・月)を使用する
見積もりを伝える際には、相手や状況に応じて適切な単位を使用することを意識しています。例えば現場で直接作業を行う人には時間や日数で伝えます。なぜなら作業者の視点では大抵の場合、時間や日数を基にスケジュールをたて仕事をしているからです。週や月で伝えられてもピンとこないことや、祝日や月が絡めば数日のずれが発生することがあります。反対に週や月を単位とする場合は、見積もりの値が大きかったり抽象的に伝えて起きたい場合などです。 例えば見積もりで算出された工数が240時間ほどであった場合、これを240時間と伝えるより約3ヶ月と伝える方をとります。大きすぎる工数は大なり小なり変動も大きい可能性があるし、何より240時間と言われてもあまりピンとこないからです。このように単位を選んだり意識することで、相手にとって必要で正確な印象を与え、誤解を防ぐことができます。
3. 内容をしっかり理解する
前提として見積もりを行う前には、行うべきことや問題の内容をしっかり理解し曖昧な状態で見積りを行わないように気を付けます。また抽象的な依頼にも気をつけて対処します。そもそも依頼してきた相手が内容を理解しておらず、下調べができていないことがあるからです。その場合はオウム返しのように相手にさらに情報を求めることも時には必要です。 つまるところ内容をしっかり理解していないと、見積もりを行うべき領域の考慮が漏れてしまうことがあり、算出結果に大きな影響を与えることがあります。そして考慮が漏れ見積もりに必要な要素が抜け落ちると、結果的にプロジェクトに遅れやコスト超過をもたらす事態につながる可能性があります。適切な情報収集と分析を行い、見積もるべき範囲を正確に捉えることが重要です。そのためにまず内容はしっかり理解します。
4. 過去に似たような見積もりがないか確認する
過去同じような見積もりを行っている場合、その見積もりを確認することで精度が向上することがあります。見積もりの考慮もれを発見したり、既に完了した作業の実績データを基にして、よりリアルな作業内容や時間を想定できるからです。特に実際に作業してみないと気づかないような細かな問題は、見積もりの調査段階では気づかないことがあります。このような問題も見積もり段階でしっかり検知しておくことで、それを見積もりで考慮し正確な工数を算出することができます。またこれらの過去の情報は、見積もりを提出しその相手を納得させる材料としても使えることがあります。
5. オンラインの表計算アプリを活用する
Googleスプレッドシートなどの表計算アプリを活用し、見積もりの作成を効率化します。関数やマクロの機能を用いることで、作業効率をあげ計算ミスを減らすことができます。また、フィードバックや考慮もれなどにより見積もりの修正があった場合、見積もりを適宜調整しやすくなります。特にフィードバックを行った相手とその表を共有できるのであれば、調整やディスカッションがやりやすくなったりします。
以上、5つのポイントでした!
ぜひコメントやフィードバックをお寄せください。
Discussion