中小企業がシステム投資に失敗しやすいケースと、その対策を書こうと思います。
以下は、私がコンサルティングやシステム開発を15年近く行ってきている上で、よく耳にする失敗例です。
- いつまで経っても開発が終わらない
- 出来上がってきたものが想像と全然違う
- 開発会社が逃げた
- プログラムの中身を第三者に見てもらったら汚いコードだと言われたから、作り直したい
- 不具合が多すぎる
- 期待のサービスだったのに、ビジネスとして軌道に乗らなかった
- システムを利用した運用が浸透しない
他にもたくさんあるかと思いますが、上記の多くは「開発のスタート時点での失敗」が起因していることが多いです。
目次
失敗ケースとつまづきポイント
概算見積もりは高くなる
そもそも、業界としてシステム開発は、見積もりが無料という謎の文化があります。しかし、見積もりって精度を高くしようとするとかなりの工数がかかるんですね。
かなりの工数がかかることを無料でやろうとするので、大体が「概算見積もり」という形になります。概算見積もりは、開発会社側としてもリスクを見込んだ見積もりになるので、高くなりやすいです。感覚的には、1.5倍くらいの金額になると思います。
精度の低い安い見積もりは危険
そして、この概算見積もりの精度は、開発会社の経験値にかなり左右されます。つまり、経験の少ない開発会社は見積もり精度が低くなるんです。
精度が低くて、見積もり金額が高くなる分には良いのですが、安く見積もってしまった場合は、開発中に発生する要望や、スケジュールに対して資金的に耐えきれなくなり、品質が悪化したり、納期が遅れたりします。
みなさん、金額が安くて安心できそうな会社を選びますよね。ただ、「安心できそう」という基準が曖昧なので、安い方を選びがちだと思います。
過去に大きな会社さんから、「安すぎて不安です」という言葉を頂いたことがあります。相見積もりをして、一社だけ明らかに安いと不安になるという、発注者側の経験値ですね。
- いつまで経っても開発が終わらない
- プログラムの中身を第三者に見てもらったら汚いコードだと言われたから、作り直したい
- 不具合が多すぎる
つまり、この辺りの理由は見積もり時点で失敗していることが多いです。
フリーランスの方に依頼するリスク
見積もりを取る中で、技術力や実績のあるフリーランスさんにお願いすることもあると思います。
会社に依頼するよりは安くつくはずだし、能力が高ければ良い買い物です。
ただ、この業界でもっともよく聞く言葉が「先任の方と連絡が取れないので、、、」です。つまり、フリーランスの方に依頼してシステムなどを作ってもらっても、事業を辞めてしまったり、改めて就職されたり、逃げたりする方もよく耳にします。
そうなった場合、不具合が発生しても誰も直せない、、なんてことがよくあります。
- 開発会社が逃げた
これがまさにこれですね。
技術力が高いエンジニアにお願いしたから大丈夫!じゃなかった!
こちら、よくある間違いなのですが、システム等を開発する際、技術力というのはとても大事な要素なのですが、最も大事なのは要求定義、要件定義フェーズです。つまり技術力よりも折衝能力です。
システム開発の工程は、大体以下の工程で進められます。
- 要求定義
クライアントが要求していることを明示的に定義する - 要件定義
クライアントが要求してきたことを、どこまで実現できるか、また、実現方法を明確に定義する - 設計
より詳細にどのように実現するかを設計する。大規模システムであれば、プログラムの内容を日本語で記載する「詳細設計」と呼ばれるレベルの内容まで落とし込みます。 - 実装
設計内容をプログラムとして実装します - テスト
作ったものを検証します。これは、プログラムを用いてプログラムをテストする自動テストや、実際に人間が操作して行うテストがあります。 - 納品
という流れです。技術力が高い人でも、1,2を経験していない方もたくさんいらっしゃいます。また、テストに対する考え方が甘い、、ということもよくあります。比喩するなれば、大工さんに一級建築士のお仕事をお願いしているようなケースがケースですね。
- 期待のサービスだったのに、ビジネスとして軌道に乗らなかった
- システムを利用した運用が浸透しない
- いつまで経っても開発が終わらない
- 出来上がってきたものが想像と全然違う
この辺りが該当すると思います。なぜなら、要求通りに作ることが必ずしも正解ではないからです。
大変失礼な発言ではありますが、お客様はビジネスのプロだけど、システムのプロではないケースが多いからです。要求がシステムの設計まで波及することが多く、要求を鵜呑みにしてシステムを作ってしまったばかりに、次の展開に耐えられないデータ構造になったりすることがよくあります。
また、UI/UXの観点で、特殊な見た目や操作感にした時に目新しすぎて逆に使いにくくなってしまい、利用者が離れてしまう。もしくは、理解されないということがあります。このあたりも、やはり要求を的確な要件に落とし込めるプロの技が必要です。
もちろん必ずしもビジネスが成功するとは言えませんが、成功確率を上げるためにはとても重要な要素です。
運用が浸透しない。というのも要件定義時の現場へのヒアリングや、操作者のリテラシーレベルの確認、現状の業務フローの整理などが足りない場合に発生してしまいます。
いつまで経っても開発が終わらないのは、明確に要件を定義していないために、対応の範囲が曖昧で、いつまで経っても開発が終わらない、、、というケースですね。
失敗しない発注方法
ここまでを踏まえて、安全な発注方法をご紹介します。
要求定義・要件定義を別契約にする
システム開発だと要求定義と要件定義を別契約にしてもらうのが良いと思います。
契約の納品物を、要求定義書、要件定義書として契約を締結して、作成してもらった書類を元に新たに相見積もりを取っても良いですし、継続してその会社に依頼するのも良いです。
こうすることで、依頼した会社のレベル感もわかりますし、万が一、納得いかない場合は、別の会社に開発を依頼できます。さらに要件定義書が作成されていることで、無料見積もりで発生する「概算見積もり」ではなくなるので、見積もり精度が上がります。
つまり、概ね同じ内容の見積もりに対しての金額が明白になるということですね。
企業と保守契約を結ぶ
まず、フリーランスの方に依頼するにしても、間に企業を仲介する方が圧倒的に安全です。もちろん金額は高くなってしまいますが。
もしくは、システムの保守契約を別の企業と契約できるように進めるかですね。そうすることで、フリーランスの方が廃業されても、システムを保守してくれる企業がいるので安心です。
確かな実績がある会社に依頼する
そんなことできるならやってるわ!という声が聞こえてきそうですね。
こんなことを書くと、多くの方に怒られてしまうかもしれませんが、派遣やSES(業務請負)を生業とされている会社は、システムの受託開発が得意ではないケースが多いです。なぜなら、派遣やSESは特定の個人をプロジェクトの穴埋めとして提案するものです。もちろん穴埋めとしての人材なので、要求定義や要件定義などの上流工程を任せてもらえるケースは稀です。企業としての根幹部分ですからね。発注側としても外部の方にお願いしたくないお仕事です。
つまり、その事業を継続しても上流工程ができる人材が育ちにくいということです。
重要度の高い上流工程の経験値が少ないチーム構成になりがちということですね。もちろん全ての会社がそうという訳ではなく、程度の話です。
ですので、なるべく受託開発の実績がたくさんある企業に依頼するのが良いと思います。
ヒアリングする際に、会社の人員構成と事業ごとの売り上げを聞くのが良いですね。派遣やSESの売り上げ比率が高い場合は要注意です。
とはいえ弊社でも派遣やSESは、人材教育にはとても良いと考えています。なので、何度も言いますがあくまで程度の話です。
次に、大規模なシステムの実績があるかどうかは大事です。
有名なサービスや、大規模サービスなどの経験があるかどうかで、経験値が大きく変わります。
なぜなら、大規模なサービスは利用者が多いのでトラフィックやデータ量など、考慮事項が小規模なものと比べて格段に膨れ上がります。
そのような規模のものは、要求定義、要件定義、設計がしっかりできないと成功しないからです。
まとめ
もちろん、対策を講じても落とし穴はありますが、システム投資の成功確率はグンと上昇します。
と、、ここまで書いて、システムのご用命は弊社に!と言うとハードルが高いですね。
でもあえて
システムのご相談はお気軽にくださいませ!
WEB制作・ITに関するお悩みや
ご質問等お気軽にご相談ください