Boa experiência do desenvolvedor
(developerexperience.io)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.
-
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. -
Boas ferramentas
Recomenda-se automatizar tudo o que for possível. Tarefas repetitivas são cansativas. -
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. -
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:
-
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. -
Senso de dono e responsabilidade
Elas têm responsabilidade pelo sucesso. Todos os membros da equipe devem sentir responsabilidade pelo sucesso da empresa. -
Objetivo comum
A equipe, os departamentos e a empresa como um todo compartilham objetivos em comum. -
Gentileza e honestidade
Chamamos isso de cultura 'hey bro'. Enfatizamos sinceridade com muito respeito. -
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:
-
Apontar dedos
Membros da equipe culpam uns aos outros por trabalhos malfeitos. Isso é muito prejudicial, mas acontece com frequência. -
Punição severa por falhas
Por exemplo, um chefe que diz que você pode ser demitido se não cumprir um prazo... -
Crunch time constante e sobrecarga contínua da equipe
-
Hostilidade e incerteza
Competição pouco saudável entre equipes. (Por exemplo: essa pessoa foi promovida porque é melhor do que eu.) -
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
- Fornecer informação demais aos desenvolvedores cedo demais.
- Fornecer informação de menos quando os desenvolvedores precisam de mais.
- O uso excessivo de processos pode gerar a mentalidade de que 'uma coisa serve para tudo'.
- Tendência a overengineering
- Agile = desculpa para fazer os desenvolvedores trabalharem mais
1 comentários
Obrigado pela tradução!