Developer Experience

Desbloqueando entregas ágeis

Olá pessoal

De onde vem a necessidade de entender a experiência de desenvolvimento?

  • Uma introdução ao conceito
  • Um case de sucesso
  • Outros exemplos surgindo no mercado

De onde vem a necessidade de entender a
experiência de desenvolvimento?

Primeiro precisamos de falar sobre
Agilidade e Entrega Contínua

Agilidade e Lean

Construção colaborativa, evitando desperdício

Processos para responder rápido a necessidades de negócio

Estamos construindo o que o negócio precisa?

Estamos medindo o impacto das decisões?

Podemos responder rápido a mudanças?

Entrega Contínua

Reduzindo riscos por entregar frequentemente

Ter um processo de entrega confiável e bem definido, onde o produto passa por build, test, deploy

Entrega Continua - Jez Humble & David Farley

Entrega Contínua é pré-requisito para boas entregas

Ter um processo confiável para garantir a qualidade ajuda a reduzir riscos

Se as mudanças são pequenas, você consegue identificar melhor o resultado

Se uma mudança demora 5 minutos
para chegar a produção…

Voltar ao estado anterior demora apenas 5 minutos também

Passando pelo mesmo processo confiável que você construiu no dia a dia

Como manter os benefícios da Entrega Contínua em grandes equipes?

Vamos pensar em um crescimento da equipe

10 pessoas desenvolvendo

A complexidade do negócio ainda é pequena

Manter o contexto inteiro do negócio dentro da equipe é simples

As ferramentas e processos são simples

10 equipes de 10 pessoas desenvolvendo

A complexidade de negócio que esse grupo suporta cresce

As mudanças possuem riscos e impacto maiores

As ferramentas e processos precisam se adaptar ao crescimento da complexidade

10 pessoas vs 100 pessoas

  • Qual o risco de uma mudança no código?
  • Qual o risco de uma mudança no banco de dados?
  • Qual o risco de uma mudança na plataforma?

Nesta escala estamos nos preocupando bem mais no impacto da experiência do usuário final

Qual a Experiência do Usuário?

Técnicas como Zero Downtime Deploy, Blue-Green, Revisões, Ferramental de Testes surgem para gerar uma boa experiência para os usuários

E se pensarmos nas pessoas que desenvolvem os nossos sistemas como usuários dos nossos processos de entrega?

Qual a Experiência de Desenvolvimento?

Quanto tempo de latência desde uma mudança feita até o produção:

  • Uma mudança na lógica do código?
  • Uma mudança no banco de dados?
  • Uma mudança na infraestrutura?

Qual o custo de em gerar uma mudança:

  • Uma mudança na lógica do código?
  • Uma mudança no banco de dados?
  • Uma mudança na infraestrutura?

Grande latência e grandes custos de mudança afetam o comportamento das equipes

Tendência em acumular e agrupar mudanças dado o alto custo de seguir com ela

Uma mudança que demora 5 dias para chegar em produção carrega muito risco

E isso aumenta o risco ao negócio

Saber responder essas perguntas é essencial para Entrega Contínua

  • Quanto tempo de latência desde uma mudança feita até o produção?
    • Lead Time
  • Qual o custo de em gerar uma mudança?
    • Development Effort

Developer Experience é uma otimização para Entrega Contínua

Precisamos reduzir os custos dos processos para incentivar Entrega Contínua

Case

Incentivando mudanças em banco de dados entre 25 equipes

Cenário inicial: uma mudança de banco de dados precisa

  • Precisa ser revisado pelo DBA
  • Não podemos permitir comandos que perdam dados (Drop, deletes)
  • Não podemos permitir comandos que geram locks nas tabelas
  • Mudanças estruturais precisam de cuidado redobrado

Resultado:

  • Mudanças demoraram 5 dias para serem revisadas pelo DBA
  • Conflitos nas prioridades atrasavam as revisões
  • Equipes evitavam fazer mudanças no banco de dados
  • Falta de confiança por não saberem o que é aceitável
  • Falta de previsibilidade quando a mudança seria aplicada em produção
  • Mudanças aconteciam no final da sprint, gerando dependência no código que seria entregue

Criamos uma equipe de 4 pessoas:

  • Automatizamos a maioria das checagens nas mudanças
  • Melhoramos a mensagem de feedback quando encontramos erros
  • Reduzimos o ciclo de feedback permitindo executar as verificações antes mesmo de enviar o pedido
  • Nos casos que ainda não haviam verificações automáticas, enviávamos para o DBA nos ajudar

Mudanças foram de 5 dias
de revisão para 1 hora

  • Continuamos focando na experiência de quem desenvolve
  • Cobrimos mais casos para verificação
  • Criamos mais passos de verificação para reduzir os riscos das mudanças

Em alguns casos, a mudança poderia chegar em 15 minutos a produção

4 pessoas

Reduziram 40h/mo de espera de 25 equipes a cada mudança de SQL

  • O processo se tornou mais trivial
  • As equipes ficaram mais propensas a criar mudanças mais cedo durante a sprint

Como as mudanças agora tem baixo custo, mais mudanças aconteciam, só que bem menores

Mudanças menores carregam menos riscos

E buscamos reduzir riscos

Developer Experience em outras empresas

Em resumo

Se sua Entrega Contínua tem ciclos muito grandes e um custo alto nas mudanças

Talvez seja necessário revisar a experiência do desenvolvimento

E investir nela

Se você ainda não pratica Entrega Contínua

Se você já pratica
Entrega Contínua

  • Faça um exercicio de avaliação de entrega continua
  • Invista em automatizar os processos que mais impactam o fluxo
  • Busque feedback de quem desenvolve sobre o que é mais difícil

E nos dois casos…

Saiba responder o seu Lead Time

para otimizar-lo

Uma boa experiência de desenvolvimento incentiva mudanças menores e mais frequentes, com riscos menores para o seu negócio

Podemos conversar mais sobre esses assuntos pela conferência

Obrigado

Bruno Tavares - @bltavares