今や、多くの企業にとって必要不可欠となったITシステムだが、システム構築やソフトウェア開発を行う場合、たいていは開発を専門に請け負う企業にアウトソーシングする。
しかし、そこには様々な問題が発生しているという。無茶な仕様、無理な納期を発注側が望んできたり、一方で納品されたシステムに期待していた機能がなく、追加をお願いしたところ高額の開発費を請求されたりと、発注側、開発側、双方が疲弊する環境があるのだ。
どうしてそのような事態が起きてしまうのか?
『「納品」をなくせばうまくいく ソフトウェア業界の“常識"を変えるビジネスモデル』(倉貫義人/著、日本実業出版社/刊)は、IT業界の中でもソフトウェア開発の業界にはびこる問題とその原因を探り、解決法を提示する一冊だ。
ここでは本書の冒頭から、「ソフトウェアが高額になる理由」をご紹介しよう。
■どうして、ソフトウェアはあんなに高いの?
かなりの予算投資をしてソフトウェアを開発したはいいが、実際に使い始めていると、修正したい箇所が出てきた。そして、その改修を運用会社に依頼すると、想像以上の金額の見積もりが出てきた…というのは“あるある話”だ。文字の表示を一部分直すだけなのに十数万円の見積もりが出てきたというエピソードもあるという。
こうなると、発注側としては、なるべく改修の作業が発生しなくてすむように、最初の構築時に確実に作っておこうと考えてしまうのが道理だろう。しかし、著者の倉貫さんは、この方向性の行き着く先が「現在のソフトウェア開発の商習慣である大掛かりな要件定義と一括請負」だと指摘し、そこにシステムの価格を異常に高額にしている原因があるという。
■エンジニアが“バッファ”をなるべく長く取ろうとする理由
倉貫さんは、高価格になる最大の要因として「見積もり時の過大なバッファ」をあげる。バッファとは日程上の遅れにそなえる予備日や、それに伴うコスト(の上乗せ)のことだ。
開発の現場を知らない発注側は「バッファは本当に必要なのか?」と思うこともあるかもしれないが、そもそもソフトウェアは何が正解か分からない、目に見えないものだ。その完成責任を負わされるプロジェクトマネジャーが、リスクへの対処としてバッファを積んでしまうのは仕方がないことである。
さらに、「納期は絶対である」という以上、現場のエンジニアやエンジニア達のチームリーダーも、念のために多めの日数で見積もりをはかるのは当然のこと。この「絶対」という言葉がエンジニアたちを不安にさせている。倉貫さんはこのことに対して「完成リスクを丸投げしようとするユーザー企業にも問題がある」と述べている。
■スケジュール最優先主義によって起こる弊害
発注側はシステム開発をアウトソーシングした後、納品されたシステムは自社で運用するか、安価な業者に運用だけを任せることになる。ところが、これはシステムが一度完成した後、改修はほとんどしないという想定の元に行われている。「せめて運用は安く」という心理によるものなのだろうが、実は「ソフトウェア開発が高額になる」と原因の一つとなっているそうだ。
開発業者は何よりもスケジュールが最優先。そうすると、多少保守性が悪く、メンテナンスしにくいソフトウェアでもテストを通し、納品してしまうことがある。もちろん、どの企業も、プロとして「メンテナンスしやすい設計や実装」を心がけているが、プロジェクトの進行次第では、納期を最優先としてしまうのだ。
さらに、運用を別の業者に任せてしまった場合、自分たちで開発したシステムではないため、改修をするにしてもどれだけ影響範囲があるか見えないという理由から、文字を少し直すだけでも高い金額が発生してしまうということになるのだ。
「納品」という明確なゴールがあり、なおかつ「納期」というスケジュールが厳密に決まっている以上、その期間内で開発をするしかない。「ソフトウェア開発が高額になりがちな理由」はそういった構造的な問題として捉えることができる。
本書ではそうした問題を解決するためのビジネスモデルを倉貫さんが提示している。キーワードは“「納品」をなくす”ということだ。
システムは今や企業の活動においてなくてはならないものになった。だからこそ、本書で書かれている内容を知ることは発注側にとっても極めて大事なことなのではないだろうか。
(新刊JP編集部)
【関連記事】
・
もはやプログラミングは教養だ どんな人にも役立つ「プログラミングの思考」・
単調な毎日から抜け出すためのSNSの使い方・
多くのプログラマーを育てた「ファミリーベーシック」とは?・
SF作家が予想する驚愕の未来どうしてソフトウェア開発はあんなに高額になるのか?