O documento discute os conceitos de arquitetura evolutiva e como ela permite a adaptação contínua às mudanças. A arquitetura deve ser guiada por princípios como simplicidade, reversibilidade e adiamento de decisões desnecessárias. Em vez de um grande projeto inicial, defende-se um design suficiente e evolutivo, com decisões compartilhadas em cada ciclo de entrega.
3. Desenvolvemos pessoas que inspiram
grandes transformações. Ajudando empresas a
desbloquearem seu potencial para se
tornarem mais digitais, humanizadas e capazes
de se adaptar com agilidade para gerar grandes
experiências em escala e com velocidade.
SOMOS UMA NOVA
ESPÉCIE DE empresa.
4. NASCEMOS NO BRASIL.
ALMEJAMOS O mundo.
- Global Center em Belo Horizonte:
O maior Centro CI&T de Excelência em
Tecnologias Digitais do Brasil
- Iniciativas inovadoras para as maiores
corporações do mundo
- Times globais: grandes oportunidades
(devfestcarreiras.ciandt.com)
5. O que é arquitetura de software?
“É um conjunto de decisões difíceis
de serem mudadas no futuro.”
Martin Fowler (tradução livre)
6.
7. “Um arquiteto permite que decisões importantes
sejam adiadas e um bom arquiteto maximiza o
número de decisões não tomadas.”
Uncle Bob (tradução livre)
O que faz um arquiteto de software?
9. Apesar de já terem se
passado 18 anos do
manifesto ágil...
10. Ainda é muito comum
entendermos que as questões
arquiteturais de um projeto
precisam ser resolvidas antes do
início do desenvolvimento.
A isso damos o nome bonito de
“setup” ou “sprint zero”.
Mas no fundo ainda estamos
utilizando Waterfall.
14. “Mudanças são inevitáveis.
A evolução, no entanto, é
opcional.”
Tony Robbins (tradução livre)
Mudanças são inevitáveis
15.
16. “Uma arquitetura evolutiva suporta mudanças
contínuas e incrementais como um primeiro princípio
por meio de vários aspectos.”
Rebecca Parsons (tradução livre)
O que é arquitetura evolutiva?
18. Mudanças podem surgir de diferentes necessidades...
Técnicas Negócio
Linguagens de programação
Bibliotecas
Ferramentas
Sistemas operacionais
Padrões e Estilos
Modelos comerciais
Concorrência
Necessidades dos clientes
Novas integrações
Legislações
24. Simplicidade: a arte de maximizar a quantidade
de trabalho que não precisou ser feito.
25. Acidental Essencial
A complexidade acidental é
aquela que surge durante o
processo de desenvolvimento,
ou seja, ela é CAUSADA pela
abordagem escolhida para
resolver o problema.
Já a essencial é basicamente a
complexidade que nosso
“software” se propõe resolver.
SIM, infelizmente existem
problemas complexos, e é neles
que temos que focar.
KISS
28. Início de
um projeto Tempo
Funcionalidades
acumuladas
Com
gestão de
débitos
Sem
gestão de
débitos
Débitos técnicos
cobram juros!
Refatore
constantemente!
Mesma “entrega”
Manutenção de um sistema
30. Não tome decisões que você não pode reverter.
Evite ser dependente de um framework, biblioteca ou linguagem.
A reversibilidade tem um custo!
Se o código é impossível de ser revertido, é impossível refatorar.
Nem tudo precisa ser reversivel!
Reversibilidade
37. Último momento de responsabilidade
Agora Depois
SE... Então...
Deixe para
depois
SE... Então...
Deixe para
depois
SE...
Qual a
probabilidade de
precisar disso?
Alta = Faça já!
Baixa = Adie também!
Preciso disso agora?
38. Hey, Batman! Vamos criar
um método assíncrono com
validação dupla de
criptografia nas requisições
da API...
YAGNI
YAGNI (You Aren’t Gonna Need It)
41. 80%
RESULTADO
20%
ESFORÇO
“Boa parte das coisas, que lá no
início, eu achava que ia precisar.
Depois de algum tempo cheguei
a conclusão que não precisava
mais…” Paulovich
Tente se manter focado no que é importante! Lembre-se de Pareto!
42. Decisões compartilhadas!
Todos se tornam arquitetos!
Realize constantemente reuniões para discutir
próximos passos “arquiteturais”, garantindo à
todos a possibilidade de contribuir…
Isso aumenta o “ownership”!
Solutions Reviews
44. A arquitetura de um projeto é algo que precisa se desenvolver… não “nasce” pronta… A cada ciclo
de entregas, você tem a oportunidade de criar uma nova “geração” da sua arquitetura.
Maturidade 1 Maturidade 2 Maturidade 3 Maturidade n