El término de fábrica de software fue introducido por primera vez a finales de los sesentas por R. W. Bremer de General Electric y M.D. McIlroy de AT&T en 1968. La diferencia en los enfoques de cada uno se pueden sumarias así: Bremer enfatiza el uso de herramientas y controles estandarizados, mientras que McIlroy, se enfoca en la reutilización sistemática de código para crear nuevos sistemas de software.
La adopción de estos enfoques fue implementada por primera vez por Hitachi, usando el termino ‘kojo’ (traducción del japonés como fábrica o trabajos) para etiquetar a una instalación de desarrollo de software en 1969.
Una fábrica de software se dedica al diseño y desarrollo de una aplicación, solución web o de escritorio, que apoya en los diferentes pasos para diagramarla, crearla, documentarla y dejarla en producción en los servidores del cliente.
La fábrica aplica técnicas de manufactura para el desarrollo de software para reproducir los beneficios de la manufactura tradicional (componentes estandarizados, conocimientos especializados de programación, procesamiento en paralelo y un nivel predecible de calidad).
Una fábrica de software ofrece los conocimientos técnicos, metodologías de desarrollo ágil y de implementación que permitan una rápida adquisición de la herramienta, con el fin de solucionar y apoyar la automatización de procesos administrativos o de información, así como la reportería que se defina. Además, de buscar las tecnologías vanguardistas que permitan un rendimiento de la herramienta amigable y eficaz.
El software se construye principalmente ensamblando diferentes componentes preconstruídos.
Hoy en día muchas empresas están transformando sus departamentos de desarrollo en fábricas de software internas, o subcontratándolas. Esto ha llevado a reducción dramática de costos y a mejorar los tiempos de puesta en producción de productos.