O conceito existe desde a década de 1960. Basicamente, o objetivo das empresas que trabalham dessa forma é desenvolver aplicações ou sistemas em escala industrial. Ou seja: agilizar demandas, aumentar produtividade e diminuir prazos por meio da padronização de processos e redução da interferência humana.
Normalmente, as empresas desenvolvedoras de software que trabalham dessa maneira atendem variados perfis de clientes, pontuais ou recorrentes.
É importante diferenciar uma fábrica de software da compra de um produto pronto. É natural que a fábrica busque desenvolver sistemas com códigos já prontos e escaláveis, de forma que agiliza o processo, mas isso não interfere na padronização do software, levando em consideração a qualidade exigida.
Uma fábrica de software conta com profissionais especializados e alguns “modelos” prontos de sistemas, já que as empresas possuem processos parecidos. Assim, é possível ter códigos que são reutilizados como base para os próximos desenvolvimento.
Em resumo, é como comprar um carro. Ainda que seja possível escolher a cor e personalizar alguns itens, o modelo será como tantos outros produzidos em série.
Vale ressaltar a importância de procurar algum parceiro que acompanhe o mercado e utilize as melhores tecnologias disponíveis e garanta o uso de testes automatizados.
Em geral, uma fábrica de software realiza os serviços de: desenvolvimento de software, integração de sistemas e ferramentas, modernização de sistemas legados, desenvolvimento de aplicativos ou manutenção nos sistemas atuais.