求ム、安売り開発

ソフトウェア開発現場の七不思議の5回目。

> 5. 開発単価だけで社外の発注先が決まる。

いくら安いコストで開発が始まっても、最後までその通りに進む保証は無い。見積もりが甘くて追加費用が発生する場合があるし、出来上がってくるソフトウェアの品質が悪くて、発注側のフォローが必要になったりする。従って、ソフトの開発にあたっては見かけ上の見積もりに騙されることなく、最終の成果物までに必要なトータルコストを考えて発注先を決める必要がある。

そんなことは分かっているのに、なぜか開発単価の安い会社の方へ発注することが多い気がする。この辺は技術的な評価とか会社としての実績よりも、見かけ上の金額が発注者の「成果」として評価対象になる為ではないかと推測している。納品物のバグがいくら多くても自社の社員を使って対処させればタダ、と思われているフシもあるようだ。

発注元として、幾つもの協力会社ヘ発注してきた経験による個人的な評価は下記の通り。

  • やはり開発単価の高い会社の方が、ソフトウェアの設計がしっかりしているし、不具合発生率も低い。比較してみたら開発単価と障害発生率との間には、明らかな相関があった。
  • 確かにオフショア開発の単価は安い。しかし、障害発生率は国内での開発とは比べものにならないほど高い。また、技術的に得意な分野と苦手な分野がハッキリ分かれているで、品質のばらつきも大きい。

協力会社を技術指導して開発費を下げる工夫が出来る会社(もちろん相応の技術力が必要)なら、思いのままに外部の協力を得て、しかも開発コストを削減することが可能だろう。逆に、協力会社を安く買い叩いてばかりいる(技術力が無いから政治力に頼るしかない)と、自社の技術は流出するしノウハウは蓄積できないし、結局は自分の損になるような気がしてならない。単価の安いオフショア開発に飛びついたものの、管理が上手く出来なくて四苦八苦しているところは少なくないようだ。

CMMは、ソフトウェアの開発プロセスを「改善できる能力」を評価するものであり、高品質ソフトウェアを効率よく作ることができる「絶対的な能力」ではありません。

幻の白いカラスを追い求め、僕らはインドにたどり着く − @IT MONOist