Meblog

このブログ記事は個人の見解であり、所属する組織の公式見解ではありません

なぜあなたの発注するソフトは高いのか

ちょっと古いネタなんだけど、こういうのが話題になっていた。

toushichannel.net

ソフトウェア会社にテキストを右揃えにする発注をしたところ、300万円とられたという。これだけでは詳しいことは分からないが、「癒着」という言葉を使っている以上、納得感の到底得られない値段設定だと著者(の妹)は考えていると推察できる。

この例が特段極端な例とは思えない。IT業界では、この手の話はよく耳にする。発注側と受注側の値段の感覚が全くあっていないのだ。

「たかだかテキストのレイアウトを変更するのに300万とは、どういうことだ」「Wordなら数秒でできる操作だ」とあなたは考えるかもしれない。しかし、システムというのは非常に複雑なものであり、「テキストを右寄せ」の一言で済まされる問題ではないかもしれないのだ。

たしかに最終的には見た目が単にテキストが右に寄るだけのことだ。しかし、元のシステムが複雑怪奇であったり、巨大なものであったりすると設計や試験の工数が莫大になってしまう。そもそもあなたの要望は「テキストを右寄せ」だけで終始するものだろうか。どの画面を右寄せにするのか、しないのか、文字数が複数行にまたがる場合の挙動はどうなるのか、英語や中国語などの外国語はどうするのか、画面表示時と印刷時で違うのか、他に細かな要望があったりしないだろうか。

また、要望の少なさにかかわらず、試験はこれまでどおりのものを行わなければならない。今まで開発してきたシステムに影響がないかを確認するためだ。これを「退行試験」と呼ぶ。さらに納品に際しては仕様書、設計書、試験書に加え、内部での会議や外部監査などを踏まえると、3人月の300万という金額は別段に高いというわけでもないのだ。

とはいえ、あなたは開発側の都合を押し付けられても困る、と考えるだろう。なぜなら、我々が普段用いているソフトは安い。個人用のソフトでも、オフィス用途のものなら1万円前後で手に入るし、プロフェッショナルなツールでも10万円程度で手に入る。なぜ発注すると異様に高くつくのだろうか。

ソフトウェアの強みは、コピーを繰り返すことで価値をそのままに製造コストを極端に下げることにある。例えば古きよき時代のパッケージを考えてみよう。とあるパッケージ用のソフトウェアを制作し、10人を一年間稼働させたとする。これは人件費だけでも1億円以上のプロジェクトだ。これを1万本売り上げたとする。そうすると開発コストは一本1万円にまで抑えることができる。単純に割り算にはならずに、これにパッケージのメディア料と配達コストが上乗せさされるのだが、メディア料といっても光学ディスクでかなり安く、配達コストも、ソフト開発のコストから比べると、無視できるような額になる。

インターネットを用いると更に安くなる。パッケージは必要なく、宅配の必要もない。サーバ代や通信料のみで配布できる。これがソフトウェアのビジネス上の強みのひとつである「スケーラビリティ」である。市場の大きさに関わらず、同じコストで対応出来るのだ。しかし、これは逆もしかりである。つまり、ソフトウェアを使用する顧客が少なければ少ないほど、ソフトウェア単価は大きく上がってしまう。

先程の例に戻ると、右寄せにするカスタマイズは発注元のみへのカスタマイズであった、と考えられる。この場合、開発コストは単純に作業分がそのまま顧客が全額負担しなければならない構図となる。あなた専用の料理人を一人雇っているようなものだ。開発コストを分散できず、非常に高価になってしまうのだ。

日本の多くのSIerは、ソフトウェアのカスタマイズで大きく収益を上げているときく。しかし、多くのカスタマイズは特定の顧客専用のものであり、繰り返し使うことは容易ではない。そのため、スケーラビリティは活用できず、大きく価格が上がってしまう。カスタマイズで動かす人員の人件費がこのソフトウェアの料金にそのまま上乗せされるためだ。

本当にあなたのカスタマイズは必要なものなのだろうか。あなた専用の料理人を雇ってまで行わなければならない発注なのだろうか。そのカスタマイズが存在しないということは、業界標準から少しずれた業務であるといえるが、業務を業界標準にキャッチアップしなければならないのではないだろうか。

このように、そもそもそういった特殊な要件は出さないのがベストな選択肢といえる。この判断は非エンジニアにとって非常に難しいものになるかもしれない。それでも、カスタマイズに対する肌感覚の価格というものが多いに参考になるはずだ。そして、重大でないものは、社内の業務改善により対応するべきだろう。