A linguagem onipresente usada por especialistas de negócios e desenvolvedores

linguagem-ubiqua

O que seria da humanidade se não compreendêssemos uns aos outros?

Certamente um eterno caos. Na vida podemos ter a certeza de duas coisas, a primeira é a certeza de que a morte está para todo ser vivo, a segunda é que uma comunicação eficaz é a base para todo e qualquer relacionamento saudável e duradouro, que vise a edificação de qualquer grande realização bem sucedida. Partindo dessa premissa, quando falamos em modelar softwares de alto desempenho, é imprescindível que haja uma comunicação eficaz e coesa entre todos envolvidos no processo de criação do software, mais especificamente entre especialistas de domínio e desenvolvedores.

Mas quem são os especialistas de domínio?

São todos os conhecedores do negócio, todos os especialistas de todas as áreas de uma determinada empresa. Desde os vendedores que estão em contato com clientes que pagarão pelo software afim de sanar suas necessidades, até os especialistas de produto que pensam a melhor maneira de atender os potenciais clientes. Em suma, são os responsáveis pela definição do que deve ser desenvolvido para atender as reais necessidades da empresa.

Então, entendendo que os especialistas de domínio estão para a definição do software como um todo assim como os desenvolvedores estão para a construção do mesmo, faz-se necessário a definição de uma linguagem comum entre os especialistas de negócios e os desenvolvedores, nos diversos contextos de uma empresa, entenda como contexto cada departamento da empresa, por exemplo: comercial, financeiro, produto, marketing, jurídico, etc… Pois dessa forma, será possível traduzir os desejos e anseios dos especialistas de domínio, em abstrações não técnicas afim de conhecer melhor o domínio de negócio de cada departamento da empresa. A definição desta linguagem capaz de mapear todos os detalhes de negócios de forma não técnica, afim de consolidar um linguajar comum compartilhado entre todos os especialistas de negócios e desenvolvedores, é o que chamamos de linguagem ubíqua, ou linguagem onipresente.

Como definir a linguagem ubíqua?

No livro implementando Domain-Driven Design de Vaughn Vernon, ele nos traz algumas dicas bem legais de como podemos trabalhar na definição de uma linguagem onipresente para os negócios os quais estivermos envolvidos.

Antes de mais nada, vale ressaltar que os artefatos criados para definir a linguagem ubíqua no início do projeto, não evoluirão na mesma proporção que o projeto de fato. Servirá apenas como a gênese para a criação da linguagem ubíqua posteriormente será expressada e evoluída no código-fonte do projeto.

Por onde começar?

1 — Desenhe o domínio de negócio e os sub-domínios da empresa, desenhe de forma não técnica, onde você consiga e outras pessoas de outras áreas consigam entender o que tal modelo visual esta expressando. Prefira comunicar o que torna tal domínio ou sub-domínio relevante em relação às responsabilidades dele para com a empresa.

2 — Crie um glossário de termos com definições simples. Liste todos os termos que fizerem sentido, incluindo os termos alternativos que inferem um significado ou mais de um. Preocupe-se também em anotar os termos que não deram certo, e o porque disto.

3 — Caso a ideia do glossário não seja conveniente para você, opte por criar documentos ricos em modelos visuais informais, capazes de expressar de forma coesa as responsabilidades de um determinado domínio, com objetivo de encontrar os termos e frases relevantes para o contexto em questão.

4 — Revise constantemente com os membros da equipe, os termos cunhado até o momento por você e os demais especialistas (técnicos e de negócios) afim de buscar pontos de vistas diferentes. Entendendo que especialistas de domínios são pessoas comuns, e elas podem ou não partilhar das mesmas opiniões.

Conclusão

A linguagem ubíqua é a base para um projeto baseado em DDD, ela é a base para conseguirmos construir nossos modelos de domínio — estratégico e tático. Além disso, a linguagem ubíqua não é uma linguagem universal, ela é unica por contexto delimitados ou por sub-domínios (assunto para o próximo post) ou departamentos da empresa. Ela cria um vocabulário coeso e que faça sentido tanto para especialistas de domínio quanto para desenvolvedores.

leitorEstaGostando() ? curtirEDarUmFeedback() : darUmFeedaback();

Valeuuuu! 🚗💨

Referência:

MEDIUM: https://medium.com/@diego_moura/domain-driven-design-linguagem-ub%C3%ADqua-f052f5eb6b18

Implementando Domain-Driven Design

Compre online Implementando Domain-Driven Design, de Vernon, Vaughn na Amazon. Frete GRÁTIS em milhares de produtos com…

www.amazon.com.br