Outro dia eu estava conversando com um desenvolvedor super bom de serviço. Ele me disse que acha “waste” essa diversidade de práticas e processos de desenvolvimento ágil. Ele tem muita dificuldade em reunir e visualizar todas as práticas e métodos funcionando juntos porque veio de um contexto muito técnico onde o que tinha de ser feito era apenas escrever código e entregar o software. Ele me disse que gostaria de saber, por exemplo, o que o arquiteto de software faz. 🙂 Eu achei sensacional a duvida dele e expliquei rapidamente o papel do arquiteto, mas isso ficou na minha cabeça e resolvi fazer esse post.
O papel de arquiteto de software ágil hoje está bem mais consolidado. O Disciplined Agile Delivery define o papel do Architecture Owner e as principais responsabilidades desse papel são:
- Guiar a criação e evolução da arquitetura da solução.
- Mentor e o Coach dos membros do time nas práticas e questões de arquitetura.
- Entender a direção arquitetural, os padrões da organização e garantir que o time esteja aderente à eles.
- Garantir que o sistema será suportado de maneira fácil encorajando um design adequado e tocando as refatorações necessárias para garantir um bom design.
- Garantir que o sistema seja testado e integrado frequentemente.
- Tem a palavra final sobre as decisões técnicas, mas deve engajar o time nas decisões e não dita-las.
- Lidera o esforço de visualização inicial da arquitetura.
- Trabalhar junto ao time de arquitetura corporativa (se ele existir).
No ciclo de vida básico do DAD existe um marco específico para provar a arquitetura o mais cedo possível na fase de construção. É uma forma do arquiteto mitigar os riscos técnicos e um checkpoint de governança para sinalizar a gerência sênior e outros stakeholders as decisões e questões técnicas.