コーディングは、（製造業における職人のような）専門的技量を必要とするので、アプリケーション層ではコーディングの必要性を排除し、IDEを使う代わりに事前定義されたコンポーネント群を組み合わせることでソフトウェアを構築する。コーディングは、新たなコンポーネントやサービスを開発するときのみ必要とされる。製造業と同様、コンポーネント（部品）の開発とシステムの構築には、技術が必要である。ソフトウェアファクトリーによって得られるのは、である。
目的.
ソフトウェアファクトリーは、従来のアプリケーション開発において、似たようなアプリケーションの開発で得られた知識や資産を生かしていなかったという問題への対処である。ソフトウェアファクトリー以外にも、トレーニング、文書化、フレームワークといった対策がとられてきたが、さまざまなアプリケーション開発で得られた貴重な知識の伝達という意味では、間違いやすいプロセスでもある。
ソフトウェアファクトリーは、特定スタイルのアプリケーション開発の成果を再利用しやすいパッケージ内に統合することで、この問題に対処する。適切なソフトウェアファクトリーを使ったアプリケーション開発には、生産性や品質の向上、機能の発展性といった多くの長所がある。
コンポーネント.
個々のソフトウェアファクトリーは特定種類のアプリケーションの構築に特化しており、そのために設計された独自の資産を含む。一般に、多くのソフトウェアファクトリーは次のような相互に関連する資産を含む。
製品開発.
ソフトウェアファクトリーによる製品構築には、以下のような活動が関与する。
利点.
ソフトウェアファクトリーによるアプリケーション開発は、従来のソフトウェア開発に比べて様々な利点がある。
これらの利点は、以下に示すように関係者の立場によって異なる価値を提供する。
事業にとっての価値.