Desenvolvimento ágil
num mundo de produtos
Ceci Fernandes
in/cecifernandes
A gente fala
muito
de
processos, pessoas, cultura
Mas o que
a engenharia
precisa saber?
Responder a mudanças
mais que seguir um plano
E em código, como faz?
1. Feature Toggles
2. Monitoramento realtime
... outras técnicas "avançadas"
Mas mais básico
muito menos novidade
bem
+
importante
3. Clean Code
4. Separação de responsabilidades
Modularização
Delimitação de Contextos
5. Testes automatizados
Entendimento da
pirâmide de testes
e da
atualização de 2018
6. Entrega contínua
Automação de build e deploy
Promoção de código em ambientes
(com dados cada vez mais reais)
7. Entendimento de arquiteturas
Micro-serviços
Hexagonal (ports & adapters)
Camadas
Mas não é só!
Por desenvolvedor...
você entende quem?
Programadores
e QAs
e BAs
e UXers
e
tc...
Los 3 Amigos
Colaboração contínua
Pareamento entre != papéis
3 amigos onde?
Inceptions
Critérios de aceite
Whiteboarding
HDD
H
ypothesis
D
riven
D
evelopment
Métricas!
automatizadas
de preferência...
Saúde do sistema
(Analytics, Grafana, Cortex, ...)
DORA metrics
Frequência de deploy
lead time pra mudanças
tempo de recuperação
taxa de inserção de falhas
E, com métricas...
Testes A/B
Testes com usuários
Tantas coisas, mas...
Em resumo
"Qualquer prática que ajuda a
reduzir o custo de mudança de
direção ou experimentação"
Hugo Corbucci
Desenvolvimento ágil
num mundo de produtos
Ceci Fernandes
in/cecifernandes