Share
アプリケーションやソフトウェア開発の手法として「スクラッチ開発」があります。
スクラッチ開発は従来のソフトウェア開発方法で、要件定義から設計、実装、テストとリリースまでに多くの工数と費用がかかります。
そのため、開発を効率化するために、よく使われる機能をあらかじめパッケージ化し、再利用できるようにした「パッケージ開発」という選択肢もあります。
「スクラッチ開発は時代遅れだ」という意見もありますが、「パッケージ開発」にもデメリットがあります。
ところで「スクラッチ開発」とはそもそもどんな開発方法なのでしょうか。
そこで、開発の見積もりを考慮する際に、広い視野で見てどちらがメリットを出せるかをしっかり判断したいと思います。
本記事では以下のポイントについてわかりやすく解説します。
アプリ開発、システム開発をご検討の際に参考にしていただければ幸いです。
→ Rabiloo(ラビロー)に今すぐ開発の見積もりを依頼する
スクラッチ開発とは、何もないゼロの状態からオーダーメイドでオリジナルの新しいシステムやアプリを開発していく方法です。「手組み開発」と言い換えることもできます。
従来のシステム・アプリ開発は基本的にスクラッチ開発で行われています。
しかし、記事の冒頭で述べたように、スクラッチ開発は完成までに多くの工数とコストがかかります。
そのため、もっと効率の良い開発プロセスが必要になりました。
スクラッチ開発の対義語としてよく引き合いに出されるのは、「パッケージ開発」や「SaaS(サース)」です。パッケージ開発とは、よく使われる汎用的な機能があらかじめパッケージ化された業務システムやソフトウェアを、自社の要件に合わせてカスタマイズ実装する開発方法です。
スクラッチ開発は、パッケージの機能では要件が満たせないような案件、カスタマイズでは機能追加が難しい独自性の強いシステムやアプリを開発する際に利用されます。
▶SaaSとは何?IaaSとPaaSの違いを噛み砕いてわかりやすく解説!
スクラッチ開発のことを「フルスクラッチ開発」ということもあります。
「フルスクラッチ」と「スクラッチ」に大きな意味の違いはありません。しかし「フルスクラッチで開発する」の文脈では、全くのゼロの状態から作り上げることを強調したいというニュアンスが含まれています。
スクラッチ開発の中には、開発チームが過去に開発した技術やライブラリーを再利用して、現在開発中の案件に応用することがよくあります。その場合は厳密に言うと「全くのゼロ」からではないので「フルスクラッチ」ではないかもしれません。
スクラッチ開発(Scratch Development)のもともとの意味は、英語の From scratch(=何もないところから、ゼロから)から来ています。
英語の "Scratch"には「引っ掻く」という意味がありますが、もともとScratchとはレースのスタートラインのことで、「地面を引っ掻いてラインを書いた」ことに由来しています。
そのようにすべてのランナーがスタートラインに立ち、そこからスタートすることから "From scratch"は「何もないところから、ゼロから始める」という意味で使われるようになりました。
こうして、ソフトウェア開発における「スクラッチ開発」という用語は「1から開発していく」という意味で使われています。
スクラッチ開発とパッケージ開発の違いは、服で例えるなら、オーダーメイドか既製品かの違いです。
オーダーメイドの服は、自分のサイズにぴったりなもの、好きなデザイン、こだわりのものが手に入れられます。しかしその分、既製品より値段が高くなり、注文から完成までに時間がかかります。
一方、既製品の服はすでに一般的な人の体型に合わせて大量生産されているため、値段も安く、その場ですぐ買うことができます。選択肢も多いので、自分の気に入ったデザインのものを選ぶことができます。しかし、特殊なデザインや規格外サイズの服が必要な場合、オーダーメイドで作るしかありません。
システムやアプリ開発もそれと同じようなイメージになります。
スクラッチ開発のデメリット(高額、開発期間がかかる)はパッケージ開発のメリット(低額、早い)と対極にあります。
またパッケージ開発のデメリット(カスタマイズの自由度が低い、独自性が出しにくい、自社業務に特化できない)はスクラッチ開発のメリット(自由度が高い、他社と差別化できる、オーダーメイドの開発)で解決することができます。
このように、スクラッチ開発とパッケージ開発のメリット・デメリットはちょうど対極の関係にあります。
スクラッチ開発はパッケージ開発と比較して、工数がかかり、金額も高くなりますが、以下のようなメリットがあります。
スクラッチ開発の一番のメリットは、自社業務のニーズを満たしたオリジナルのシステムやアプリをオーダーメイドで開発できるところです。
一方、パッケージシステムは汎用的な設計で自社業務に完全特化ではないため、必ずどこかでフィットしない部分が出てきます。
スクラッチ開発なら、自社ビジネスに特化した機能を最初から自由に設計して組み込むことができます。
顧客向けの店舗アプリや予約アプリなど、パッケージ開発では機能やデザインが他社と似たりよったりになります。
スクラッチ開発ならオリジナルのデザイン、自社独自のサービスや機能が実装でき、他社と差別化できます。
パッケージソフトウェアはそれ自体が完成された構築物なので、あとから継ぎ足しで機能を実装すると不具合の原因になります。
パッケージシステムはカスタマイズに制限があり、カスタマイズした機能はサポートの対象外になってしまいます。
一方、スクラッチ開発は拡張性が高く、最低限の機能だけでリリースし、あとから機能を追加していくといったやり方も可能です。
スクラッチ開発ならシステムやアプリを長く運用していくことができます。
当たり前のように思えますが、パッケージ開発の場合パッケージシステムを提供している会社がサポートを終了してしまう可能性もあります。
そうなってしまうと最悪の場合、システムやアプリをまた1から作り直さなければなりません。
スクラッチ開発で開発したシステムやアプリは自社の所有物になるため、リスクを気にせず長期に渡って使えます。
パッケージやSaaSの場合プランで選ぶため、業務に必要ない機能も含まれていることもあります。
スクラッチ開発なら、予算に応じて必要最低限の機能だけを実装してコストを抑えることができます。
場合によっては、トータルで見るとパッケージ開発より安くなることもあります。
運用しながら、徐々に機能を追加しバージョンアップしていくことも自由にできます。
スクラッチ開発のデメリットも把握しておきましょう。
以下のようなデメリットがあります。
スクラッチ開発は非常に多くの工数がかかり、開発費が高額になります。
案件によって幅がありますが、一般的には500万円から1000万円以上の相場感です。
さらにサーバー代や運用、保守など開発後の費用もかかります。
スクラッチ開発は、オーダーメイドで1から構築していくため完成まで時間がかかります。アプリなら導入までに半年から1年ほど、業務システムなら最低でも1年、一般的には2〜3年程度の開発期間が必要になります。
SaaSなら、契約してすぐに使い始めることができ、パッケージのアプリ作成は、早ければ1ヶ月半程度で導入することができます。
スクラッチ開発で最も重要になるのが、パートナーとなるベンダー選びです。
ここを間違うと、手戻りになり、1からやり直しという最悪の状況もあります。
見積もり費用の金額だけではなく、ベンダーの得意分野、開発したいアプリやシステムに近い開発実績があるかどうかも選定のポイントです。
担当者との相性なども見極めの重要な要素です。
パッケージ開発は効率的で、費用も抑えられ、スピード感を持って導入できるため多くの企業で採用されています。
SaaSがますます主流になっていく中で、「スクラッチ開発は時代遅れだ」と言われることもあります。
しかし、あえてスクラッチ開発を採用したほうが良い場合もあります。以下のような状況でスクラッチ開発の検討が必要になります。
自社の要件を満たしたパッケージがどうしても見つからない場合もあります。
また、業種が非常にニッチで汎用のパッケージやSaaSがそもそも提供されていないこともあります。
その場合はスクラッチで開発するしか選択肢がありません。
パッケージ開発では独自性が出せません。
例えば、自社独自の業務プロセスがあってそれがすでに大きな利益を生み出している場合、既存のパッケージを導入することによって業務を標準化してしまうなら、競争力が弱まってしまいます。
スクラッチ開発であれば、企業ごとの強みに特化したシステムを構築することができ、これは他社との差別化になります。
また、プラットフォームによるアプリ作成の場合、デザインや機能はどうしても他店舗と似かよってしまいます。フルスクラッチによる開発なら、プラットフォームではまだ取り入れていない新しい機能やデザインを先取りして、ビジネス競争において優位に立つことができます。
パッケージ開発ではカスタマイズが多くなると、結局コストや時間が掛かってしまいます。さらに、カスタマイズをするとシステムが不安定になり不具合が生じやすくなります。
場合によっては、1から開発をやり直す必要さえ生じます。
そうなってしまうと、最初からスクラッチで開発していたほうが、無駄なく予算が使え、望み通りのシステムやアプリを確実に手に入れることができます。
カスタマイズが多くなる場合は、スクラッチ開発の検討をおすすめします。
▶失敗しない パッケージシステム導入 【カスタマイズはおすすめしない】
逆にスクラッチ開発よりもパッケージ開発で進めたほうが良い案件もあります。
以下のようなケースです。
汎用的な機能で十分
スピード重視
予算が限られている
複雑化した業務をいったん標準化したい
実際、近年SaaSはほとんどあらゆる業種に対応していて、スクラッチ開発で進めるより、SaaSを探した方が早いケースもよくあります。
スクラッチ開発は、1からオーダーメイドで自由にシステムを構築できる開発方法です。
SaaSやパッケージソフトウェアの中から、自社業務プロセスにマッチしたプロダクトを見つけられない場合、スクラッチ開発を検討するフェーズかもしれません。
開発ベンダーの見積もりを取る際、ぜひオフショア企業を含められることをおすすめします。
オフショア開発とは、ベトナムやインドなどの人件費の安い海外のベンダーに開発工程をアウトソーシングする開発形態です。グローバル化が進む中で、日本企業の半数以上がオフショアを活用しています。
弊社ラビローは、ベトナムと日本に拠点を置くソフトウェア・アプリ開発企業です。日本企業の開発パートナーとして、業務システム、アプリ開発の多くの案件実績がございます。また、自社開発のパッケージソフトウェアの提供も行っております。
弊社開発チームのエンジニアはハノイ工科大学出身で、JavaやPHPを用いたウェブアプリの開発を得意としております。
システムやアプリのスクラッチ開発、リニューアル、SaaSの導入など、ITによる課題解決でお困りの企業様、お気軽にご相談ください。1営業日以内にすぐにご連絡いたします。
Share