スタートアップでシステム開発に失敗する原因と体験談

スタートアップでシステム開発に失敗する原因と体験談

スタートアップでシステム開発に失敗する原因と体験談

本記事のテーマ

この記事は、起業してWebサービスリリースまで、システム開発にあたって直面した問題や失敗などを体験談としてまとめたものです。
これから起業を考えている方で、システム開発の経験が無い方のために、失敗談を紹介し、仮説検証の重要性とMVP開発等の起業にあたってのシステム開発の注意点について書いています。

システム開発の失敗談

メンバー

創業メンバーは4名(内、エンジニア1名で、残り3名は開発未経験)で、全員が初めての起業でした。
エンジニアの1名は、週1日程度副業として関与してもらう形で、残りの3名はシステム開発に携わったことがなく、開発に関する知識はほとんどありませんでした。

開発したかったシステム

4人は議論を重ねてアイデアが膨らみ、開発したいシステムの規模は大きくなっていました。
エンジニア以外の3名は、3ヶ月くらいでシステムを開発してリリースしたいと考えていましたが、システムの要件はエンジニアが考えるものだと思っていたので、具体的な要件や開発に必要な工数等についてはほとんど議論していませんでした。

エンジニアとして関与して頂いた方は、週1日程度の関与なので、開発は、基本的には外注することになりました。
また、お金さえ支払えば、期限までにシステムは完成すると考えており、開発を受託する会社は当然に期限を守って開発すべきだと考えていました。

しかし、エンジニアとして関与して頂いた方は意見が異なり、以下のように考えていましたが、システム開発経験の無い3人はそれほど理解していませんでした。

  • 理想のシステムは3ヶ月では完成しないので、3ヶ月でリリースするにはできるだけ機能を絞って最低限のシステムを開発する必要がある。
  • ビジネス要件もまだ固まっておらず、システム的な要件をこれから詰めていく必要があるので、不確実性が高いため、開発手法はウォーターフォール的な開発ではなく、アジャイル的な開発が良い。

システム開発について意見が対立

エンジニア以外の3人は、作る前から「理想のシステムはできない」と言うエンジニアの意見を理解していませんでした。3ヶ月でできないなら何ヶ月かかるのか見積りを行うべきだと考えていましたし、例えば6ヶ月かかるなら6ヶ月分のお金を支払うから3ヶ月でシステムを開発して欲しいと考えていました。
エンジニアは3人に対して、システム開発とはどういうものか説明しましたが、3人が完全に納得することはありませんでした。

システム開発の進捗が悪いので機能を大幅に削減

外注先にはアジャイルでシステム開発を委託し、1ヶ月に一定の人員を確保してもらうような契約形態にしました。
外注先との間で、スプリントの期間を1週間に設定していたため、毎週外注先からそのスプリントの開発進捗が報告されました。
開発着手から2ヶ月が経過した頃、エンジニア以外の3人の目には、当初思い描いた実現したいシステムの10分の1も完成しておらず、必要最低限の機能に絞り込んだサービス像と照らしても、5分の1も進捗していないように見えました。
確かに、初期はバックエンドの開発をメインで行っていたので、進捗が悪いように見えていたという側面もありました。しかし、外注先の開発チームも、このままでは3ヶ月が経過する時点で顧客が使えるようなシステムは完成しないのではないかと考え始めていました。

なぜなら、当初は想定しなかった機能要件(例えば、当初は管理画面を作るなんて話は一切していなかったが、管理画面から管理者がアクセスして顧客の管理を行うような機能が必要等)が、開発が進むごとに次々に発生し、当初の想定より工数が膨らんだからです。
エンジニア以外の3人は、想定しなかった工数が発生したから納期に間に合わないと言う外注先の意見を理解できませんでした。焦ってなんとかリリースタイミングを3ヶ月に合わせようと、一部の機能は開発しないでSaaSで代替することに決めました。

とりあえずリリースできそうな最低限のシステムができた

SaaSを使って継ぎ接ぎの最低限の機能しかないシステムがとりあえず完成しました。
上記以外にも細かい事情はあったのですが、この時点で結局4ヶ月程が経過していました。
しかし、とりあえず完成したシステムは、当初4人が思い描いたシステムとは程遠いもので、β版としてリリースしたものの、顧客に使われる事はほとんどありませんでした。

なぜシステム開発に失敗したのか?

システム開発失敗の原因その1:開発する必要のない機能まで開発してしまった。(MVPという概念の理解不足)

システム開発において、特に起業して間もない会社では、そもそも顧客のニーズが本当にあるのか分からない事が多いです。自分達は「絶対に成功する」と考えていても、実は顧客が本当に欲しいサービスは全然違う形であったりすることが多いです。
このような不確実性が高い状況下では、顧客にとって本当に価値のある機能(という仮説)だけに絞ってシステム開発を行い、できるだけ早く顧客に使ってもらうことで、顧客の課題にフィットするシステムであるかを検証するすべきです。この時参考になるのが、MVP(Minimum Viable Product)という考え方です。
MVPやスタートアップの開発で注意すべき点をまとめた記事がありますので、ぜひご参考にして下さい。

スタートアップの開発において注意すべきこと
スタートアップを実践して学んだ仮説検証の方法

システム開発失敗の原因その2:顧客の課題を明確にせず開発に着手したので、システムがリリースできる状態になるまでに手戻りや無駄が発生した。(CPFを達成する前にプロダクト開発に着手してしまった。)

システム開発にあたっては、顧客にとっての課題を解決するために必要な機能を備えたシステムを開発する必要があります。
顧客にとって何らかの課題があるから顧客ニーズが生まれます。
顧客の課題を度外視して、自分達が作りたいシステムを開発してしまったことから、リリースまでに本当に必要な機能が何であるかを見失い、結果として手戻りや無駄が発生し、顧客に受け入れられないシステムを開発してしまいました。
最初から、顧客にとって必要な最低限の機能を開発していれば、一直線に目標に向かって最短ルートで開発を行うことができるため、結果として手戻りや無駄を限りなく抑えることができます。
スタートアップでは、限られたリソースで事業をスケールさせなければならないので、何ヶ月もかけてシステム開発した後では手遅れです。
システム開発に着手する前に、できる限りの手段を用いて、顧客にとって重要な課題は何であるかを検証することが極めて大切です。

この時参考になるのが、CPF(Customer Probrem Fit)や仮説検証という考え方です。
スタートアップの開発においては、ビジネスと開発が車輪の両輪のように上手く回る必要があります。
そのため、事業の進捗に応じて、適切に仮説検証サイクルを短いスパンで数多く回し、限られたリソースで必要最低限のシステムを開発することが極めて大事になります。

なお、仮説検証の方法やCPF(Customer Probrem Fit)については、以下の関連する記事をご参考にして下さい。
スタートアップを実践して学んだ仮説検証の方法
スタートアップの各ステージ(Seed〜SeriesC)において注意すべきこと

システム開発失敗の原因その3:経営陣のシステム開発に対する理解不足

システムを開発してプロダクトやサービスを構築しようと考えているのであれば、経営陣がシステム開発に対して理解があることが不可欠です。
システム開発には、膨大な時間と費用が発生します。経営陣のシステム開発についての理解が不足しているのであれば、システム開発に失敗する可能性は極めて高いです。
幸いなことに、システム開発に失敗する会社は多く、過去の失敗談を踏まえて書籍等が大量にあることや、ベストプラクティス的な開発手法も多いので、経営陣がシステム開発の理解が乏しいのであれば、まずはシステム開発が何故失敗するのかや、どのように開発を進めていけば良いのかを学ぶことから始めるのをおすすめします。

以下の関連する記事も是非ご参考にして下さい。
スタートアップの開発において注意すべきこと

まとめ

今回はシステム開発が失敗した経緯についての記事を書きました。
システム開発や、起業の経験が無い方で、これからシステム開発をしようとしている方は、是非ご参考にして頂けたら
と思います。以下の関連する記事も是非参考にして下さい。
スタートアップの開発において注意すべきこと

なお、よりビジネス的な切り口から失敗した原因を記載した記事がありますので、こちらもご参考にして下さい。
スタートアップで起業に失敗する原因と体験談

また、スタートアップの流れについて記載した記事がありますので、こちらの記事も是非ご参考にして下さい。
スタートアップの各ステージ(Seed〜SeriesC)において注意すべきこと