フルスクラッチ【totally from scratch】
フルスクラッチとは?

システムやソフトウェアの開発において、何らかの形ですでに存在するコードやアプリケーションなどを土台とせずに開発することを「スクラッチ開発」というが、まったく何も流用せずに完全にゼロから作り上げることを強調したいときに「フルスクラッチ」という表現を用いる。
この方式では、業務要件や運用条件に合わせて機能を自由に設計できるため、既存製品では対応しにくい特殊な処理や独自の画面構成を実装しやすい。内部構造やデータ形式も任意に定義できるため、既存システムとの連携や拡張方針に合わせた柔軟な設計が可能となる。一方で、開発範囲が広がるため、仕様整理や設計作業の負担が大きくなりやすい。
プログラムのほぼすべてを新規に作成するため、開発期間が長期化しやすく、コストも増大する傾向がある。既存の実績ある部品や製品を利用しない場合、不具合の検出や性能調整を個別に行う必要も生じる。仕様変更が発生すると影響範囲が広がることがあり、設計段階での検討の精度が開発効率に大きく影響する。
フルスクラッチ開発は、業務システムや組み込みソフトウェアなどで、既製品では要件を満たせない場合に採用されることが多い。特定企業の業務手順に密接に合わせた管理システムや、ハードウェア制御を伴う専用ソフトウェアなどでは、既存パッケージの適用や改修による対応が難しいことがある。このような状況では、すべて最初から作り込むフルスクラッチが選択されることになる。
なお、どの程度独自開発したものをフルスクラッチであるとするかは分野やシステムの種類、話者の意図などにより異なり、「パッケージ製品のカスタマイズではない」という意味、「稼働中の現行バージョンや旧バージョンのコードを再利用せず、すべて書き直している」という意味、「開発を支援するフレームワークやテンプレート(雛形)、ライブラリ、モジュールなどの部品や半完成品を一切使わない」という意味などがある。