何か着ていればいいよ

ソフトウェア技術者の日常や技術の話を書こうと思います。

ソフトウェア見積の非対称性について

今回の話は受託案件を念頭に書いています。
まず、ソフトウェア技術者が行う見積について
顧客とソフトウェア技術者の間の見積の内訳、あるいは根拠となるソフトウェア開発にまつわる知見の非対称性の問題を最近の経験からどういものか考えてみたいと思います。

ソフトウェア技術者の見積

私の携わった多くのプロジェクトでは、 プロジェクトの開始にあたって*1 具体的にどのような手法によって見積もったかという点*2を含めて何故そのようなコストになったかを顧客に説明することになります。

その際に悩まされるのが、予算と我々の見積に差がある点です。*3

我々ソフトウェア技術者は、どのようなアーキテクチャが想定されるか?どの機能をソフトウェアを通じて実現するためにどの程度のコストがかかるかというのを様々な手法*4で算出しておりその妥当性を説明するわけです。

見積の妥当性への反証

顧客の予算と見積額の相違があると「高い」という話になるのですが、
ソフトウェア技術者の出した見積に対して高すぎるという根拠が予算額に見合っていない*5というのは見積を受け入れられない理由ではあっても、見積の妥当性を崩す反証ではないはずです。

ただ、下請けという立場で顧客に何度も費用を抑えた再見積と見積の妥当性を説明せよと求められることを続けると、ソフトウェア技術者も人間なので機能を削らすに予算に合わせてしまうようなバイアスが入ってしまうという傾向があるように思えます。*6

対称性の解消をサボらない。でも、最後には断る勇気も持つ

結論として何が言いたいかというと、ソフトウェア技術者と顧客の間に見積に対する前提知識の非対称性があるため、ソフトウェア技術者から説明が求められることが多くなることはやむを得ないと思います。

ただ、根拠の無い見積への修正圧力にたいしては一定の基準をもって対処し、時には断る勇気も必要ではないかということが今回言いたいことです。

*1:多くは開始前に

*2:見積手法については割愛します。

*3:問題になるのは見積額が予算を超えている場合

*4:ぶっちゃけ経験と勘でえいやと出すことも往々にしてあります。

*5:多くは見積前に予算額を知らされないので後出しじゃんけん

*6:ていうか無理矢理一般化して語っているけど自分のことです。