- 更新日 2024.01.26
- カテゴリー システム開発
スクラッチ開発は時代遅れ?それでも選択肢の1つであり続けるメリットを解説!
DX時代に向けたIT化推進は急務。しかし、システムのスクラッチ開発は時代遅れだと聞いている。それは本当なのか?そんな疑問を抱えるIT担当者の方に向け、スクラッチ開発が時代遅れだといわれている理由、それでも重要な選択肢の1つであり続けるスクラッチ開発のメリットを解説していきます。
なお、システム開発会社の探し方・選び方がわからない!という方はシステム幹事にお気軽にご相談ください。貴社の目的・予算にあった最適な会社を厳選してご紹介します。相談料・会社紹介料などは無料です。
スクラッチ開発とは
スクラッチ開発とは、既存のパッケージソフトなどを利用せず、ゼロからソースコードを書いてアプリケーション / システムを開発する手法のこと。一般的には、ベースプログラムとなる「フレームワーク」をもとに開発を進めますが、それも利用しない手法を「フルスクラッチ開発」と区別して呼ぶ場合もあります。
IT技術の進化した現代では、システム調達の方法は多様化していますが、コンピューター黎明期はシステム開発といえばスクラッチ開発でした。たとえば、汎用機の時代に開発された公共インフラ / 金融系システムなど。つまり、スクラッチ開発は最古のシステム開発手法だといえます。
スクラッチ開発の詳細については以下の記事もあわせてご覧ください。
関連記事:スクラッチ開発とは?メリット・デメリット、パッケージとの違い
スクラッチ開発の主な開発モデル
ただし、ユーザーのニーズ、時代のニーズにあわせて、スクラッチ開発の手法も多様化しています。現代でも採用される、スクラッチ開発の主な開発モデル(手法)を簡単に紹介しておきましょう。
開発モデル |
向いている開発プロジェクト |
ウォーターフォール |
・機能・予算・納期などの要件が明確なプロジェクト ・金融・公的機関などの大規模開発プロジェクト |
アジャイル |
・将来的に要件・仕様の変更が考えられる開発プロジェクト ・ユーザーニーズを反映させて成長させるSNS / Webサービスなど |
プロトタイプ |
・前例のないWebサービスなどの開発プロジェクト ・全体をコントロールしやすい小〜中規模開発プロジェクト |
スパイラル |
・品質を重視したい業務システムなどの大規模開発プロジェクト ・開発途中で仕様変更が考えられるプロジェクト |
開発モデルの主流「ウォーターフォール」
水が上流から下流に流れる(Waterfall)ように、複数の開発ステップを順序立てて実行する開発モデル。1つの開発ステップを100%完了させてから次のステップに移ることが基本であり、日本におけるスクラッチ開発の主流です。
主に「要求定義」>「要件定義」>「設計」>「開発(プログラミング)」>「テスト」>「リリース」という開発ステップを経てシステムを完成させます。
注目の高まる「アジャイル」
システム全体を細かい機能に分割し、優先度の高いものから開発・リリースを繰り返し、完成を目指していく開発モデル。アジャイルは、さらにいくつかの開発手法に分類できますが、機能の開発・リリースを1単位とした「イテレーション」を繰り返すことが共通する特徴です。
イテレーションごとにレビューを繰り返し、改善しながらシステムの完成を目指すため、ユーザーの声をすぐに反映させたいWebサービス開発などに適切。Webアプリへの需要増とともに、注目が高まっている開発モデルです。
ウォーターフォールの改良型「プロトタイプ」
設計以降、開発が完了するまで、クライアントがシステムを確認できない「ウォーターフォールの課題」を改良した開発モデル。具体的には、本開発の前に「プロトタイプ(試作機)」を制作してテスト / レビューし、認識のズレを修正します。
設計以降のプロセスが「プロトタイプ開発」>「テスト・レビュー」>「プロトタイプの修正」>「本開発・リリース」となる点がウォーターフォールとの違いです。
ウォーターフォールとアジャイルを組み合わせた「スパイラル」
要件定義でシステムの仕様を明確にした上で、全体をサブシステムに分割し、プロトタイプの作成・レビューをループ状に繰り返しながら完成を目指す開発手法。「設計」>「開発」>「テスト」>「評価・改善」を1単位とし、次のループ(スパイラル)に活かしていく流れです。
システム完成までリリースされないという点で異なるものの、アジャイルとウォーターフォールのメリットを組み合わせた開発モデルだといえるでしょう。
スクラッチ開発手法の詳細については以下の記事もあわせてご覧ください。
関連記事:システム開発の手法4つの特徴・メリット・デメリットを解説
スクラッチ開発以外のシステム調達方法
スクラッチ開発の概要 / 開発モデルは把握できたが、スクラッチ開発以外にどんな選択肢があるのか。知りたい方のために、比較されることの多い代表的な開発手法 / システム調達方法を簡単に紹介しておきましょう。
スクラッチ開発 |
パッケージ開発 |
SaaS |
ローコード / ノーコードツール |
|
概要 |
要件に応じて ゼロから システムを開発 |
既存パッケージを 自社向けに カスタマイズ |
クラウドに構築された システムを インターネット経由で 利用 |
現場でも最小限の ソースコードで アプリ開発可能な ツール |
開発コスト |
もっとも高額 |
高額 |
月額利用料金 |
価格体系は ツールによる |
開発期間 |
もっとも長期 |
長期 |
即日〜数週間 |
アプリの種類、 スキルによる |
開発の自由度 |
事実上の制限なしに 自由に開発可能 |
パッケージの 拡張性による |
オプション以外の 拡張は困難 |
複雑なシステムの 開発は困難 |
パッケージ開発の詳細については以下の記事もあわせてご覧ください。
関連記事:パッケージ開発とは?メリット・デメリット・スクラッチ開発との違い・選び方のポイントを解説
なぜスクラッチ開発は時代遅れといわれるのか
それでは、古くから利用されてきたとはいえ、なぜスクラッチ開発が時代遅れといわれるのか。スクラッチ開発以外の開発手法 / システム調達方法との比較を交えながら、考えられる理由を解説していきます。
高額な開発コスト / 長期化しがちな開発期間
オーダーメイドでシステムを作り上げるスクラッチ開発は、ほかのシステム調達方法に比べ、開発コストが高額で稼働までの期間も長期化しがち。これは、市場のトレンドが急速に変化する現代の流れに逆行する特性です。
また、システム開発の企画段階では斬新だったアイデアも、稼働時に陳腐化してしまったのでは費用対効果を期待できません。現代の基準からすれば、高額な開発コスト / 長期化しがちな開発期間を要するスクラッチ開発は、時代遅れに感じられるでしょう。
多様化するシステム調達方法
高機能なパッケージ、クラウドサービスなど、システム調達方法が多様化したことも、スクラッチ開発が時代遅れだといわれる要因だと考えられます。
たとえば、市場に多種多様なパッケージ / サービスが存在する在庫管理システムなら、自社ニーズにほぼ合致する適切な製品が見つかります。足りない機能を補うため、あえてスクラッチ開発を選択するよりは、パッケージをカスタマイズした方が費用対効果が高いという考え方です。
業務標準化という考え方
業務標準化という近年の考え方も、スクラッチ開発は時代遅れ、パッケージ / サービスの導入は合理的という流れを深めていると考えられます。
なぜなら、既存パッケージ / サービスは、ターゲットとなる業界の標準業務をシステム化したものだから。自社業務にあわせてシステムを開発するのではなく、業界標準のシステムに業務をあわせることで、生産性の向上が見込めるというわけです。
プロジェクト失敗のリスク
多種多様なシステムを活用できるのに、プロジェクトの失敗リスクの高いスクラッチ開発を選択するのは時代遅れだ、という考え方もあるでしょう。実際、プロジェクトマネージャーの共通認識として、システム開発プロジェクトの成功率は30%という定説があるといわれています。
なにをもって成功とするかは諸説ありますが、QCD(品質 / コスト / 納期)の条件をすべて満たしたプロジェクトを成功と定義する場合がほとんど。つまり、システム開発プロジェクトの7割は、QCDのいずれかを満たしていないことを意味します。プロジェクトが途中で頓挫してしまうことも珍しくはありません。
時代遅れでもスクラッチ開発は選択肢であり続ける
最古のシステム開発手法といえるスクラッチ開発は、時代に逆行する特性もあるため、たしかに時代遅れだといえるのかもしれません。しかし、時代遅れであってもスクラッチ開発はシステム開発の選択肢であり続けます。なぜなら、スクラッチ開発でしか実現し得ないシステムがあるからです。
たとえば、Instagram / X / Facebook、YouTube / Spotifyなど、いまや私たちの生活に欠かせないサービスもスクラッチで開発されています。官公庁 / 金融系などの公共インフラをパッケージで開発することは困難です。つまり、スクラッチ開発でしか得られないメリットを必要とするシステムが、いつの時代も存在するということです。
選択肢の1つであり続けるスクラッチ開発のメリット
それでは、スクラッチ開発が選択肢の1つであり続ける根拠といえるメリットはなにか?簡単に紹介していきましょう。
アイデアを具現化できる開発自由度の高さ
ゼロからシステムを構築するスクラッチ開発には、ITで可能なものなら事実上の制限なしに実現できる「開発自由度の高さ」というメリットがあります。つまり、これまでにない新たなサービス、革新的なビジネスモデルなどのアイデアを、細部まで妥協することなく具現化できるということです。
一方のパッケージカスタマイズ、既存システムの導入では、少なからず妥協が必要。業務手順の見直しを迫られる、あるいはアイデアの実現すらできないことも考えられます。
将来的な拡張への柔軟な対応が可能
将来的な機能拡張などに柔軟に対応できることも、スクラッチ開発のメリットです。例えば、アジャイル型開発モデルに代表されるように、ユーザーの反応を見ながら機能を追加し、プロダクトの成長を促していくなどが当てはまります。
SaaSなどの既存サービスでは、こうした対応は困難。パッケージ開発なら対応できる場合もありますが、カスタマイズの程度によってはスクラッチ開発よりも総額が高くなるケースもあります。
セキュリティを確保しやすい
構築したシステムを自社でコントロールできるスクラッチ開発は、セキュリティを確保しやすいメリットもあります。パッケージ / サービスの制限やオプションに縛られることなく、自由にセキュリティ対策を講じられるからです。
ただし、自由度の高さは、反面として「自社管理を徹底しなければならない」ことも覚えておきましょう。これはセキュリティ面だけでなく、システム開発時にも同じことがいえます。
スクラッチ開発を選択すべきプロジェクト
クラッチ開発が重要な選択肢の1つである理由、メリットを見てもお分かりのように、スクラッチ開発はすべてのプロジェクトにフィットするわけではありません。では、スクラッチ開発がおすすめなのは、どのようなプロジェクトなのか?いくつかの例を挙げてみましょう。
- 前例のないサービス、システムの開発プロジェクト
- 既存システム / サービスでは実現の難しい開発プロジェクト
- 独自性の高いビジネスモデル / 業務フローのIT化プロジェクト
- 公共性の高いシステム / インフラ整備プロジェクト
【まとめ】時代遅れでもスクラッチ開発は選択肢の1つである理由を紹介しました
DX時代に向けたIT化推進は急務。しかし、システムのスクラッチ開発は時代遅れだと聞いている。それは本当なのか?そんな疑問を抱えるIT担当者の方に向け、スクラッチ開発が時代遅れだといわれている理由、それでも重要な選択肢の1つであり続けるスクラッチ開発のメリットを解説してきました。
開発コスト・期間や成功率など、リスクの低くないスクラッチ開発ですが、決して時代遅れというわけではありません。むしろ重要なことは、開発手法や調達手法を優先するのではなく、プロジェクトを成功させるためのベストな方法はなにかを考えることです。
なお、システム開発会社の探し方・選び方がわからない!という方はシステム幹事にお気軽にご相談ください。貴社の目的・予算にあった最適な会社を厳選してご紹介します。相談料・会社紹介料などは無料です。
この記事を書いた人
梓澤 昌敏
専門分野: 音楽・映像制作、オウンドメディア、ビジネス
音楽・映像制作の現場を経て、スタジオ構築側の業界へ。マネージャー・コンサルタントとして制作現場の構築に携わる一方、自社オウンドメディアの立ち上げを含むマーケティングも担当してきました。現在アメリカ在住。作曲を含む音楽制作も提供しています。
このライターの記事一覧