O poder de um desenho!

Em um mundo cada vez mais dinâmico, comunicar-se é a chave para solução de muitos problemas. Para nós, que trabalhamos com desenvolvimento e soluções de software não é diferente!

Se voltarmos alguns anos, os papéis dos envolvidos em um desenvolvimento de software era um pouco mais definido, ou seja, o desenvolvedor "desenvolvia", o arquiteto de software "desenhava / arquitetava soluções" junto com o time e por ai vai...

Mas hoje, percebo que o nós estamos cada vez mais generalistas quando falamos em desenvolvimento de software!

É muito raro encontrar alguém que saiba somente uma linguagem de programação [ou framework] ou que precise desenvolver somente em uma única linguagem de programação em todo seu período dentro de uma empresa.

Vejo também que esta ficando cada vez mais necessário que os desenvolvedores desenhem e arquitetem suas soluções. Com a pandemia isso ficou ainda mais evidente, temos inúmeras reuniões, na qual precisamos ser objetivos na comunicação e nas idéias apresentadas!

Particularmente, acredito que todos os envolvidos no desenvolvimento de alguma solução, seja ela backend ou frontend, deve-se desenhar soluções arquiteturais.

Mas como podemos fazer isso? Primeiro é legal frisar que arquitetura de software é muito mais que um desenho, estamos falando aqui com o foco em se comunicar, de como podemos trazer clareza nas nossas idéias e soluções arquiteturais.

Sendo assim, gostaria de listar alguns pontos relevantes quando houver discussão de um problema ou criar um desenho arquitetural:

1 - Em todas reuniões onde o tema é discutir uma possível solução, é sempre interessante trazer um pré-desenho arquitetural de sua idéia, isso facilita muito na discussão e no entendimento visual de todos, gerando uma boa comunicação.

2 - Não necessariamente deve-se utilizar padrões na hora de desenhar algo, isso vai muito do gosto de cada um, eu prefiro muito mais algo "objetivo, claro e macro" do que uma grande modelagem UML.

3 - Utilize sempre formas que exemplifique o que você realmente está falando, por exemplo, se sua solução arquitetural utiliza o DynamoDB, então coloque o ícone que represente o mesmo.

4 - Sempre coloque legenda em seu desenho arquitetural, isso pode eliminar um monte de perguntas ou entendimento errado do que realmente está ali!

Existe alguma ferramenta boa e quase gratuita para isso? Sim! Eu estou gostando muito do draw.io, que é gratuito. Também existe o Lucidchart que é ótimo, porem é pago!

Existe um ótimo livro que eu recomendo a todos que desenvolvem, chama-se "Arquitetura Limpa" do Robert Martin (Uncle Bob).

Neste livro você certamente vai aprender muito mais que desenhar, mas terá muitas dicas e aprendizados com certeza vai deixar seus desenhos arquiteturais muito melhores!

É isso, espero ter ajudado de alguma forma!