Trabalhei por muitos anos em uma empresa de distribuição de alimentos, a equipe chegou a ter quase uma dezena de programadores.
Todas as grandes empresas tem processos que precisam de alguma automatização, processamento ou integração com outros sistemas. Por mais que a empresa já possua algum ERP, é muito difícil que este atenda todas as necessidades da empresa.
Se a empresa é pequena, é mais comum que essas demandas sejam terceirizadas, mas para grandes empresas é mais fácil, mais barato e menos burocrático manter um time de desenvolvimento.
Além disso, a maior parte dos projetos de software dentro das empresas não tem um "fim" especificamente, esses sistemas devem evoluir juntamente com os processos da empresa. E manter um software funcionando é bem mais complicado do que a criação dele.