ソフトウェア見積の非対称性について
今回の話は受託案件を念頭に書いています。
まず、ソフトウェア技術者が行う見積について
顧客とソフトウェア技術者の間の見積の内訳、あるいは根拠となるソフトウェア開発にまつわる知見の非対称性の問題を最近の経験からどういものか考えてみたいと思います。
ソフトウェア技術者の見積
私の携わった多くのプロジェクトでは、 プロジェクトの開始にあたって*1 具体的にどのような手法によって見積もったかという点*2を含めて何故そのようなコストになったかを顧客に説明することになります。
その際に悩まされるのが、予算と我々の見積に差がある点です。*3
我々ソフトウェア技術者は、どのようなアーキテクチャが想定されるか?どの機能をソフトウェアを通じて実現するためにどの程度のコストがかかるかというのを様々な手法*4で算出しておりその妥当性を説明するわけです。
見積の妥当性への反証
顧客の予算と見積額の相違があると「高い」という話になるのですが、
ソフトウェア技術者の出した見積に対して高すぎるという根拠が予算額に見合っていない*5というのは見積を受け入れられない理由ではあっても、見積の妥当性を崩す反証ではないはずです。
ただ、下請けという立場で顧客に何度も費用を抑えた再見積と見積の妥当性を説明せよと求められることを続けると、ソフトウェア技術者も人間なので機能を削らすに予算に合わせてしまうようなバイアスが入ってしまうという傾向があるように思えます。*6
非対称性の解消をサボらない。でも、最後には断る勇気も持つ
結論として何が言いたいかというと、ソフトウェア技術者と顧客の間に見積に対する前提知識の非対称性があるため、ソフトウェア技術者から説明が求められることが多くなることはやむを得ないと思います。
ただ、根拠の無い見積への修正圧力にたいしては一定の基準をもって対処し、時には断る勇気も必要ではないかということが今回言いたいことです。