え〜と、失敗プロジェクトが多いことですか?
それは異なる点というよりは、異なる点が生んだ結果です。正解は、ITのプロジェクトの場合、建築物や製品などと違って成果物が目に見えない、ということです。そのため、しばしば関係者間でゴールが共有できないままプロジェクトが進められ、プロジェクトが失敗するのです。
確かに、ユーザーにソースコード自体を見せても、実際のシステムを見せることにはなりませんものね。
ここで重要とされているのが、要件定義です。要件定義とは簡単にいうと、ユーザーが望んでいるシステムの機能や性能などを確認・整理するフェイズのことです。そもそもここが間違っていると、作るべきシステム像が間違っていることになり、開発自体の意味がなくなってしまうのです。
ちなみに、顧客の考えと異なるシステムが出来上がってしまうと、顧客から「検収印」がもらえず、当然システムを納品できず、プロジェクトにかかわるスタッフ全員が大変な思いをすることになります。
でもそれって、受託開発系の企業の場合ですよね。ソフトウェア製品開発系の企業やWebサービス系の企業の場合なら、そんな事態にはならないと思うのですが……。
確かに、ソフトウェア製品・サービスを自社開発していれば、要件の思い違いなどは起こりにくいですね。ただし、プロジェクトが大規模であれば、かかわる開発者の人数も膨大になりますし、全員のコンセンサスをとる上で、要件定義、システム設計書が重要になるケースもあります。
またスタートアップのWebサービス事業者の場合、自社だけで必要な開発者をそろえるのが難しく、外部事業者に発注したためにプロジェクトが失敗することも多いようですよ。
だから最近、Webサービス事業者はエンジニアを積極的に採用しているのですね。
Webサービス事業者がエンジニアの採用に熱心なのは、こうしたリスクを避けるほかに、長期的な開発・運用コストを引き下げる狙いもあります。
どういう意味ですか?
「永遠のβ版」という言葉で表現されるように、Webサービスの場合、常にシステムを改良・拡張し続けていきます。そのため、社内にエンジニアを抱えた方が開発・運用のコストが下げられますし、自由度も高くなります。
一方、社内システムは、受託開発系の企業から納品されたシステムがそのまま使われることが多いので、コスト面などから開発は外部に発注されることが多いのです。
でも社内システムでも、ソフトウェア製品を導入した方が開発コストは下がるのに、なぜ受託開発系の企業に発注するのですか?
日本企業の場合、企業ごとに独自業務が多く、業務プロセスも多種多様なので、パッケージソフトのカスタマイズでは対応が難しいから、といわれていますね。ただ最近は、システムコスト削減の観点からソフトウェア製品やWebサービスを導入するケースが増えており、受託開発でも開発コストが抑えられる傾向にあります。
それだと、すべての要件に対応するのが難しいですよね。それで顧客に納得してもらえるのですか?
それが難しいところです。先ほど話したように、システム開発の場合、事前に成果物を見せられないので、顧客との間でプロジェクトのゴールに対するコンセンサスを得るのが難しいのです。一方で、ユーザー企業は予算の関係上、最初にシステム開発費の見積もりを求め、その金額で「一括請負契約」を結びたがります。ということで、いざプロジェクトをスタートさせたら、システムの要件がふくらんで、赤字プロジェクトになってしまうのです。
う〜ん。なかなか難しい問題ですね。
だからシステム開発のプロジェクトは難しいのです。最近、一部の企業は、図2のように設計フェイズと開発フェイズに分けて見積もりを出し、契約を結ぶことで、リスクを避けようとし始めています。
つまり、開発するシステムのイメージが共有できたところで、開発についての契約をするということですね。
その通りです。実は、下請け企業に発注する際にも似たような問題が起こっているのですが、それについては次回、解説することにしましょう。
イノウ
さまざまな業界や会社のことを、Webと書籍の連動で「分かりやすく」解説することを目指しています。さまざまな業界の企業を業態やキーワードごとに検索可能なWebサイト「業界地図 2012」を近日オープン予定。
『世界一わかりやすい IT(情報サービス)業界の「しくみ」と「ながれ」』 (amazonへのリンク)
イノウ 編著
行貝くん、江水くん、冠里さんをはじめとするキャラクターが解説するさまざまな業界の「入門書」。IT業界を「分かる」ために必要な「業界の知識」「会社の知識」「業務の知識」「基本の知識」を提供。
Copyright © ITmedia, Inc. All Rights Reserved.