業務システムを構築していると、スクラッチとパッケージという言葉を聞きますよね。今回はその二つの違いや、メリット・デメリットを紹介します。
- 業務システムにはどんな形態があるの?
- スクラッチとパッケージどっちが良いの?
- スクラッチとパッケージの違いは?
という疑問に関して解答となるような記事となっております。
私は5年間IT系コンサルティングファームで、業務システムを構築しておりました。
そんな私の考える「スクラッチ」と「パッケージ」でのシステム構築について、詳細部分まで紹介できればと思ってます。
この記事は以下の構成となっています。
- スクラッチとパッケージ開発について
- スクラッチのメリット、デメリット
- スクラッチとパッケージのどちらを担当した方がよい?
約5分ほどで読めるので、システムエンジニアやITコンサルタントの人はぜひ一読を!
リンクで飛べる目次
スクラッチ開発、パッケージ開発の特徴
まずはじめにそれぞれの開発方法の特徴を紹介します。
スクラッチ開発の特徴について
スクラッチ開発は、「特定の雛形を使わずに一からシステムを開発すること」です。
したがってプログラマーを大量に雇い、既存システムにはないものを作り上げる必要があります。
競合があまりいない分野の業界で用いられることが多いです。
パッケージ開発の特徴
パッケージ開発はもともとパッケージのソフトがあり、それを業務に合わせて一部改変して導入することになります。
パッケージ開発はプログラマーよりも、設計者や業務理解者が必要になります。
パラメータの一部を変更することだけで、導入出来たりする点もパッケージ開発のひとつの特徴です。
スクラッチ開発のメリットとデメリット
スクラッチ開発のメリットとデメリットを紹介していきます。まずは、メリットを紹介します。
スクラッチ開発のメリット
スクラッチ開発のメリットは以下の通りです。
- 業務にぴったりのシステムを作ることが可能
- ソフトウェアに依存しない
- 他のシステムとも連携しやすい
順番に説明していきますね。
業務にぴったり合うシステムを作ることが可能
全て手作りのため、業務にぴったり合うシステムを作ることが可能です。
例えば、水道や鉄道などひとつの会社がほとんどシェアを占めている場合、スクラッチで業務に合わせて作ることが多いです。
業務に合わせてシステムを作ることで、社員の教育が必要ないのが嬉しい点ですよね。
ソフトウェアに依存しない
パッケージを投入した場合、そのソフトウェアを中心に物事を考える必要があります。
そのためソフトウェアに依存した社内システムが、出来上がってしまうのです。そうすると他の業務システムを導入する場合に、整合性を保つ作業が発生してしまいます。
スクラッチの場合は、接続する部分だけ回収を加えてあげれば良いです。しかも手作りなので改修ポイントが見えやすく、変えることも内部調整だけで完了しますよね!
他のシステムとも連携しやすい
スクラッチの場合、他のシステムに合わせることができます。片方がパッケージだったとしてもスクラッチ側で合わせることが可能です。
そのためスクラッチを一部導入している企業も多いのです。
例えば、現場で使うアプリがiOSの場合それに合うIFを基幹システム側で作るのか、それともiOS側で調整するのか迷いますよね。
スクラッチで基幹システムを構築している場合、どちらでも対応可能になるのです。
スクラッチ開発のデメリット
スクラッチでシステムを作ることによるデメリットを紹介します。
- 長期間の開発期間が必要
- 全て手作りなのでお金がかかる
- 作ったベンダーに保守運用依存する
順番に説明していきますね。
長期間の開発期間が必要
全て手組みのため、開発基幹が長くなります。
人集めから始まり、「予算」や「計画」など、システムを作り出す前の部分から多くの時間を割くことになります。
またアーキテクチャ設計やハードの選定など、スクラッチには色々な部分に変数が転がっています。設計やコーディングフェーズも、パッケージ導入PJに比べると、とても長くなるでしょう。
単純に一からつくる場合の量が、そのまま期間に反映されるのです。
全て手作りなのでお金がかかる
期間と同じ理由で人の数も多くなるので、その分大きなお金がかかります。
人と時間がスクラッチの場合は、かかると考えておきましょう。
作ったベンダーに保守運用が依存する
保守や運用を自社で引き取るのは難しく、そのままベンダーに保守と運用をお願いするパターンがとても多いです。
そのため保守運用でも、お金がかかってしまいます。
パッケージのメリットとデメリットはスクラッチと逆だと考えて貰えば良いでしょう。
そのため、パッケージ側のメリットは割愛します。
スクラッチとパッケージのどちらを担当した方がよい?
「スクラッチ」と「パッケージ」のどちらを担当した方が良いでしょうか?
基準をどこに置くかという点が異なるので、市場価値が向上しやすいのは?という切り口から見ていければと思います。
スクラッチ開発の場合評価が上がりやすいのは、プログラマー?
スクラッチ開発では、プログラマーの評価が上がりやすいです。パッケージ開発のプログラマーはシステムの一部しか、開発することができません。
それに比べて全て手組みのスクラッチは、担当範囲も広く、深いです。
プログラマーの場合は、スクラッチ開発をして市場価値向上を狙いましょう!
パッケージ開発の場合はコンサルタントが良いでしょう!
パッケージ開発は、コンサルタントが重要な役割となります。
クライアントの業務を理解し設計しないとパッケージに合わなくなってしまうからです。業務を整理する能力がつくパッケージ開発はコンサルタントとして携わりたいですね。
→ITコンサルタントを目指すなら、パッケージ導入PJへ!
スクラッチ開発とパッケージ導入の特徴とメリット、デメリットを紹介のまとめ
業務システムで、主流の開発形態を説明しました。
それぞれメリットやデメリットがあるので、一概にどちらが良いというわけではありません。
個人が「どちらに携わりたいか」という点でも、市場価値という切り口から紹介しました。自分のキャリアに、どちらが役立つのか判断してPJに入りたいですね。
業務設計やパッケージそのものを理解したい場合は、パッケージ開発。
システムを理解したい、ソースコードを読めるようになりたい場合はパッケージがおすすめです。(システム構築は同じなので被っている部分も多いですが。)
業務システムのことを、学びたいなら以下の本がおすすめ!