Cambiando la forma de pensar la ingeniería para volver a ser constructores

Cambiando la forma de pensar la ingeniería para volver a ser constructores

He estado en Buffer desde 2014, e incluso antes de unirme, siempre he sido fanático de la cultura de ingeniería y productos del equipo de Buffer: la rapidez con la que enviaron las mejoras y la cercanía de todos con los usuarios (no es raro ver a los ingenieros responder a los comentarios en Twitter!).

Descubrí que la actitud de “poder para hacer” es inspiradora y contagiosa, y es asombroso cómo las cosas encajan de esa manera. Por supuesto, cuando me uní, éramos un equipo de 24 personas; Todos estábamos usando muchos sombreros y no teníamos gerentes.

A medida que avanzamos, comenzamos a abrazar la creación de estructuras y procesos de equipo para apoyarnos mejor y administrar este crecimiento. Pero, por supuesto, escalar la colaboración mientras se mantiene la velocidad es un arte en sí mismo, y los puntos de fricción están comenzando a surgir: los proyectos a menudo se encuentran con cuellos de botella y los equipos se bloquean entre sí. Dado que llevará más tiempo lanzar las características, intentaremos que sea “correcto” dedicando más tiempo a elaborar las especificaciones de lo que hemos intentado construir, pero, por supuesto, cuanto más grandes sean los proyectos, más tardarán en entregarse.

Nos quedamos atrapados en un bucle autoamplificador: si lleva meses construir algo, se vuelve muy difícil seguirlo y repetirlo porque ¡también tendremos otras prioridades que atender! Esto continuó reforzando la necesidad de hacer más y mejor y continuó creando más presión para ‘hacerlo bien’.

El año pasado, nos dimos cuenta de que queríamos cambiar ciertos hábitos y dinámicas de Buffer para volver a esos primeros días de carga con más frecuencia: cuanto más cargue regularmente, más fácil será administrar esos cambios (porque son más pequeños). Se siente más seguro incluso si falla lo que estamos enviando, creando una mayor seguridad psicológica para nuestro equipo. Estaba claro: queríamos volver a ser constructores y abrazar el espíritu empresarial y una cultura de reincidencia.

Métricas que nos ayudan a determinar la situación de la construcción

¿Cómo sabremos que estamos en modo de construcción? ¿Que nos movemos más rápido, enviamos con más frecuencia y estrechamos los circuitos de retroalimentación con nuestros clientes? Algunas métricas útiles para guiarnos en este viaje: ciclo de tiempoY el velocidad de solicitud de extracciónY el tasa de defectos. Aquí hay algo de contexto sobre lo que significan estas métricas y cómo las medimos:

ciclo de tiempo
Dado que queremos reducir el tiempo que se tarda en llegar al mercado, queremos medir la rapidez y la frecuencia con la que entregamos valor a nuestros usuarios. El tiempo de ciclo, para nosotros, es el tiempo que transcurre desde que comenzamos a trabajar en una característica o mejora (el primer cambio que hacemos en el código base para eso) hasta que Solicitud de Retiro Con cambios, se combinan y se liberan para la producción.

Solicitud de productividad
Las solicitudes de extracción son los artefactos que creamos como desarrolladores para comenzar el proceso de integración de nuevos cambios de código con el código existente que se ejecuta en producción.

Podemos pensar en cada solicitud de extracción como una unidad de trabajo que proporciona valor (por ejemplo, una nueva función, una corrección de errores u otra optimización de la base de código). Esta es la razón por la que la cantidad total de solicitudes de extracción integradas (y su implementación en producción) puede ser un indicador del valor que se entrega.

tasa de defectos
¡Por supuesto, moverse más rápido no mejora nada si significa que enviamos más fallas y errores a nuestros clientes!

La tasa de fallas actúa como una métrica de control para nosotros, ya que medimos la cantidad de cambios de código que hacemos que manejan errores realizados en cambios anteriores.

La dinámica que aplicamos para impulsar este cambio en la mentalidad de la ingeniería

Así como los hábitos son vitales para la formación de nuestra identidad como personas, son fundamentales para desarrollar la mentalidad y la cultura de la empresa.

Sabiendo lo que queremos lograr y cómo medirlo, comenzamos a pensar en nuevas dinámicas que, cuando las abrazamos, nos ayudan a construir nuestra identidad como constructores. Además, mantuvimos los ojos abiertos a los hábitos actuales que bloqueaban nuestro camino y nos impedían pasar al siguiente nivel.

Días de ingeniería del cliente
Un componente esencial de cualquier constructor es estar en contacto con sus clientes: la interacción directa con nuestros clientes es clave para obtener información sobre las preguntas que hacen, las necesidades que tienen y los puntos débiles que siente en nuestros sistemas.

Con los Días de ingeniería del cliente, cada uno de nosotros tiene un equipo de ingeniería que asigna un ingeniero por ciclo emparejado con un abogado durante un día para responder a los tickets en la bandeja de entrada y solucionar los problemas rápidos juntos. ¡Esta es una gran oportunidad para que los ingenieros hagan preguntas a nuestros defensores de clientes sobre nuestros clientes, características y productos, y para que los defensores compartan sus experiencias y aporten algunas ideas geniales a los clientes!

Elimine el bloqueo de solicitudes de retiro tanto como sea posible
A medida que adoptamos una cultura de avanzar más rápido, una de las primeras cosas que me llamó la atención fue el proceso de revisión para incorporar cambios en la producción: algunos equipos tendrán una regla que requiere que otro desarrollador revise su código antes de impulsar directamente el cambio. Los estándares de la industria y la investigación han mostrado resultados sorprendentes: los procesos de aprobación de cambios de código no están relacionados con el rendimiento de la entrega de software.

Queremos eliminar el servicio de puerta de enlace para realizar cambios, mejorar la propiedad y permitir que las personas se mantengan en flujo, por lo que los equipos están comenzando a alejarse del valor predeterminado para abrir solicitudes de extracción y esperar la aprobación, y usar un método híbrido llamado “enviar/oferta/ pedir”:

  • barco ¡Simplemente significa! No es necesario solicitar una revisión, simplemente realice el cambio y publíquelo en producción.
  • pantallas Es excelente para obtener comentarios asincrónicos o compartir nuevos patrones y aprendizajes con el equipo, pero no espere la aprobación antes de enviarlo a producción.
  • pedir Este es el método tradicional en el que se requiere la revisión del código antes de la fusión y el envío a producción.

Explicar que existen diferentes alternativas y enfoques para diferentes situaciones significa que los equipos pueden saber qué equilibrio lograr y saber si están en un “modo de pregunta” mucho cuando pueden empujar más hacia “envío” o “presentación”.

trabajo más pequeño
Por supuesto, si solo nos enfocamos en las prácticas pasadas, parecerá que estamos pidiendo a los equipos que trabajen más y más rápido. ¡Estas metas y prácticas son para que desafiemos y mejoremos la forma en que trabajamos, no cuánto trabajamos!

Uno de los componentes clave para garantizar esto, y uno de los principales contribuyentes para convertirse en un equipo de alto rendimiento, es trabajo más pequeño: Si dividimos nuestro trabajo en características que permitan un desarrollo rápido en lugar de proyectos más grandes y complejos que se lanzan con poca frecuencia.

Por lo tanto, los equipos de ingeniería están adoptando el uso de cambios de funciones (también llamados cambios de funciones) como una forma de implementar nuevas funciones que aún están en desarrollo en producción sin afectar negativamente la experiencia del usuario. Esto elimina las versiones grandes con muchos cambios, en su lugar, podemos lanzar nuevas funciones a nuestros usuarios cuando ya las hemos probado en producción.

Trabajar en lotes más pequeños genera una mayor seguridad psicológica para nuestros ingenieros, ya que se reduce drásticamente el riesgo de implementar cambios urgentes que afectan a todos.

Los gerentes de ingeniería también recurren a los constructores
Si bien el rol del Director de Ingeniería en los diversos equipos se ha centrado principalmente en la gestión de personas, el crecimiento profesional del ingeniero y la coordinación de formas de trabajo, su principal responsabilidad es garantizar que nuestros equipos brinden valor mediante la creación de nuestro producto y nuestros equipos en un manera que se alinea tanto con nuestros productos como con nuestros objetivos técnicos.

Entonces, para conducir realmente con la mentalidad de estos constructores, ¡nuestros directores de ingeniería también deben convertirse en constructores! Hemos redefinido el papel del Director de Ingeniería y ahora nuestro objetivo es que pasen al menos el 25 % de su tiempo trabajando en el equipo. La capacitación práctica puede tomar muchas formas, tales como:

  • Sumérjase en el análisis de datos para lanzar una nueva función.
  • Trabaja en tareas no críticas.
  • Control de calidad de nuevas características.
  • Tratando con clientes.

Esto les brinda contexto y una mejor comprensión de las decisiones técnicas y las compensaciones que enfrentan sus equipos y crea un sentido compartido de propiedad en todo el equipo, ya que todos contribuimos a nuestra manera para lanzar con frecuencia.

Los resultados: ¿Hemos adoptado una mentalidad de construcción?

Comenzamos este viaje de cambio de mentalidad hace 9 meses y ha sido un gran camino para la alineación entre los equipos: la cantidad de funciones y mejoras que hemos lanzado en los últimos meses es un reflejo de todos estos cambios. Constantemente nos preguntamos “¿Cómo podemos enviar lo siguiente antes y con mayor calidad?”. nosotros Sentir Hay un cambio en la motivación y la energía.
Ahora, si volvemos a las métricas que compartí anteriormente en esta publicación, podemos ver que:

  • El tiempo de ciclo ha disminuido drásticamente: de un promedio de 94,8 horas en 2021 a 55 horas en 2022 hasta ahora.
  • El tráfico aumentó en PR: se publicaron 4,155 solicitudes de retiro en 2021 en comparación con 3,687 solicitudes publicadas en 2022 hasta ahora (¡1,816 solicitudes de retiro más que H2 2021!).
  • La tasa de defectos disminuyó: del 18 % del tiempo trabajando en defectos en 2021 al 16 % en 2022 hasta ahora.

Esto significa que el equipo de ingeniería en realidad lanza más rápido y más a menudo y la calidad no interfiere con la velocidad de entrega.

Hay algunos grandes proyectos tecnológicos en preparación que acelerarán a todo el equipo de ingeniería en la segunda mitad del año, ¡así que apenas estamos comenzando! ¿Hay algún hábito que tenga su equipo que les haya ayudado a aumentar la velocidad de envío y acercarse a sus clientes? A medida que continuamos en este camino de convertirnos en constructores, me emociona continuar compartiendo lo que hemos aprendido y progresado en el camino.

¡No dude en comunicarse conmigo en Twitter en @msanromanv para compartir sus experiencias!

Leave a Reply

Your email address will not be published.