Arquitetura de software em desenvolvimento ágil
A visão original de arquitetura de software foi inicialmente descrita no livro “Software Architecture: Perspectives on an Emerging Disciplin”, em 1996. Essa visão dizia que arquitetura de software tem por objetivo fazer o melhor uso dos recursos técnicos de um projeto, garantindo a maior eficiência possível aos objetivos do projeto, produto e mesmo à visão e missão de uma empresa.
O modelo arquitetural tradicionalmente é realizado nas primeiras fases do ciclo de vida do projeto, e somente após a criação do modelo é iniciado o desenvolvimento. Com o uso das metodologias ágeis o desenvolvimento é feito através de iterações sucessivas, em cada uma das iterações todas as fases de projeto são executadas, incluindo o refinamento da arquitetura.
É crescente a discussão a respeito do papel do arquiteto de software em times ágeis de desenvolvimento, alguns arquitetos ortodoxos defendem a opinião de que não é possível conciliar a arquitetura com o desenvolvimento ágil; alguns adeptos radicais dos métodos ágeis defendem a opinião de que não existe a necessidade de um arquiteto de software exercendo um papel centralizador nas decisões técnicas. Diante dessas opiniões surge a questão: Qual o real papel do arquiteto de software nos times ágeis?
A seguir, tentaremos encontrar uma forma de definir o real papel do arquiteto de software nos projetos ágeis e as características que ele deve possuir, de forma a aumentar a velocidade e a qualidade das entregas.
2. Desenvolvimento
A indefinição sobre o real papel do arquiteto de software numa equipe ágil parece estar longe de ser uma questão bem resolvida, como indicam posts recentes de vários líderes e coaches de métodos ágeis. A questão ocorre principalmente nas organizações onde o modelo tradicional de desenvolvimento encontrava-se muito enraizado antes da transição. As consequências do impasse podem ser extremamente negativas sobre a capacidade de entrega de valor aos clientes, e sobre a satisfação dos membros