36 pontos por frogred8 2022-08-01 | 1 comentários | Compartilhar no WhatsApp

Good Developer Experience

  • TL;DR
    Não se esqueça de tornar os desenvolvedores felizes e de manter essa felicidade.

# O que é uma boa Developer Experience (DX)

A experiência do desenvolvedor se refere à experiência que o desenvolvedor tem ao usar ou desenvolver um produto.
Mas, em muitas empresas, ela acaba ficando atrás de UX (User Experience) em prioridade. Desenvolvedores também são usuários e usam produtos.
A satisfação e a felicidade deles são muito importantes para o sucesso de um projeto. Desenvolvedores felizes criam softwares excelentes e têm menos probabilidade de deixar a equipe.
Definimos uma boa experiência do desenvolvedor com os 4 elementos abaixo.

  1. Arquitetura adequada
    Se a arquitetura for simples demais, você sofre depois; se for complexa demais, sofre agora.
    A arquitetura deve ser escolhida levando em conta o projeto e o tamanho da equipe. Uma boa arquitetura é difícil de quebrar, tem ciclos curtos de feedback e boa resiliência.

  2. Boas ferramentas
    Recomenda-se automatizar tudo o que for possível. Tarefas repetitivas são cansativas.

  3. Processos que complementam o trabalho após o desenvolvimento
    Esses processos devem funcionar como checklists automatizados e fornecer etapas consistentes. Processos definidos ajudam no treinamento da equipe.
    Se a empresa for grande o suficiente, use processos de QA, deploy, feedback, onboarding etc.

  4. Uma cultura de equipe não tóxica
    Defina o propósito da empresa. Ganhar dinheiro não deve ser o único objetivo.
    A cultura é o brainware mais importante (software que roda na cabeça) que você pode instalar na empresa e na equipe.
    Toda decisão tomada por um desenvolvedor passa pelo filtro desse brainware instalado.
    Se eles não concordarem com esse brainware, vão ignorá-lo.

# Por que uma boa experiência do desenvolvedor é necessária

## Equipes com boa experiência do desenvolvedor são mais produtivas e apresentam as seguintes características:

  1. Senso de impacto
    Elas entendem que não se trata apenas de ganhar dinheiro. Sabem que seu trabalho é importante e melhora a vida de outras pessoas.

  2. Senso de dono e responsabilidade
    Elas têm responsabilidade pelo sucesso. Todos os membros da equipe devem sentir responsabilidade pelo sucesso da empresa.

  3. Objetivo comum
    A equipe, os departamentos e a empresa como um todo compartilham objetivos em comum.

  4. Gentileza e honestidade
    Chamamos isso de cultura 'hey bro'. Enfatizamos sinceridade com muito respeito.

  5. Tolerância ao fracasso
    Desenvolvedores precisam ser corajosos e assumir riscos. No entanto, os riscos sempre devem ser calculados, e os desenvolvedores precisam saber quantos problemas cada trabalho pode causar.

## Características de uma cultura com experiência ruim para desenvolvedores:

  1. Apontar dedos
    Membros da equipe culpam uns aos outros por trabalhos malfeitos. Isso é muito prejudicial, mas acontece com frequência.

  2. Punição severa por falhas
    Por exemplo, um chefe que diz que você pode ser demitido se não cumprir um prazo...

  3. Crunch time constante e sobrecarga contínua da equipe

  4. Hostilidade e incerteza
    Competição pouco saudável entre equipes. (Por exemplo: essa pessoa foi promovida porque é melhor do que eu.)

  5. Responsabilidade diluída
    Em grandes empresas, pode parecer que ninguém assume a responsabilidade. É preciso coragem para dizer: 'desculpa, fui eu que estraguei tudo'. É importante poder assumir a responsabilidade.

# Problemas que uma boa experiência do desenvolvedor pode resolver

  • Acúmulo de conhecimento
  • Product-market fit incorreto
  • Equipe desmotivada
  • Mentalidade de 'não é meu problema'
  • Produto fracassado
  • Clientes insatisfeitos
  • Desconexão entre negócios e TI
  • Cultura de equipe tóxica
  • Baixa qualidade de código
  • Aumento de custos
  • Trabalho sem sentido

# Como implementar uma boa experiência do desenvolvedor

Há o 'Scope Triangle', criado pelo Dr. Martin Barnes em meados da década de 1980. Ele mostra a relação entre três forças básicas.

tempo, dinheiro, qualidade

Esse triângulo significa que, para aumentar a qualidade, é preciso ajustar dinheiro ou tempo. No entanto, achamos que não é assim que isso funciona na prática. É preciso adicionar o custo emocional a esse triângulo.

Quando desenvolvedores precisam ficar até mais tarde para concluir um trabalho, tempo não é a única coisa que precisa ser investida. Outra parte desse investimento é o custo emocional. Ter uma excelente experiência do desenvolvedor ajuda a controlar esse custo emocional. Para manter os desenvolvedores felizes, mantenha o custo emocional baixo.

# Armadilhas comuns de uma boa experiência do desenvolvedor

  1. Fornecer informação demais aos desenvolvedores cedo demais.
  2. Fornecer informação de menos quando os desenvolvedores precisam de mais.
  3. O uso excessivo de processos pode gerar a mentalidade de que 'uma coisa serve para tudo'.
  4. Tendência a overengineering
  5. Agile = desculpa para fazer os desenvolvedores trabalharem mais

1 comentários

 
youngiggy 2022-09-19

Obrigado pela tradução!