最終更新日:2024/11/20
スクラッチ開発とは、既存のパッケージシステムなどを利用せず、自社向けのオリジナルの要件・仕様でシステム開発することです。
システムを開発する時に「スクラッチで開発するか、パッケージシステムをカスタマイズするか」は必ず検討する項目の一つです。
パッケージシステムは標準的な機能が網羅されており、比較的安価・短期間で導入しやすい上に、近年では数多くの製品が展開されていることから、検討しやすくなっています。
では、スクラッチでシステム開発することは時代遅れなのでしょうか?
スクラッチ開発の基礎知識と、パッケージシステムとの比較、スクラッチ開発が望ましい開発内容、などを詳しく解説していきます。
INDEX
1. スクラッチ開発の基礎知識
2. パッケージ開発との違い・比較
3. スクラッチ開発は時代遅れ??
4. スクラッチ開発のメリット・デメリット
5. スクラッチ開発の進め方
6. スクラッチ開発が望ましい開発とは?
7. まとめ
スクラッチ開発の基礎知識
スクラッチ開発とは?
スクラッチ開発とは、パッケージシステムなどを利用せず、自社向けのオリジナルのシステムを開発することです。雛形などを一切使用せず、何も流用しない状態で始めるスクラッチ開発をフルスクラッチ、過去のシステムを流用して開発することをセミスクラッチと呼ぶこともあります。
要件やオーダーに合わせて1から開発するので、自社の業務フローやルール・条件などにフィットしたシステムを作ることができます。
社内で開発を行う場合は、機能追加・回収や保守・運用などを行え、長く使い続けられるシステムとなります。
外部に開発を依頼する際には、著作権の譲渡を契約書に記載しておくことで、開発システムの著作権を自社で持つことができます。
他社のシステムやサポートに依存しない体制を整えておけば、開発会社の倒産によって利用できなくなるといったこともありません。
スクラッチ開発で作られたJRのシステム「マルス」
JRのオンラインシステム「マルス」は指定席券をはじめとした乗車券や企画券などの座席管理や発行処理、精算業務を行う巨大なシステムです。乗車券や座席指定券の販売のため開発されましたが、航空券を取り扱ったこともあるのだとか。
1956年に構想が練られ、「旅客が要求してから指定席券が渡されるまで30秒」という目的で設計されたマルスは、情報処理学会によって2009年に「情報処理技術遺産」として認定されました。
パッケージ開発との違い・比較
パッケージとは既製品として完成・販売・利用されているシステムです。
この汎用的に利用できるパッケージシステムをベースに、部分的に改修する形で開発を行うことを「パッケージ開発」と言います。
スクラッチ開発 | パッケージ導入 | |
---|---|---|
導入・開発概要 | 要件に合わせたシステム開発を1から行う。 | 要件に合ったパッケージを選定、導入する。 |
拡張性 | 自社のビジネスモデルにフィットした開発を行うため、拡張性を見越して構築し、末長く利用できるシステムを作ることが可能。 | パッケージ機能の制約があるため、拡張の自由度は低い。 |
コスト | パッケージと比較するとコストは割高。 ※コストを抑えるため、必要な機能に絞った実装は可能。 |
要件に合ったパッケージ内容であればあるほど、オプション不要でコストは抑えられる。 |
管理部門・ 現場の負荷 |
仕様を確定するまでの負荷が高い傾向にある。 | 仕様確定の負荷は少ないが、自社の業務をシステムに合わせて変更するなどの負荷がかかる。 |
その他 | 自社の業務にフィットしたシステムを構築できるため、業務の手順などを変更することが少なく、比較的スムーズに導入が進む。 | パッケージに業務を合わせるため、業務の手順変更や研修などが必要となる。 |
スクラッチシステムとパッケージシステムの違いはよく、フルオーダーのスーツと既製品のスーツの違いに例えられます。
フルオーダー開発と既製品の違い
フルオーダーのスーツは自分の体に合わせて好きな生地で1から作ることができるため、シルエットやフィット感に優れた自分好みの1着となりますが、その分納期がかかり、高価格になってしまいます。スクラッチシステムもこれと同様に、1からオリジナルのシステムを作ることができますが、その分納期は長く、価格も高くなります。
吊るしとも呼ばれる既製品のスーツでも丈などをある程度詰めることはできますが、基本的には店舗にあるものをベースに多少のカスタマイズを加える程度です。パッケージシステムもこれと同様で、基本的な内容は決まっており、カスタマイズの柔軟性は低いですが、その分納期も短く安価で済みます。
スクラッチシステムとパッケージシステムの違いは下記の記事も参考になります。メリットやデメリットについてなど、詳しく解説していますのでより理解を深めたい方はこちらもご一読ください。
* 参考記事:「パッケージシステムとは?スクラッチ開発との比較」
スクラッチ開発は時代遅れ??
スクラッチ開発は自社にフィットしたシステムを作ることのできる非常に優れた開発手法ですが、近年、市場の動きが活発化し、プログラミングの知識なく開発が可能なノーコード開発や、気軽に開発を開始できるクラウド開発など、スピード感をもった開発手法が台頭してきました。そのため、それらに比較して時間のかかるスクラッチ開発は時代遅れと言われることもあります。
ですが、前述したJRの「マルス」が1956年の構想からさまざまな進化を遂げて今も使われているように、自社のビジネスモデルにフィットしたシステムを開発することができれば、使い捨てではなく末長く使えるシステムを作ることができます。
用途や要望、予算や納期など、さまざまな要素に合わせて多くの開発手法から適切なものを選択する、というのが現代において最も効率的な開発と言えるのではないでしょうか。
ノーコード開発については下記の記事が参考になります。
* 参考記事:「ノーコード(NoCode)を解説|今後のIT開発はどう変わる?」
スクラッチ開発のメリット・デメリット
スクラッチ開発のメリット
すでに述べたとおり、スクラッチ開発の最も大きなメリットは、自社のビジネスに合った仕様で開発できるため、末長く利用できるシステムを作ることが可能であるという点です。
自社向けに1から開発するため、管理部門や現場の負荷も少なく、導入がスムーズにいく点も大きなメリットでしょう。
スクラッチ開発のデメリット
スクラッチ開発のデメリットは、自社にフィットしたシステムを1から作るため、どうしても時間とコストがかかることです。
また、1から作るということで要件定義にも時間がかかってしまうのもデメリットの一つと言えるかもしれません。
スクラッチ開発の進め方
スクラッチ開発について理解できたところで、実際の進め方についても知っておきましょう。システム開発の進め方には大きく分けて「ウォーターフォール開発」と「アジャイル開発」の2種類があります。
ウォーターフォール開発
開発手法として最も基本的で、また最も古くからある手法がこの「ウォーターフォール開発」です。「ウォーターフォール型」「ウォーターフォールタイプ」とも呼ばれます。
ウォーターフォールとは滝を意味する言葉であり、滝が流れるように上から下へ、工程順に開発を進めていく手法です。大きく分けて下記のような流れになります。
基本計画・要求仕様の確認
↓
外部設計(要求仕様に合わせてUIなどを設計)
↓
内部設計(外部設計に合わせて必要な機能やプログラムを設計)
↓
プログラム設計(内部設計に合わせてタスクをさらに分割し、プログラム仕様書を作成)
↓
開発(プログラミング)
↓
テスト(タスクごと、複数のタスクごと、システム全体のテスト)
↓
運用(運用開始)
工程ごとに管理できるためスケジュールが立てやすく進捗管理もしやすいのがメリットですが、一つの工程を終えてから次の工程に進むため、納期が長くなりがちなのがデメリットです。
アジャイル開発
アジャイルとは俊敏を意味する言葉であり、スピード感に重きを置いた開発手法です。大まかな仕様が決定したら小さな単位ごとに開発を進め、設計から実装、テストを繰り返して完成へと向かう開発手法です。
小さな単位ごとに設計、実装、テストまでを何度も繰り返すため、反復型やプロトタイプ型という呼ばれ方をすることも。
アジャイル開発の最大のメリットは柔軟さです。小さな単位で開発を行うため、仕様変更にも俊敏に対応することができます。デメリットは全体の開発に必要なリソースや正確な時間を把握することが難しいことです。
スクラッチ開発が望ましい開発とは?
では、スクラッチ開発にはどのような業務が向いているのでしょうか。スクラッチ開発を行うことが望ましい要件について解説します。
コア業務とノンコア業務
コア業務とは企業活動の根幹にかかわる業務のことを言い、ノンコア業務とはコア業務をサポートするための定型的な業務を指します。
ノンコア業務は定型的で、企業によって大きな差はないものがほとんどであるため、機能も多彩で定型業務に向いているパッケージシステムを利用すると良いでしょう。
対して、コア業務にはスクラッチ開発が向いていることが多いです。特に独自性の高い事業内容や、オリジナル志向を持つ企業には、パッケージシステムでは機能が足りなかったり、逆に不要な機能が多くあり、無駄になってしまうということも。
・既存のパッケージシステムでは合うものがない
・継続的に機能追加や改修などを行っていきたい
・他のシステムとも柔軟に連携させたい
・自社の業務に合わせたシステムが欲しい
このような要望がある場合には、スクラッチ開発が適していると言えるでしょう。
まとめ
スクラッチ開発は時代遅れと言われることもありますが、末長く利用する安定したシステムを開発するのに適しており、決して時代遅れな開発方式ではありません。市場の変化が著しい今だからこそ、恒久的に利用できるしっかりしたシステムが求められることも多いでしょう。さまざまな要求や状況に応じて、多くの開発手法の中から適切なものを見つけていくことが求められます。
近年、国内のIT人材不足は深刻であり、国内の人材に開発を依頼する際のコストも高騰傾向にあります。ただでさえコストがかかるスクラッチ開発を完全に国内だけで行うと、莫大なコストがかかることになりかねません。
できるだけコストを抑えて、末長く利用でき、自社のビジネスモデルにフィットしたシステムを作ることができるスクラッチ開発を行いたい……。そういったご要望をお持ちなら、オフショア開発を選択肢の一つに含めてみてはいかがでしょうか。
オフショア開発なら経験豊富で優秀な人材への開発をローコストで依頼することができます。海外に依頼するのは不安という方も、まずはご相談ください。オフショア開発に関するご心配やご質問に無料でお答えします。