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 etc...

Los 3 Amigos

Colaboração contínua

Pareamento entre != papéis

3 amigos onde?

Inceptions

Critérios de aceite

Whiteboarding

HDD

Hypothesis

Driven

Development

exemplo de HDD

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