DDD
DDD é focado em criar soluções e resolver problemas de forma estruturada.
Normalmente tendemos a começar a codar antes de analisar como solucionar o problema, pegando o contexto por cima, o que pode vir a gerar débitos técnicos e tornar o código mais complexo de dar manutenção.
Isso normalmente gera alguns problemas bem conhecidos dentro dos projetos:
- Falta de clareza nos objetivos - Dependendo de com quem esteja discutindo a solução, as necessidades podem divergir e isso se torna um problema ao longo do tempo.
- Scope Creep - O escopo troca sempre, sem controle.
- Expectativas irreais
- Recursos limitados
- Falha na comunicação
- Atraso nas entregas
- Falta de transparência
O que é domínio?
É o negócio em si, o motivo da empresa existir e estar atuando no mercado. Como exemplo podemos ter uma escola que o domínio seria educação, um streaming que o domínio seria fornecer vídeos, etc.
O que é um subdomínio principal?
É o seu foco principal, o que te diferencia de outros concorrentes no mercado e normalmente possui uma lógica complexa associada. Como exemplo temos no caso da Alura que é fornecer pelo preço de 1 assinatura milhares de cursos, ou a Netflix que te fornece um sistema de recomendação de séries único).
Esse domínio principal pode se alterar com base em quem está analisando, exemplo, o streaming da Netflix pode usar uma tecnologia única que torna a experiência do usuário muito mais veloz, mas para o usuário final não seria um fator principal. Ou seja, quando fizéssemos as entrevistas teríamos conflito entre essas visões.
O que é um subdomínio genérico?
São processos que são comuns no mercado e a todas (ou quase todas as empresas), por exemplo sistema de folha de ponto, sistema de pagamento, funções de autenticação, etc. Sua lógica pode ser complexa ou simples, tudo depende do tipo de subdomínio genérico.
O negócio não será impactado caso tenha algum problema nesse subdomínio (ex- se o programa da folha de ponto para de funcionar, você pode ainda assim fazer em uma planilha sem impacto ao negócio).
O que é um subdomínio de suporte?
Complementa o subdomínio principal da empresa, não fornece nenhuma vantagem estratégica para o negócio. Pode haver problemas para a empresa caso esse subdomínio seja afetado.
Um exemplo disso seria a equipe de marketing de uma escola, se eles não conseguirem atingir leads e fazer com que a escola seja notada, mesmo com o melhor ensino sendo entregue como um dos subdomínios principais o negócio ainda será impactado caso tenha um problema.
O que são domain experts?
Pessoas que sabem sobre todos os processos e coisas que acontecem na sua área, em uma empresa (ex escola) podem haver diversos Domain Experts, cada um focado em sua área.
Você pode chamar pessoas de outras áreas quando estiver entrevistando Domain Experts, mas eles devem ser tratados como auxiliares caso não sejam experts na área que você está analisando.
Sempre bom entender que os domain experts normalmente não vão possuir os processos mega detalhados, eles provavelmente só executam no automático a anos e cabe a pessoa entrevistando estruturar esses pontos.