Tecnología de DevOps: capacita a los equipos para que elijan herramientas

Si deseas lograr un mayor rendimiento en la entrega de software y aumentar la satisfacción laboral del personal técnico, debes capacitarlos a fin de que tomen decisiones fundamentadas con respecto a las herramientas y la tecnología que usan para realizar su trabajo. La investigación (en PDF) del equipo de DevOps Research and Assessment (DORA) demuestra que esto contribuye a lograr una mejor entrega continua y un rendimiento mayor en la entrega de software. Los equipos que pueden elegir sus propias herramientas son capaces de tomar estas decisiones en función de la forma en que trabajan y las tareas que deben realizar. Los profesionales saben mejor que nadie lo que necesitan a fin de ser eficaces, por lo que no es de extrañar que la elección de herramientas para profesionales genere mejores resultados.

Permitir que los equipos elijan herramientas no significa que cada equipo tenga libertad completa para seleccionar cualquier herramienta que desee. La incorporación de tecnología sin restricciones puede aumentar la deuda técnica y la fragilidad. Sin embargo, cuando se combina la elección de herramientas con otras funciones (como, por ejemplo, una vista completa del sistema, comentarios rápidos y la comprensión de que son responsables del código que escriben), ayuda a los tecnólogos a tomar decisiones acertadas con respecto a las herramientas que usarán y que necesitarán respaldar. Se observó este patrón en empresas como Google y Netflix, en las que se admite una pila técnica preferida de forma predeterminada. Sin embargo, si un equipo cree que una herramienta o tecnología diferente es mejor para su caso, puede elegirla. Los equipos entienden que su elección significa que también deberán proporcionar compatibilidad con esta pila técnica nueva.

Cómo capacitar a los equipos para que elijan herramientas

Cuando la organización capacita a los equipos a fin de que seleccionen herramientas, es importante equilibrar la libertad para elegirlas con el costo de adquirirlas y ofrecer compatibilidad, y la complejidad potencial agregada de la comunicación entre equipos que usan herramientas distintas. A continuación, se describen algunas formas en las que puedes capacitar a los equipos para que elijan sus propias herramientas.

  • Establece un modelo de referencia entre equipos. Establece un modelo de referencia de herramientas aprobadas con representantes de diferentes equipos y áreas multifuncionales (administradores de productos, desarrolladores, verificadores, operadores). Recomendamos que el conjunto de herramientas del modelo de referencia sea lo suficientemente grande y diverso como para satisfacer la mayoría de las necesidades de la organización. Algunos ejemplos de herramientas que se deben incluir en el modelo de referencia son los lenguajes de programación y las bibliotecas, las herramientas de prueba y de implementación, la infraestructura de supervisión y los backends de datos.

  • Revisa las herramientas de forma periódica. De forma periódica o como parte de las retrospectivas de migración, evalúa de forma crítica el conjunto de herramientas del modelo de referencia para examinar su eficacia. Estas revisiones también proporcionan oportunidades para debatir acerca de tecnología nueva y demostrarla.

  • Define un proceso para las excepciones. Crea un proceso definido con claridad para desviarse del conjunto de herramientas del modelo. Cuando se usa una tecnología nueva que no se encuentra dentro del modelo de referencia de un proyecto, documenta esta herramienta nueva y por qué se usó. Esta documentación es fundamental para la solución de problemas y el mantenimiento del proyecto. Además, se puede usar la documentación incluida en los proyectos más adelante para justificar la adición de la herramienta al modelo de referencia.

Un enfoque alternativo consiste en permitir que los equipos seleccionen las herramientas. Con esta estrategia, cada equipo dirige el proceso de entrega de software (requisitos empresariales, desarrollo, operaciones) tanto como sea necesario mediante el uso de su propia cadena de herramientas. Sin embargo, asegúrate de tener en cuenta el impacto en la comunicación entre los equipos y las áreas de producto cuando haya recursos compartidos.

Errores comunes

El error más común respecto a la capacitación de los equipos para que elijan herramientas consiste en tomar una postura extrema como, por ejemplo, no dejar que los ingenieros tomen ninguna decisión o dejar que tomen demasiadas.

Forzar a los profesionales a usar herramientas y tecnología puede mejorar la estandarización. Sin embargo, lo que funciona en algunos casos no es la mejor solución en todos los casos. Este enfoque también limita las oportunidades de experimentación y crecimiento, en las que se puede poner a prueba la tecnología emergente. A menudo, la experimentación con nuevas tecnologías y su adopción genera grandes aumentos en el rendimiento. Por ejemplo, si no se hubiese permitido que los equipos experimentaran con la creación de contenedores o la plataforma como servicio cuando eran tecnologías nuevas, las organizaciones no habrían notado las mejoras que generaban en el rendimiento.

Por otro lado, elegir herramientas y tecnología diferentes para cada proyecto o servicio puede generar una deuda técnica y un aumento en la fragilidad. Cada vez que se agrega un elemento a la cadena de herramientas, aumentan los gastos operativos y de mantenimiento. Con el tiempo, esos gastos pueden anular el aumento en el rendimiento que generó la tecnología nueva.

Formas de mejorar la elección de herramientas en los equipos

El aspecto clave del rendimiento en la elección de herramientas es permitir que los equipos que realizan el trabajo seleccionen las mejores herramientas para ello. En función de esto, a continuación se proporcionan algunas sugerencias:

  • Evalúa la tech stack de forma periódica. Durante las evaluaciones, alienta a los miembros del equipo a que evalúen de forma crítica qué tan bien cumplen con los requisitos las herramientas actuales. Además, durante estas revisiones, se puede debatir y planificar el análisis de los problemas con las herramientas existentes y la potencial experimentación con herramientas nuevas.
  • Investiga herramientas nuevas para proyectos nuevos de forma proactiva. Pídele a los miembros de los equipos que consideren las herramientas nuevas y las pongan a prueba para determinar si vale la pena respaldarlas. Intenta implementar una pieza clave del sistema nuevo mediante el uso de la tecnología existente y las que se propusieron para determinar si se presentan los beneficios esperados. Cuando selecciones una tecnología, infórmate acerca de los costos asociados a ella. Estos pueden incluir las licencias, la asistencia y la infraestructura necesaria para ejecutar las herramientas. Es posible que también tengas que contratar más personas para que te ayuden en la adopción y el mantenimiento de esta tecnología.
  • Programa un horario para experimentar con herramientas nuevas. Realiza sesiones periódicas (como hackatones), en las que los equipos puedan experimentar con proyectos y tecnologías nuevas. Estos experimentos no garantizan que se conserven todas las herramientas. Lo importante es que facilitas la incorporación de estas tecnologías nuevas en la pila o decides que no son adecuadas.
  • Realiza presentaciones periódicas para debatir acerca de herramientas nuevas. Patrocina reuniones organizadas (como reuniones con almuerzo) en las que se presenten y debatan tecnologías nuevas. Pueden ser reuniones informales en las que una persona realice una presentación acerca de un proyecto en el que se trabaja una tecnología nueva o acerca de algo que se investiga. Tales reuniones informales son una buena forma de que el grupo debata acerca de las tecnologías nuevas y se mantenga actualizado. Un buen enfoque consiste en rotar las presentaciones y que los miembros del equipo se turnen para darlas. También puedes invitar a personas de otros equipos o ajenas a la empresa. La inclusión de personas ajenas a la organización puede ser muy útil, ya que, si tienen experiencia con una herramienta, pueden hablar sobre las dificultades y los costos ocultos que solo aparecerán después del uso a largo plazo.

El objetivo es descubrir formas de incorporar tecnologías en la conversación y asegurarse de que el equipo esté capacitado para tomar las decisiones adecuadas con respecto a las herramientas y las tecnologías. Puede que un resultado de estas conversaciones sea atenerse a las herramientas que tienen en este momento.

Formas de determinar si los equipos están capacitados para elegir herramientas

La mejor forma de determinar si los equipos sienten que están capacitados para elegir herramientas es preguntarles al respecto. No debes determinar esto mediante un recuento de las herramientas que usa el equipo o la frecuencia con la que cambia de herramientas, ya que es posible que el equipo elija continuar con la misma herramienta o cambiarla porque se les pide que así lo hagan.

Próximos pasos