Opção de poder substituir partes do software (inclusive em tempo de execução) Desenvolvimento em paralelo Facilidade de manutenção Testabilidade
agente de composição (Composition Root) para subir a aplicação O Composition Root sabe registrar as dependências e resolvê-las, quando solicitadas (Register->Resolve->Release) Pode ser facilitada por um DI Container
aqui mostrados nos seus projetos (não são difíceis) Preocupe-se com a arquitetura do software. Crie softwares mais flexíveis e de melhor manutenibilidade Pare de se descabelar com software ruim e de gastar tempo e dinheiro (seu e da empresa onde trabalha)