In software engineering and enterprise software architecture, a software factory is an organizational structure that specializes in producing computer software applications or software components according to specific, externally-defined end-user requirements through an assembly process. A software factory applies manufacturing techniques and principles to Software Development to mimic the benefits of traditional manufacturing. Software factories are generally involved with outsourced software creation. See also outsourcing.
Since coding requires a software engineer, (or the parallel in traditional manufacturing, a skilled craftsman) it is eliminated from the process at the application layer, the software is created by assembling predefined components instead of using traditional IDE's. See also composite application. Traditional coding, is left only for creating new components or services. Like traditional manufacturing, the engineering is left to the creation of the components and the requirements gathering for the system. A composite application is the end result of manufacturing in a software factory.