Entendendo a “complexidade do domínio”
Estudar DDD me levou a pensar mais sobre as complexidades de desenvolver e manter software. Junto com isso, surgiu a necessidade de aplicar algum tipo de classificação aos problemas que ajudo a resolver. Nisso, passei a utilizar três grupos principais de complexidades:
- Complexidades da solução técnica, diretamente relacionadas com as escolhas das técnicas e tecnologias empregadas para o desenvolvimento de uma solução em software. Por exemplo, a decisão sobre que frameworks utilizar, utilizar um provedor de nuvem ou on-premises, etc;
- Complexidades do legado, que nascem na base de software já desenvolvida e em produção que precisa ser mantida, pelo menos por um tempo, para continuar atendendo os objetivos do negócio. Delas são derivadas muitas das restrições que frequentemente dificultam a evolução das soluções;
- Complexidades do domínio, relacionadas especificamente a natureza do problema que desejamos resolver utilizando o software. Uma complexidade do domínio não será reduzida pelo talento do desenvolvedor – a realização de cirurgias no cerebrais, por exemplo, não ficará menos complexa, independente do talento do time de desenvolvimento. No máximo, a complexidade será mitigada, jamais eliminada.
A importância de interagir BEM com especialistas de domínio
Pessoas de tecnologia têm facilidade e familiaridade natural com aspectos relacionados as complexidades da solução técnica e do legado. Entretanto tem muito menos facilidade com a complexidade do domínio. Isso justifica o envolvimento dos especialistas de domínio.
Um especialista de domínio é alguém com profundo conhecimento do problema de negócio que se está tentando resolver e que consegue ajudar o time técnico a entender o que precisa ser feito, gerando resultados mais efetivos.
Frequentemente, a comunicação entre especialistas de domínio e times técnicos não é das mais fáceis. A causa disso é que o vocabulário das partes é diferente. Afinal, gente de tecnologia está mais ambientada com expressões tecnológicas e especialistas do negócio são mais íntimos de termos do negócio. Quando não há cuidado, ninguém se entende.
Linguagem onipresente
O caminho para contornar as dificuldades de comunicação entre os times de tecnologia e os especialistas de domínio está em explicitar uma linguagem onipresente.
Hoje, quando se fala em DDD, parece ser natural ouvir desenvolvedores dando ênfase demasiada a entidades, objetos de valor, agregados, repositórios, especificações, etc. Por outro lado, é muito menos comum acompanhar discussões sobre alternativas reais para converter descrições feitas pelos especialistas de negócio, usando a linguagem onipresente, em código. O resultado são soluções anêmicas e rebuscadas que destroem valor no lugar de gerar.
DDD do jeito certo?
Esse é o início de uma longa jornada…
Nesse livro vamos buscar restaurar a essência de DDD. Vamos explorar formas efetivas de, verdadeiramente, utilizar a linguagem onipresente no código, que é o lugar onde os desenvolvedores realmente se importam.
De maneira consistente, vamos verificar como os padrões propostos por DDD ajudam a fazer com que a lógica do domínio, expressa pelos especialistas, esteja presente de maneira expressiva no design das soluções desenvolvidas.
// TODO
- Reflita sobre sua experiência com DDD, caso tenha. Você deu ênfase às complexidades de domínio?
- Como tem sido sua experiência lidando com especialistas de domínio? Eles tem envolvimento direto com seu time?
Não seria “Quanto” ao invés de “Quando” no início do parágrafo?
Após procurar por vários meses “cursos” sobre DDD que não me ensina-se apenas código, tinha deixado o estudo do DDD de lado… más com seus vídeos estou conseguindo aprender a essência e mais que isso aprender o porque e quando utilizar …. Obrigado
Sou estagiária de TI, e a pedido do líder da minha equipe, estou estudando DDD para ingressar no meu primeiro projeto. É incrível logo de cara já ter contato com DDD, mesmo que ainda de forma bem iniciante. Estou achando fantástico e acredito que será muito importante para mim já começar construir meu caminho profissional com essa visão.
Assisti todo os vídeos e iniciando a leitura desse conteúdo incrível… com certeza, mais disruptivo sairei… vlw Elemar e equipe Eximia.Co