見出し画像

ソフトウェア開発の見積もり②「見積もりとバッファ」

はじめに

見積もりについての2つめの記事になります。

今回は、見積もりにおける『バッファ』について主に記述しています。
もし、前回の記事を読んでいない方がいらっしゃいましたらぜひ前回の記事から読んでいただけると嬉しいです。

◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆

ソフトウェア開発の見積もりは誤差が発生する

ソフトウェア開発の見積もりの不確実性を表すための図として『不確実性のコーン』という図がよく使われます。

これは、見積もりの不確実性(精度)はプロジェクトの進行に依存し、初期段階での見積もり規模には、最小は1/4倍最大では4倍までの誤差があることを示しています。

つまり、開発の要件が固まっていない初期の段階では、どんなに頑張って見積もっても大きな誤差が発生している可能性があるということです。

ソフトウェア開発プロジェクトでこのような誤差と戦うための方法のひとつとして見積もりの『バッファ』について正しく理解しておく必要があります。

画像2

図1:  不確実性のコーン

引用:http://itpro.nikkeibp.co.jp/article/COLUMN/20131001/508039/

◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆

見積もりのバッファとは

バッファとは「ある見積もりに対する誤差を吸収するための予め確保する余裕の期間」を指します。

ある作業を「10日」で完了すると見積もった場合に、20%の余裕期間である「2日」を加え「12日」としてスケジュールを作成した場合、この2日間の余裕がバッファとなります。

◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆

バッファの必要性

バッファは開発プロジェクトを守るために設定される安全装置です。バッファを正しく設定することで予期せぬトラブルが発生してもスケジュールを安全に進行することが出来るようになります。

例えば、電車で通勤するときに「1分前に会社へ到着する」ように電車に乗った場合、もし電車に遅延が発生すると確実に遅刻してしまいます。
また、高速道路で「1メートルしか車間距離を空けない」場合、トラブルが発生しなければ問題ないですが、万が一前の車が急ブレーキを掛けたら確実に事故になってしまうでしょう。

このような事象と同じように、開発プロジェクトにも突発的なトラブルや想定外の見積もりの誤差が必ず発生します。それを吸収するためにバッファという安全装置が必要なのです。

◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆

バッファの妥当性

見積もりに対して妥当なバッファを設定することは難しい問題のひとつです。

ここでは、妥当なバッファの大きさを求めるための方法として『2乗和平方根法(SRSS法:Square Root Sum of Squares)』によるバッファのとり方を紹介します。

2乗和平方根法には、2つの精度の見積もりを使います。1つは平均的な進捗で完了する想定の見積もり(50%見積もり)、もう1つは、最悪な進捗で終わった場合の悲観的な見積もり(90%見積もり)です。

各作業に対して、2つの見積もりを取り、その差分を二乗していきます。すべての差分が出たらその差分の合計を求めて最後にその合計の平方根を求めます。
この合計値の平方根がそのプロジェクトのバッファとなります。

2乗和平方根法@2x

上記の例の場合は、210が各作業の差の二乗の合計なので、その平方根(14.491...)がバッファとなります。

単位が人日であれば、15人日程度のバッファを取るのが妥当ということです。これを平均的な見積もりの合計である20人日と加算し、35人日をこのプロジェクトの合計見積もりとして使用します。

このようなバッファの計算方法はいくつか存在しており、自分のプロジェクトに合った方法を選択することが重要です。

場合によっては、固定で30%のバッファを取るという方法でも良いかもしれません。

◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆

バッファにおいて重要な考え方

■ バッファは水増しではない

バッファは、作業の水増しではないことをプロジェクト責任者も含めて全員が認識しておく必要があります。バッファはプロジェクトを安全に進めるための安全装置であり、なくてはならないものです。決められたバッファをスケジュール短縮のために削減するような手段は取ってはいけません。

■ バッファの存在を隠してはいけない

バッファは、チーム全体が共通の認識として利用することで正しく機能します。見積もり時に自分だけが知っているバッファを見積もりに含めてはいけません。計算方法も明示的に共有しておく必要があります。

◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆

まとめ

読んでいただき、ありがとうございました。

見積もりをする上でバッファという考え方は必ず必要なものです。バッファの適切な設定がプロジェクトマネジメントの肝といっても過言ではありません。

バッファが正しく運用されていないプロジェクトは、これを機にまずはプロジェクト内でバッファに対して正しい知識と共通認識を持つことから始めると良いかと思います。

見積もり法やバッファの考え方には多くの方法が存在しますので、そちらも今後も紹介していく予定です。興味がありましたらチェックいただければ幸いです。

アンケートのお願い

このチャンネルでは、これから提供していくコンテンツやサポートの内容を改善していくために、アンケートをお願いしています。
ぜひアンケートにご協力ください。

アンケートはこちらから

この記事が気に入ったらサポートをしてみませんか?