Eu trabalho para uma empresa para a qual o domínio é realmente difícil de entender porque é de alta tecnologia em eletrônica, mas isso é aplicável a qualquer desenvolvimento de software em um domínio complexo.
O aplicativo em que trabalho exibe muitas informações, gráficos e métricas difíceis de entender sem experiência no domínio. O desenvolvedor usa uma especificação para descrever o que o software deve fazer, como especificar que um gráfico específico deve exibir esse tipo de métrica e essa métrica é a seguinte fórmula aritmética.
Dessa forma, o desenvolvedor realmente não entende o negócio e o que / por que ele está realizando essa tarefa. Isso pode ser bom se a especificação for realmente detalhada, mas quando não for ou quando o autor esquecer um caso de uso, é muito difícil para o desenvolvedor encontrar uma solução.
Por outro lado, o treinamento de todos os desenvolvedores em todos os aspectos do negócio pode ser muito longo e difícil.
Deveríamos dar mais importância à especificação detalhada (mas, como sabemos, não existe uma especificação perfeita) ou devemos treinar todos os desenvolvedores para entender o domínio comercial?
EDIT: lembre-se de sua resposta de que a empresa poderia usar desenvolvedores externos e que uma formação para todo o domínio pode demorar cerca de 2 semanas