Alura > Cursos de DevOps > Cursos de Arquitetura > Conteúdos de Arquitetura > Primeiras aulas do curso Documentação Arquitetural e Comunicação Técnica

Documentação Arquitetural e Comunicação Técnica

Documentação Arquitetural e Comunicação Técnica - Introducao

Iniciando a aula e fazendo autodescrição

Olá, turma. Vamos começar nossa aula sobre Documentação Arquitetônica e Comunicação Técnica. Este é um tema muito importante para o desenvolvimento de nossa carreira como pessoa arquiteta de soluções.

Antes de começarmos a falar exatamente sobre o curso, vou fazer minha autodescrição.

Audiodescrição: Sou um homem branco de 49 anos, com cabelo curto castanho-escuro, barba curta, olhos claros, usando óculos e vestindo uma camisa preta básica, sem detalhes.

Apresentando a disciplina e objetivos

Agora, vamos falar um pouco sobre esta disciplina específica, que é Documentação Arquitetônica e Comunicação Técnica.

O que vamos aprender?

Detalhando os objetivos de aprendizagem

Neste curso, nós vamos compreender como a arquitetura e a documentação de arquitetura são ferramentas essenciais para comunicar o que estamos fazendo, o que as pessoas arquitetas estão desenvolvendo e as soluções propostas.

Nós também vamos discutir os diferentes públicos com os quais precisamos nos comunicar em empresas de grande porte: equipe de negócios, pessoas desenvolvedoras, CIOs (diretores de TI) e executivos de nível C.

Nós vamos diferenciar a documentação útil daquela que é inútil — a que geramos e não utilizamos ou que apenas gera trabalho sem valor.

Nós vamos abordar a governança, como a documentação de arquitetura nos orienta nessa governança e quais são os erros mais comuns que, ocasionalmente, cometemos na documentação de arquitetura.

Encerrando a introdução e próximos passos

Vamos prosseguir; em seguida, detalharemos cada um desses tópicos.

Abraço!

Documentação Arquitetural e Comunicação Técnica - Entendendo sobre documentacao

Iniciando a reflexão e conectando com soluções de software

Olá, equipe. Vamos começar falando sobre documentação arquitetônica e trazer uma pergunta: por onde devemos começar?

Vamos levar o tema para a construção civil. Se queremos construir uma casa, eventualmente compramos um terreno e queremos construir, ou compramos uma casa antiga e queremos modernizá-la, por onde começamos? Iniciamos pelo projeto da casa ou começamos a obra diretamente? Sabemos que, no Brasil, costumamos iniciar a obra antes do projeto, mas por onde deveríamos começar? Se respondemos que devemos iniciar pelo projeto, acertamos. De fato, devemos começar pelo projeto.

O projeto reúne uma série de informações que nos guiam durante a obra. No projeto, descrevemos qual é o tamanho do terreno; se a pessoa cliente, ou nós, deseja uma casa com quantos dormitórios; se queremos uma área gourmet; se queremos piscina; e se há área suficiente no terreno para construir tudo o que desejamos. Às vezes compramos um terreno pequeno e queremos construir uma mansão, mas não cabe naquele espaço. Então, cogitamos construir um edifício, porém isso aumenta o custo. É isso que queremos? É isso que temos?

O mesmo se aplica a uma solução e a software (programa/sistema). Abrimos aqui um parêntese sobre software (programa/sistema): é um conceito amplamente conhecido; trata-se de um sistema. E temos uma solução quando há mais de um sistema entregando uma resposta ao negócio. Por exemplo, se temos um CRM (Gestão de Relacionamento com a Pessoa Cliente) onde realizamos a venda, um sistema de pagamentos, um sistema de faturamento e um sistema de cobranças, quando tudo isso se integra, estamos em um ecossistema; temos uma solução.

Detalhando a planta e as decisões de projeto

Para a solução, precisamos, em um projeto, da planta baixa. O que significa planta baixa? Quem contrata o arquiteto ou a pessoa engenheira para construir a casa quer visualizar como ela ficará: se haverá um jardim na frente; se a garagem comporta dois ou três carros; qual será o tamanho da frente e do fundo da casa; se a piscina ficará ao centro; se a casa ficará no centro do terreno ou encostada em um dos lados. Precisamos dessas informações para aprovar ou não aprovar, já que vamos investir dinheiro na construção da casa.

Temos o projeto elétrico, o projeto hidráulico, o projeto de concreto. Reunimos várias informações para entendermos: “Certo, é isso que queremos construir; por isso vamos fazer assim.” Se o terreno é pequeno, talvez não vamos posicionar a casa no centro do lote. Mas por que não? Porque queremos um corredor lateral para que o carro possa chegar até a parte de trás. Então, tomamos essa decisão.

Relacionando a arquitetura de solução à necessidade de especificação

O mesmo ocorre em nossa arquitetura de solução: precisamos escrever o que é necessário. Vamos imaginar que contratamos uma pessoa engenheira para construir a casa e ela diz: “Tudo bem, vamos entregar a casa, custará 200 mil reais.” Perguntamos: “Mas como será a casa?” E recebemos: “Não se preocupem, vocês vão gostar. Será funcional.” Sem as informações de que precisamos, certamente não pagaríamos sem saber previamente o que será entregue. Em arquitetura, é a mesma lógica.

Temos um terreno; temos uma casa antiga e queremos chegar à casa modernizada ou a uma casa nova. Esse conceito é o que aplicamos com o as-is (estado atual) e o to-be (estado futuro desejado). O as-is é o estado em que estamos hoje: como nossa solução funciona e atende ao negócio; é o que temos. O to-be é para onde queremos ir; qual é o objetivo. Temos um terreno vazio, mas queremos nossa casa bonita. O to-be é a documentação que descreve: “Minha casa ficará assim.” Depois de construir, pegamos a documentação e verificamos: foi dito que a garagem comportaria dois carros e não comporta; então, há algo errado. O que foi feito de forma incorreta? O cálculo? A dimensão? O que aconteceu? Nosso to-be serve para mostrar como será o resultado.

A documentação arquitetônica tem a mesma importância, na arquitetura de solução, que a documentação e os projetos têm na engenharia e na construção civil. Caso pensemos em não documentar — e às vezes surge a ideia de “não precisamos de documentação, está tudo aqui” —, vale refletir: se tudo estiver apenas na cabeça da pessoa engenheira ou da pessoa construtora, como o dono da casa, em uma futura revenda, se sentirá ao precisar perfurar uma parede sem saber por onde passam os canos ou a fiação? Da mesma forma, precisamos oferecer às pessoas clientes a mesma confiança que recebemos na construção civil.

Definindo o que é e o que não é documentação arquitetônica

Vamos adiante. O que não é documentação arquitetônica? Temos código, comentários no código, manuais, temos o Figma (ferramenta de design), diversas fontes de informação, mas que não são necessariamente documentação arquitetônica. A implementação e o uso estão explicados no código e em outros artefatos. A documentação arquitetônica entrega o contexto, a estrutura e as decisões que nos levaram por determinado caminho. No exemplo da casa, a documentação registra: qual foi o requisito? Era necessária uma casa com três dormitórios, por isso foi desenhada assim; era preciso um escritório, por isso o escritório foi incluído. A documentação arquitetônica não é “o que foi feito”, e sim “por que foi feito dessa forma”.

Agora, o que é e o que ela aporta? Pensemos na chegada a um projeto em que quem o desenvolveu não está mais presente. A solução funciona, mas com uma série de problemas: lentidão, indisponibilidade, perda de documentos, falta de comunicação entre sistemas. Quem desenvolveu não está mais lá; não há documentação em lugar algum; procuramos nos “drives (unidades de armazenamento)” e em todos os locais; não encontramos documentação; não conseguimos falar com ninguém daquela época. Concordamos que será um trabalho hercúleo entender por que funciona daquela maneira, por que recebe um arquivo e o coloca em outro diretório, qual era o contexto no momento da elaboração, que propósito tinha a solução, por que foi feita assim, se não temos nada registrado?

A documentação arquitetônica fornece a quem chega ao projeto esse contexto. Talvez as pessoas que participaram não estejam mais presentes, mas a documentação registra qual era o problema, o que a solução buscava resolver, por que determinada direção foi tomada. Pode ter havido um requisito de comunicação, uma exigência regulatória ou uma restrição de capacidade de processamento — no passado era uma, hoje é outra. Todas essas informações devem estar na documentação arquitetônica.

Detalhando componentes, contexto e benefícios da documentação

Ela mostrará quais são os componentes, como são utilizados, que softwares compõem a solução. Se eventualmente precisamos processar um sistema de faturamento e um sistema contábil, e ainda informar outra área, a documentação arquitetônica traz essas informações. Se houve um “trade-off (compensação)” com duas ou três opções de solução e adotamos uma delas — e não as outras — pelas razões A, B, C, D etc., explicamos na documentação por que não seguimos os demais caminhos. Assim, mantemos a explicação e a visão de todo o ecossistema, não apenas de um único software.

A documentação arquitetônica é o que entrega ao negócio, ao desenvolvimento e às pessoas “stakeholders (partes interessadas)” a visão de todo esse contexto de decisões, componentes e justificativas do porquê se fez assim.

Uma boa documentação é fundamental. Quando chegamos e não há documentação, enfrentamos problemas. Já desenvolvemos sem documentação e, ao revisarmos quase um ano depois, não lembrávamos por que fizemos daquela forma, por que usamos determinada rotina, por que aplicamos certa condição. Sem registrar, nem nós conseguimos resgatar os motivos.

A documentação de arquitetura reduz o esforço de transferência de conhecimento e a curva de aprendizado de quem chega para contribuir com a solução e com o contexto. A pessoa aprende mais rápido porque existe documentação. Com isso, economizamos tempo: se, sem documentação, levaríamos dois ou três meses para entender todo o contexto e ganhar segurança, com a documentação de arquitetura resolvemos em menos tempo. Também mantemos o histórico: os porquês das mudanças, por que algo foi resolvido de certa forma, qual foi o problema, e toda a complexidade do negócio — tudo isso deve estar presente na documentação.

Ilustrando com um caso prático em seguradora

Lembramos de uma experiência em que estávamos trabalhando em uma seguradora sem documentação de arquitetura. Atuávamos para uma área que não tinha documentação nem diagramas. Começamos a preparar a documentação e havia televisores no andar nos quais eram projetadas métricas — os KPIs (indicadores-chave de desempenho) da área, como o volume de contratações. Solicitamos ao time projetar ali também uma visão com um diagrama da solução, mostrando como os componentes se comunicam. Projetamos.

Em uma manhã de trabalho, a pessoa superintendente chegou, nos cumprimentou, olhou para a televisão, viu o diagrama e perguntou: “O que é isso?” Explicamos: “Estes são os componentes e como se relacionam para atender a esta área.” A pessoa respondeu: “Agora faz sentido. Entendo por que, quando pedimos algo, é tão complicado: há muitas caixas.” Respondemos: “Exato. Nosso propósito é reduzir essa complexidade.” A documentação trouxe a visão da complexidade que enfrentávamos naquela área. Às vezes, para a liderança, não fazia sentido por que uma entrega demorava tanto; ao visualizar a complexidade, veio o reconhecimento: “Agora entendemos; realmente é complexo.” A documentação de arquitetura traz esse tipo de benefício.

Esclarecendo propósito e alertando sobre excessos e desatualização

Para que serve essa documentação? O código nos dirá como algo foi implementado. Hoje existem agentes que leem o código, fazem engenharia reversa, identificam tabelas e extraem regras de negócio presentes ali. Isso é válido. Porém, mesmo a engenharia reversa e o uso de IA não informam por que se fez daquela maneira. Esse conhecimento está com quem desenvolveu. Se não for escrito, não há como saber o motivo das decisões. Quando conseguimos entender como algo foi feito e por que foi feito, podemos decidir seguir pelo caminho A ou B com muito mais segurança, pois consideramos todas as frentes.

Surge a dúvida: até quando devemos documentar? Mais documentação é melhor? Não. Esse é um erro comum — nós também já erramos bastante. Escrever mais não significa documentar melhor. Gera-se muita informação e a leitura se perde. É muito trabalho para pouco aproveitamento, e às vezes vira apenas burocracia. Existem manuais com mil páginas que ninguém lê. Dá trabalho produzir, mas ninguém consome. A documentação de arquitetura não pode ser assim.

Ela também não deve ficar desatualizada. O pior cenário em arquitetura é consultar uma documentação que não condiz com o ambiente de produção. Isso a torna inútil. Tomar uma decisão estratégica com base nessa documentação e descobrir que, em produção, aquilo não é verdade significa que a documentação não serviu, gerou mais ruído do que comunicação — o que é perigoso. Documentação pode ser insuficiente ou excessiva; ambos os extremos não funcionam.

Descrevendo características de uma boa documentação

O que funciona? O que é uma boa documentação? Primeiro, uma boa documentação é a que comunica. Não importa se foi feita em um papel simples — veremos ferramentas que auxiliam a documentar, mas o essencial é comunicar. Documentação eficiente explica por que algo foi feito, o que está sendo feito, os componentes principais e o que vimos anteriormente. Ela deve responder aos porquês, ser atualizada regularmente e alinhar as pessoas. É muito útil quando, em uma reunião, há informações contraditórias. Dizemos: “Esperem, vamos mostrar um diagrama ou uma documentação de arquitetura com um ADR (Registro de Decisão de Arquitetura) ou uma diretriz.” Em 5 ou 10 minutos, alinhamos todas as pessoas, conectamos os pontos e seguimos na mesma direção.

A documentação também deve ser proporcional à complexidade do sistema. Em nossa casa, se a construção é simples, a documentação é pequena; mas, se falamos de uma mansão com 16 quartos e 21 suítes, imaginamos o tamanho do plano. O mesmo vale para o nosso ecossistema: se é um software (software) ou uma solução com dois ou três sistemas, a documentação será mais enxuta; se envolve 20 componentes, será mais complexa e precisará trazer mais informações.

Listando o que documentar e o que não documentar

O que documentar?

O que não documentar?

Concluindo com chamado à documentação e próximos passos

Para concluir, uma boa documentação transforma complexidade em clareza compartilhada. Quem documenta compartilha entendimento; quem não documenta cria dependência. Lembramos de um professor, filósofo; na época, éramos estudantes de Marketing (mercadologia). Ele dizia que a empresa sem área de Marketing (mercadologia) é como alguém no escuro acenando para outra pessoa: só ela sabe que é uma boa empresa, porque não vende, não comunica. Essa ideia se aplica à arquitetura: a pessoa arquiteta que não documenta pode ter uma solução excelente, perfeita, mas só ela sabe — porque não documentou. Ninguém mais conhece o conjunto de regras, situações e decisões tomadas.

Vamos documentar. Uma boa arquitetura existe para ser compreendida e não apenas construída; ela deve ser comunicada. Quando toda a equipe conhece a documentação e a solução, atingimos o objetivo.

Encerramos esta primeira aula e, em breve, falaremos de outras. Um grande abraço!

Documentação Arquitetural e Comunicação Técnica - Exercicio Pratico

Contextualizando a documentação e apresentando o Backstage

Vamos continuar discutindo nossa documentação arquitetônica e a comunicação técnica. Pensamos o seguinte: vamos trazer um exemplo. Já falamos sobre documentação, sobre sua importância, sobre o que é e o que não é. Agora queremos mostrar este exemplo: Backstage.

Backstage é uma ferramenta desenvolvida pela Spotify. Vocês podem acessar o link no material, ou, se buscarem no Google, encontrarão facilmente esse endereço. Esta é uma documentação de referência. Não é isso que desenvolvemos no dia a dia. Pode ser que, no projeto em que estivermos, na indústria ou especificamente na empresa, exista a necessidade de gerar uma documentação tão completa quanto esta. Esta documentação é de altíssima qualidade, mas, na prática, a experiência que vemos é que nem todas as empresas precisam de um nível de refinamento de documentação como este. Portanto, tratemos isto como referência para começarmos a nos familiarizar com documentação arquitetônica. Para quem nunca teve experiência com soluções ou documentação arquitetônica, este material ajuda a entender qual é o caminho que precisamos percorrer.

Apresentando a estrutura da página e o conceito do Backstage

No início, a página apresenta uma barra à esquerda com itens em Markdown (linguagem de marcação leve) e, à direita, uma área maior onde é exibido o conteúdo dos menus da barra esquerda. Antes de a equipe começar a apresentar o design ou os componentes, ou se houver APIs (interfaces de programação de aplicações) — isto é interessante — primeiro apresenta o que é o Backstage. Antes de explicar como fez, explica o que fez.

O que é o Backstage? Um framework (estrutura) de código aberto para a criação de portais de pessoas desenvolvedoras, impulsionado por um catálogo de software centralizado. Em seguida, explica-se o que é o Backstage, ressaltando que começou como uma necessidade interna da equipe do Spotify, ganhou força, foi se estruturando até se tornar um componente aberto. Hoje, qualquer equipe pode fazer uso desse framework. Primeiro, portanto, apresenta-se o que é o Backstage e, depois, o que está incluído no Backstage: canal, catálogo de software, modelo de software e os Tech Docs (documentação técnica), com documentação para criar e facilitar o trabalho, entre outros itens.

Destacando benefícios e foco da documentação

Não vamos detalhar nem explicar o que é o Backstage; o foco é entendermos a documentação. Assim, a documentação mostra o que é a ferramenta e, em seguida, apresenta os benefícios. Ou seja, temos o Backstage. Talvez nos perguntemos: para que serve? Qual é o benefício? Aqui está um exemplo de benefício: para pessoas gerentes de engenharia, o Backstage permite manter melhores práticas em toda a organização.

É interessante conectarmos este conteúdo com a aula anterior para entender o seguinte: ao publicarmos a documentação, ela precisa fazer sentido para quem a ler.

Explorando a visão técnica por meio de um exercício

Vamos realizar um exercício: consideremos que nunca ouvimos falar do Backstage e que talvez não estejamos acostumados com documentação. Vamos navegar e tentar entender que informações precisaríamos ver e se elas estão disponíveis aqui. Talvez não seja sobre benefícios, mas sobre termos uma visão técnica.

Há uma seção sobre a visão técnica. De início, entendemos que há um componente central do Backstage, o catálogo de software, que já apareceu três ou quatro vezes. Esse componente central utiliza uma arquitetura de plugins (extensões).

Mais uma vez, o propósito aqui não é explicar a ferramenta nem fornecer recomendações. Apresentamos o Backstage como um caso de documentação, destacando benefícios e principais características.

Detalhando componentes e diagrama de arquitetura

Podemos observar o que se destaca, considerando a complexidade desta solução: autenticação, identidade, Kubernetes, notificações, permissões, busca, catálogo, modelo de software e TechDocs. Também há uma visão geral da arquitetura, com um modelo proposto.

Isso já apresenta o modelo do sistema do catálogo de software e traz uma representação em diagrama com três caixas, indicando que há um componente que conversa com um recurso; há uma API; e esses elementos se comunicam. O diagrama tem três caixas e explica com o que cada uma se relaciona.

Percebemos como isso já fornece informações para que, em pouco tempo, não partamos do zero? A compreensão sobre o que é o Backstage já se torna mais robusta. Esse é o propósito da documentação.

Ampliando a modelagem do ecossistema e a visão da arquitetura

A documentação também apresenta uma modelagem do ecossistema, trazendo mais informações. Talvez já estivéssemos familiarizados com essas três caixas e, agora, foram apresentados o recurso, o componente e a API.

Observamos, ainda, mais elementos ao redor. Vamos ver a visão geral da arquitetura: aparecem o front-end (camada de apresentação) e o back-end (camada de serviços), e como se comunicam. A proposta é utilizarmos este documento, esta documentação, como referência.

Orientando primeiros passos e propondo prática

Se estivermos trabalhando em um projeto, iniciando a iniciativa e a empresa não tiver maturidade em documentação, por onde começamos? Começamos seguindo este modelo: explicar qual é a solução; criar um diagrama macro de como os componentes se relacionam; e, depois, apresentar uma visão técnica indicando as tecnologias utilizadas — por exemplo, Java/.NET; se a base de dados é SQL, como Oracle; se é SQL ou NoSQL, e qual é. Isso oferece uma visão e já trará muitas informações para quem vier depois de nós.

Portanto, vamos praticar: vamos consultar este link (hiperlink) do Backstage, buscar elementos que não estão visíveis aqui e que gostaríamos de saber e, então, avaliar: esta documentação está muito boa.

Até a próxima aula. Muito obrigado.

Sobre o curso Documentação Arquitetural e Comunicação Técnica

O curso Documentação Arquitetural e Comunicação Técnica possui 163 minutos de vídeos, em um total de 41 atividades. Gostou? Conheça nossos outros cursos de Arquitetura em DevOps, ou leia nossos artigos de DevOps.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Arquitetura acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas