Giochiamo!!ジョキアーモ!!からの寄稿記事です。
≪元サイトで読む≫
【ワケ1】儲ける必要のある「会社組織」が見積もっているから
システム開発という話から逸れますが、そもそも会社組織というものは絶対に儲ける必要があります。トントンじゃ絶対にダメなんです。なぜなら、そもそもマイナスからスタートしているからです。
会社組織というものは存在しているだけで経費がかかります。事務所賃貸費用、間接人件費、税金などなど。これは、仕事をしていなくとも必要であり、組織が生きていく上で絶対に必要となる生命維持(「法人は人格を有する」とはよく言ったものです)の費用です。したがって仕事を受ける以上、それなりに儲けを乗せないといけません。逆を言えば、会社組織というものは儲けが少ない仕事は受けてはいけないのです(儲けが少ない仕事ばかりしていると生命維持に支障がでてきます)。
したがって、当然ながら見積額にはその会社がその仕事で活動するうえで最低限以上の利益(経費といってもいい)が乗ります。つまり、会社組織が大きければ大きいほどこの利益が大きくなってきます。大きなシステム会社に見積もりを要求するとビックリするような金額が出てくるのはこのためです。
以前、勤めていた会社では「最低でも経費は6掛け」で計算していました。つまり原価100万円(原価=直接経費)の仕事は167万円以上の金額で提示していました。これがある程度の会社組織ならば当たり前のようにされています。一般の方々から見たら6掛けされた見積額と原価額を聞くと「ボッタくってるなぁ」と感じるかもしれませんが、これでも儲かっているわけではないんです。いろいろな経費を引くと、これでもトントンなんです。これには僕もビックリしました。このように会社組織の生命維持に必要な経費というものはとても大きいものなんです。
【ワケ2】システム会社が得意な技術が決まっているから
システム会社には得意な技術が必ずあります。建設会社を例にわかりやすく例えると、マンションなどのコンクリート構造物が得意とか、橋梁などの鋼構造物が得意とか、身近でいえば木造の家を作るのが得意だとか、そういう得意分野みたいなものがあるのです。具体的には、Windows系.NETが得意とか、業務システムをJavaで構築するのが得意とか、PHPでWEBサービスを作るのが得意とか、SAPやSalesforceなどの特定アプリケーションの導入やカスタマイズが得意とか。そのシステム会社によほど経営的な判断(新しい分野にチャレンジしよう、など)があった場合以外は、通常、その会社得意な技術やアプリケーションを使ってシステムを構築することを前提として提案や見積額が提示されます。
一方で、システム開発というのは不思議なもので、技術ごとに人件費単価が異なっているのです。つまり、.NETで工数1人月で作る場合と、Javaで工数1人月で作る場合と、PHPで工数1人月で作る場合でかかってくる人件費は異なっているのです。さらに不思議なことに、この人件費単価はかなり差があり、へたをすると費用が1~3倍になることがあります。
そこで、とある会社に「あれがしたい、これがしたい」と要望を持ち込むと、その会社が得意な技術と作り方でソロバンをはじきます。そうすると必然的に価格が異なってくるのです。つまり他社と1~3倍ほど差がある見積額が出てくるわけなんです。
具体例を出すと、Javaでシステムを構築する技術者の一般的な人月単価(技術者1人に1か月間作業をさせるのに必要な価格)は平均で60万円と言われています。一方でPHP技術者は平均月額単価は30万円です。しかもPHPはそもそも簡単学習、短工期を最大のメリットとしている言語ですので、Javaよりも高速で(短い工期で)構築することができます。おのずと見積額にも明確な差がでてくるわけです。(※ただし双方にメリット・デメリットがあるので一概に価格では決められないことはお断りしておきます)
【ワケ3】正しく要件を定義していないから
システムを作る上で最も重要な作業の一つに「要件定義」といわれる作業があります。この作業を簡単に説明すると「お客様の要件や要望を聞いて、お客様が何をしてほしいのか決める」作業となります。これは「お客様の御用聞き」をする作業ではありません。「お客様に本当に必要なこと」を正しくかつ詳細に探り当てる作業なのです。さらにいうと「お客様にはいらないこと」をちゃんと明確にする作業でもあるのです。そして要件定義をするうえで一番重要なことは、要件定義の段階では決して「お客様に必要なモノ(機能や形姿)」を具体的に定義してはいけないのです。
基本的にお客様はご自身のことをよくわかっておられません。ご自身にとって「本当に必要なモノ」を見えていないことが非常に多いのです。お客様は、ただ、漠然と「ほしい」と思ったから来ただけなのです。したがって作り手である我々が「そもそもなぜ、ソレがほしいと思ったのか?」「ソレを持つことによって何を成したいのか?」を紐解きながら「ただ、ほしい」という気持ちを解きほぐし、「お客様に本当に必要なこと」「お客様には要らないこと」を明確にして、お客様と共有していきます。これが要件定義という作業です。具体的なモノの話は、要件定義が明確になった後に具体的に設計されます(これを基本設計といいます)。
シンプルに考えてみてください。本当に成すべきことがわかっていないのに、本当に役に立つシステムができると思いますか?本当に成すべきことが分かっていないのに、システムを正しく使うことができると思いますか?本当に成すべきことがわかっていれば、不必要を極限までそぎ落とし、必要最低限の機能で最大の効果を上げるシステムを作ることが可能となります。つまり、要件定義が正しくできていれば「必要なシステムを安く作る」ことも十分に可能なのです。逆を言えば、要件定義が不完全もしくは間違って行われていた場合「必要以上かつ不必要で余計なものを作ってしまう(=高価になる)」危険があるわけです。
私のところに他社で出された見積を片手に「このシステム作るのにこんなに費用かかるの?」と相談に来られる方が多くいます。すこし時間を頂戴して、その方の要件をゆっくり紐解いていくと、実際にはその金額の半額以下で十分に構築可能なことがたくさんあります。つまり、お客様の要件を慎重に抽出してから、違ったやり方、異なる技術、その方の妥協点などをよくよく探っていくと1/5の価格で出来てしまうことも当たり前のようにあるのです(ただし、価格を下げるということは何かしらの代償が伴います。それを必ず説明してご納得いただかない限り、その仕事はお受けできないことがあることはお断りしておきます)。
この要件定義を正確に行うことが、正確な見積もりを出す根拠となります。強いて言えば、本来であれば要件定義ができていなければ見積はだせないのです。すでにお気づきと思いますが、要件定義は発注前に行われなければなりません。つまり、専門の技術者が要件定義をするのではなく、営業担当者が要件定義を行うことが多いのです(一般的な会社組織では技術者を動かすのは発注がなされた後になります)。要件定義を行うにはそれ相応の知識と経験が必要となります。一般的な技術者であっても要件定義を正確に行うことは難しいのです。要件定義を行う営業担当者にその知識と経験があるか・・・それが大きな問題となります(ここを重視して優秀な営業担当者を配置する会社組織ももちろんあります)。したがって、「だされた見積もりが高い」と相談に来られた場合、私はその方が話を持ち掛けたシステム会社の要件定義があまり正確に成されていないのではないか?と常に疑い、まず要件を慎重に分析することから始めるのです。その結果が前述の事例に結びつきます。
【ワケ4】その仕事を「やりたくない」から
最後は、単純な理由なのですが、あなたの持ち込んだ要望について、そのシステム会社が「できるけど、やりたくない」場合があります。【ワケ1】でもすこし触れましたが、会社組織には「やってよい仕事(=やるべき仕事)」と「やってはいけない仕事」があります。やりたくない理由はとても簡単で単純に利益に結びつかないのです。これは会社ごとにかなり明確に決まっています(これが明確でない会社は前述のとおり存続が危ういです)。しかし、お客様に対して「それは儲からないのでやりません」とはさすがに言えません。言えば失礼どころか信用を失いかねません。したがって、かなり利益を乗せた金額(=本来ならやらないが、このくらいくれるなら受けてもいい金額)を提示して「申し訳ありません、うちではこのくらい頂かないとできません」と頭を下げるのです(これなら営業職も頭を下げやすいのです)。
以上が、システム会社の見積が高い4つの理由(ワケ)です。
いかがでしたでしょうか?
あなたの手元にある「システム会社が作成した見積書」が高い理由をお分かりいただけましたでしょうか?