O documento discute estratégias de arquitetura em times ágeis, comparando abordagens como arquitetura emergente, onde apenas o necessário é definido inicialmente, e design completo antecipado. Fatores que influenciam a escolha incluem instabilidade nos requisitos, risco técnico, necessidade de valor rápido e experiência da equipe. Uma abordagem balanceada que mitigue riscos e permita adaptação é recomendada.
2. Globalcode – Open4education
“O conjunto de decisões relevantes
sobre a estrutura em alto nível e o
comportamento de um sistema”
Philippe Kruchten, falando sobre RUP
3. Globalcode – Open4education
“Um modo ágil de definir a
arquitetura, utilizando um ciclo de vida
iterativo, o qual permite que o design
arquitetural evolua, na medida em que
os problemas e restrições são
entendidos com mais profundidade”
Philippe Kruchten, falando sobre Arquitetura Ágil
7. Globalcode – Open4education
Risco técnico
Arquitetura muito complexa leva a risco técnico. Causas:
Requisitos arquiteturalmente significativos;
Integrações com outros sistemas;
Envolvimento com sistemas legados.
8. Globalcode – Open4education
Receber valor o mais rápido possível
O seu cliente precisa receber algo significativo do sistema antes de
todas as funcionalidades estarem prontas, e.g., um MVP
9. Globalcode – Open4education
Cultura do seu time
Se o seu time tem uma mentalidade ágil, isto auxilia a responder a
mudanças rapidamente. Fatores chave:
Colaboração;
Confiança;
Tamanho do time;
Experiência com Ágil
10. Globalcode – Open4education
Cultura da empresa
Qual o ambiente em que acontece o desenvolvimento? Uma empresa que
é simpática aos princípios da agilidade auxilia um time a ser ágil
11. Globalcode – Open4education
Experiência em arquitetura
Arquitetura em times ágeis é uma disciplina compartilhada. Um time
experiente é capaz de tomar decisões baseadas em conhecimentos
prévios; caso contrário, as decisões necessitam ser mais explicitadas
12. Globalcode – Open4education
Responder a mudanças
Sua arquitetura deve estar aberta a modificações e representa
continuamente a melhor solução para o problema
13. Globalcode – Open4education
Mitigar riscos
O time faz a o design de arquitetura o suficiente para reducir o risco a um
nível satisfatório (aqui temos o nível em que não há riscos capazes de
inviabilizar o projeto)
14. Globalcode – Open4education
Arquitetura emergente
O time faz apenas o necessário no início (define a tecnologia e os
padrões elementares de arquitetura) e relega as outras decisões para a
implementação
15. Globalcode – Open4education
Design completo antecipado (BDUF)
Aqui o time faz o design completo da arquitetura antes do início de
qualquer atividade de implementação
16. Globalcode – Open4education
Utilização de frameworks e modelos
Esta estratégia utiliza modelos e componentes existentes às expensas de
restrições adicionais aplicadas ao sistema
The aim of agile software development is to increase the delivery of value through the ability to respond to changing requirements. To increase agility, up-front effort is reduced, so that the customer can start providing feedback earlier. Reducing the up-front design too much, however, could lead to an accidental architecture that does not support the team’s ability to develop functionality and fails to meet requirements