36 puntos por frogred8 2022-08-01 | 1 comentarios | Compartir por WhatsApp

Good Developer Experience

  • TL;DR
    No olvides hacer felices a los desarrolladores y mantener esa felicidad.

# ¿Qué es una buena experiencia para desarrolladores (Developer Experience, DX)?

La experiencia para desarrolladores se refiere a la experiencia que tiene un desarrollador mientras usa o desarrolla un producto.
Pero en muchas empresas queda relegada en prioridad frente a la UX (User Experience). Los desarrolladores también son usuarios y usan el producto.
Su satisfacción y felicidad son muy importantes para el éxito del proyecto. Los desarrolladores felices crean software excelente y reducen la probabilidad de dejar el equipo.
Definimos una buena experiencia para desarrolladores a partir de estos 4 elementos.

  1. Arquitectura adecuada
    Si la arquitectura es simple, sufrirás después; si es compleja, sufrirás ahora.
    La arquitectura debe elegirse considerando el proyecto y el tamaño del equipo. Una buena arquitectura es difícil de romper, tiene ciclos de retroalimentación cortos y además es resiliente.

  2. Buenas herramientas
    Se recomienda automatizar todo lo posible. Las tareas repetitivas cansan.

  3. Procesos que complementen lo que viene después del desarrollo
    Este proceso debe funcionar como una lista de verificación automatizada y ofrecer pasos consistentes. Un proceso definido ayuda en la capacitación del equipo.
    Si la empresa es lo suficientemente grande, usa procesos para QA, despliegue, retroalimentación, onboarding, etc.

  4. Una cultura de equipo que no sea dañina
    Define el propósito de la empresa. Ganar dinero no debe ser el único objetivo.
    La cultura es el brainware más importante (software que se ejecuta en la cabeza) que puedes instalar en la empresa y en el equipo.
    Todas las decisiones que toman los desarrolladores pasan por el filtro del brainware instalado.
    Si no están de acuerdo con ese brainware, lo ignorarán.

# Por qué se necesita una buena experiencia para desarrolladores

## Los equipos con una buena experiencia para desarrolladores son más productivos y muestran características como estas:

  1. Sentido de impacto
    Entienden que no se trata solo de ganar dinero. Saben que su trabajo es importante y mejora la vida de otras personas.

  2. Sentido de pertenencia y responsabilidad
    Tienen responsabilidad sobre el éxito. Todos los miembros del equipo deben sentir responsabilidad por el éxito de la empresa.

  3. Objetivo común
    El equipo, el departamento y toda la empresa tienen objetivos en común.

  4. Amabilidad y honestidad
    A esto lo llamamos cultura de 'hey bro'. Ponemos un gran énfasis en la sinceridad con mucho respeto.

  5. Tolerancia al fracaso
    Los desarrolladores deben ser valientes y asumir riesgos. Pero el riesgo siempre debe calcularse, y los desarrolladores deben saber cuántos problemas puede causar cada tarea.

## Características de una cultura con mala experiencia para desarrolladores:

  1. Buscar culpables
    Los miembros del equipo se culpan entre sí por el trabajo mal hecho. Esto es muy dañino, pero ocurre con frecuencia.

  2. Castigos severos ante el fracaso
    Por ejemplo, un jefe que diga que podrían despedirte si no cumples con la fecha límite...

  3. Crunch time permanente e sobrecarga continua del equipo

  4. Hostilidad e incertidumbre
    Competencia poco sana entre equipos. (Por ejemplo: esa persona es mejor que yo, así que la ascienden)

  5. Responsabilidad diluida
    En las grandes empresas puede sentirse como si nadie fuera responsable. Hace falta valentía para decir: 'Perdón, yo lo arruiné'. Es importante poder asumir la responsabilidad.

# Problemas que una buena experiencia para desarrolladores puede resolver

  • Acumulación de conocimiento
  • Product-market fit incorrecto
  • Equipo desmotivado
  • Mentalidad de 'no es mi problema'
  • Producto fallido
  • Clientes insatisfechos
  • Desconexión entre negocio e IT
  • Cultura de equipo dañina
  • Mala calidad del código
  • Aumento de costos
  • Trabajo sin sentido

# Cómo implementar una buena experiencia para desarrolladores

Existe el 'Scope Triangle', creado por Dr. Martin Barnes a mediados de la década de 1980. Muestra la relación entre tres fuerzas básicas.

tiempo, dinero, calidad

Este triángulo implica que, para aumentar la calidad, hay que ajustar el dinero o el tiempo. Sin embargo, creemos que así no es como funciona en la realidad. Hay que añadir el costo emocional a ese triángulo.

Si un desarrollador tiene que quedarse hasta tarde para terminar una tarea, lo que se invierte no es solo tiempo. Otra parte de esa inversión es el costo emocional. Tener una gran experiencia para desarrolladores ayuda a controlar ese costo emocional. Si quieres que los desarrolladores sean felices, mantén bajo el costo emocional.

# Errores comunes en una buena experiencia para desarrolladores

  1. Dar a los desarrolladores demasiada información demasiado pronto.
  2. Dar a los desarrolladores muy poca información cuando necesitan más.
  3. Usar procesos en exceso puede llevar a una mentalidad de 'todo tiene que encajar'.
  4. Tendencia al overengineering
  5. Agile = una excusa para hacer que los desarrolladores trabajen más

1 comentarios

 
youngiggy 2022-09-19

¡Gracias por la traducción!