読者です 読者をやめる 読者になる 読者になる

Rails Webook

自社のECを開発している会社で働いています。Rails情報やサービスを成長させる方法を書いていきます

システム発注社はSIに発注するより内部で作った方が幸せになれる理由

システム発注者が、SI企業にシステム開発を外注化することで、どんだけ不幸を被っているか。システム発注者は何をするべきか。という持論を説明します。

この記事はあくまで個人の意見です。例外もありますし、実態と異なっている箇所もあります。ご質問やご意見がある方はコメントいただけると幸いです。

目次

  1. 市場環境の背景
  2. システムとしてあるべき要件
  3. SI企業にシステム開発を発注している場合の弊害
  4. なぜ、このようにSI企業は遅いのか?
  5. システム発注社は何をするべきか

市場環境の背景

・顧客ニーズの多様化 ... 個人の尊重により、顧客ニーズが多様化し、大量生産、テレビで大々的に広告、大量に売れるという流れはなくなった。
・グローバル時代で競争者が多くなりスピードが求められる ... グローバル化により外国に商圏が増えるだけでなく、外国企業との商圏の争いも発生するようになり、スピードが遅いと他者に負けてしまう。
・インターネットによる営業、広告、販売方法などが多様化している ... スマホやタブレット端末の普及、Twitter、FacebookなどSNSの普及、ユーザー参加型のコンテンツの普及などにより、営業、広告などの方法が多様化しており、インターネットを使った戦略も求められるようなった。

こうした、背景を元に、IT機器は増加傾向であり、IT戦略の重要度は年々高まっていくと容易に想定できる。
そして、そのような市場環境でも、顧客ニーズの多様化にきめ細かく対応して売上を維持・向上させながら、コストを抑えて、利益を確保する必要がある。



システムとしてあるべき要件

システムは作って終わりではない。
システムは開発して受入したら終わりではない。ビジネス環境の変化、要件定義の誤りなどは必ずあるため、受入後もエンドユーザー(社内システムの場合は社内の業務部門の方々、コンシューマー向けシステムの場合はコンシューマー)の動きを見ながら、広告、機能追加、バグ改修などが必要になる。

もし、エンドユーザーの動きを捉えきれず、適切なタイミングで対応ができないと、競合に負けて機会損失が発生する可能性がある。最悪の場合はど売上やコストという面で大きな打撃を受けてしまいかねない。

これは、金融系企業などシステムが重要であればあるほど本業のビジネスの影響は大きくなる傾向にある。

つまり、コンシューマーの動きを分析・解析し、コンシューマーへの利益を改善するためにスピード感をもって行動を起こせる必要がある。
改善のための行動は、キャンペーン、割引、宣伝など様々だがシステムが関わっていることは大いにあり、そうした場合に、システムを外注していることでスピード感が遅れてしまう。



SI企業にシステム開発を発注している場合の弊害

なぜ、SI企業にシステム開発を発注していると「コンシューマーの動きを分析・解析し、コンシューマーへの利益を改善するためにスピード感をもって行動を起こせない」のであろうか。

  • 改修するスピードが遅い - SI企業は多重下請け構造になっており、下請け会社が実際のプログラムを作成しているので、改修するにはその階層構造を伝言ゲームのように行き来する必要があり、改修のスピードが遅くなってしまう。
  • 小さな改修にやたらとお金がかかる - SI企業は納品したら終わりであるため、チームが解散しノウハウが減ったり、自動テストやリファクタリングなどの開発の効率化などが行われずらい。そのため、少し修正するだけで、影響範囲が適切に測れないためたくさんテストを行わないといけない。そのため、それだけお金もかかる。しかし、システム発注側はSI企業を変えるコストは増大なので発注せざる得ない。
  • よくわからないものができる - 一般的に自社の大事な情報を扱うためシステムの効果測定、分析、運用はシステム発注社側が行うケースが多い。すると、システム発注側とSI企業に壁ができ、改修の意図が適切に伝わらず、よくわからないものができてしまう可能性が高い。

つまり、「料理の遅い、高い、まずい」ならぬ「システムの遅い、高い、まずい」となってしまう可能性を大いに持っている。



なぜ、このようにSI企業は遅いのか?

SI企業のビジネスモデルは、顧客からシステムを受注し、システムを作り、納めることにある。
受注時に、システムにかかるコード数を今までの開発から見積もり、工数を算出し、人月あたり100万円などにして、コストを出す。
そして、そのコストに利益を数十%積み、システム発注社に提出し、これが売上となる。

プロジェクトが始まると、その計画したコスト内でいかにプロジェクトを回すかを考え、利益を確保するようにします。
多くのプロジェクトでは問題が起き、利益を圧迫し、会社トータルで見た場合、利益はほんの数パーセントになる。
業界全体で見ても数パーセントで、SI企業の有名な会社で年間売上1兆とかあっても利益率は2,3%しかない。

システム開発の時に具体的に行っていることとしては、
・顧客(システム発注側)との要求定義
・ベンダーのマネジメント
を行っている。
「システム自体の開発」は外部に発注している。

そして、開発途中や納品後に要求の意識ずれや大きなバグが問題が発生した時に、いかに正当な理由をつけて、システム発注側を原因にしてお金を払わないようにし、コストを上げないようにする。

また、システムは一度作ったら終わりではなく、基本的には継続開発を行う。
システムと一緒に、システム要求、設計書、ソースコード、マニュアル、開発環境など様々な副産物を作成される。そのため、顧客側は初めに発注したベンダーにロックオンされ、ベンダーを変更するには多大な費用がかかるのでベンダーを変更することは難しい。
そして、継続開発のときに、「ソースコードをいじると影響箇所がたくさんあり、テストをたくさんしないといけないのでお金がかかる」といったあれやこれやとお金がかかる理由を説明し、お金をとろうとする。
ベンダー側では、戦略的受注などといって1次開発は赤字でも受注して、2次、3次といった継続開発につなげていくベンダーもいるぐらいだ。



システム発注社は何をするべきか

将来的なITの重要度の高まりを見据え、システム開発のノウハウを自社内で蓄え、経営戦略に合わせれるスピード感をもったIT戦略を実現できるようにする準備をしていく必要がある。

そのためには、デザイナー、Webマーケター、アプリエンジニア、インフラエンジニア、データアナリストを自社内で雇い、自社内の小さなシステムから開発をしていき、システムを外注から内製に向けていく必要がある。

ちなみに、私は外注すること自体は悪だとは思っておらず、自社の競争優位性を下げてしまうアウトソーシングでなければ問題ないと思う。
しかし、昨今のスマホやSNS、ウェアラブルデバイスなどのITの広がりやトレンドを考えると、システム開発を外注しているようでは企業の成長が危ぶまれるのではないかと思った次第である。

以上です。
あくまでこれは個人の意見なので、参考程度にとどめておいてください。