P: ¿Tienes algún mentor que haya inspirado o ayudado en tu trayectoria profesional hasta ahora?
Hay muchísimos. Ser parte de la comunidad startup en Raleigh, Carolina del Norte, ha sido maravilloso, y hay docenas de personas que me han ayudado de formas que quizá ni siquiera se han dado cuenta. Aunque podría mencionar nombres específicos, algunas historias clave moldearon mi visión del mundo.
Una historia proviene de un líder de ventas que habló en una de mis clases de emprendimiento en pregrado. Como estudiante de ingeniería enfocado en escribir código y desarrollar habilidades técnicas, las ventas me resultaban tanto ajenas como poco interesantes. Sin embargo, esta persona compartió una historia que me ayudó a ver las cosas de otra manera.
Él recordó una charla con uno de sus compañeros técnicos. El compañero dijo: “No entiendo cómo lo haces.” El vendedor respondió: “¿Hacer qué?” El compañero contestó: “Tener una cuota. Debe ser tan estresante tener que vender para poder comer.” Lo pensó un momento y respondió simplemente: “Lo es, pero si yo no vendo, tú tampoco comes.”
Esta historia realmente me ayudó a contextualizar la ingeniería.
Puedes construir el producto o servicio más increíble, pero si no puedes demostrar el valor a las personas a las que ayudará, solo estás haciendo ingeniería en el vacío.
Otra persona que me ayudó fue un mentor que había dirigido empresas y divisiones de ingeniería y luego cambió su carrera para ayudar a las personas a concretar sus ideas y encontrar roles en distintas startups. Me asesoró ante muchos retos, pero uno de los consejos clave que me dejó fue que la mayoría de líderes de organizaciones técnicas sobresale en una de tres áreas:
El “cerebrito principal”, el gerente estrella, o la persona clave de producto. Continuó diciendo que una empresa exitosa necesita los tres, y que un gran líder debe identificar cuál es su fortaleza natural y después contratar para cubrir las demás competencias. Esto me ha ayudado a comprender mi crecimiento como líder de ingeniería y en qué áreas debo involucrarme más o delegar.
P: ¿Puedes nombrar tres fortalezas o habilidades que han sido importantes en tu trayecto?
Un lema que sigo es: “Primero encaja, luego destaca.” Aunque es una frase corta, me recuerda que cuando trabajo con un equipo nuevo, primero debo aprender sobre el equipo. Entender por qué las cosas son como son es fundamental para construir confianza.
Por ejemplo, si llego el primer día e intento implementar o abogar por un cambio importante, la reacción habitual será resistencia y habré dificultado mi labor a futuro. Es importante buscar similitudes y puntos de acuerdo dentro de un nuevo equipo antes de tratar de desafiar el statu quo o hacer cambios grandes. Este enfoque aplica para la construcción de nuevas relaciones en cualquier ámbito de la vida.
Otro principio que me guía es: “Lo que la gente dice y hace solo está correlacionado con lo que piensan y sienten.” Aunque pueda sonar pesimista, me gusta la idea de que las personas a menudo actúan bajo mucha presión para comportarse o hablar de una manera particular.
Por ejemplo, cuando le preguntas a alguien cómo va su día, casi siempre responde "Bien", en vez de realmente abrirse y contar cómo está. Al trabajar con equipos y grupos, es importante prestar atención a esas presiones para entender y empatizar de verdad. Por ejemplo, si alguien te reporta, puede resultarle difícil asumir un error si teme represalias.
Como líder, es esencial construir y evaluar constantemente nuestro entorno para fomentar la apertura. De lo contrario, podríamos crear inadvertidamente una cultura donde los problemas quedan ocultos y no se abordan.
En la gestión de equipos, las personas necesitan ser persistentemente introspectivas y reflexivas para desarrollar habilidades sólidas. Aunque "mirar hacia adentro" funciona para mí, puede que no le sirva a todos, y un buen líder debe reconocer las diferentes formas en que las personas aprenden y crecen.
Un líder eficaz se enfoca en equilibrar los logros y la empatía, reflexionando constantemente sobre sus propias fortalezas y debilidades, así como las del equipo en general.
P: ¿Qué habilidades sigues intentando desarrollar ahora?
Volviendo al consejo de uno de mis mentores, estoy trabajando constantemente en el pilar de gestión de los tres roles de un líder técnico. He tenido la suerte de trabajar con un compañero que es increíble en ese aspecto y me ha mostrado algunas formas clave de crecer y mejorar.
Como cofundador de una startup tecnológica, me he enfocado mucho en la tecnología y los productos y he trabajado con equipos pequeños. Ahora que nuestra organización está creciendo, tengo que crecer junto con ella. El arte de la gestión es una habilidad tan importante como el desarrollo de software.
P: Hablemos de tener un equipo DevOps exitoso. ¿Cuáles son los objetivos clave que un equipo DevOps podría identificar para un proceso de transformación digital?
Una de las cosas más importantes que escucho de otros líderes es tener una comprensión compartida de lo que significa DevOps para tu organización. He visto organizaciones donde “DevOps” significa contratar a un SRE, llamarlo ingeniero DevOps y celebrarlo.
Tomar los componentes básicos del ciclo DevOps e identificar cómo fluyen el trabajo y las ideas a través de tu proceso de desarrollo es un punto clave para comenzar. Toma un ticket de desarrollo desde su inicio y síguelo hasta que genere el próximo ticket, y puedes identificar algunas brechas importantes.
Por ejemplo, puede que te des cuenta de que tu equipo de QA está segregado y que existe una mentalidad de “lanzar por encima del muro” que está afectando tu capacidad para avanzar rápido. Una vez que empieces a definir ese flujo de procesos en tu organización, puedes considerar herramientas que puedan ayudar.
Muchas organizaciones comienzan por las herramientas y luego impulsan el cambio organizacional de manera lenta y dolorosa. Es una manera equivocada de empezar.
P: ¿Hay retos o errores comunes que los equipos DevOps deberían considerar?
DevOps es una forma de trabajar. En muchos sentidos, es la secuela de la transformación ágil que revolucionó la industria del desarrollo de software hace décadas. Es importante pensarlo así. Muchas organizaciones tuvieron problemas con la transformación ágil debido a la falta de comprensión y compromiso del liderazgo. Los líderes pensaban que con solo empezar a hacer reuniones diarias se lograrían un 50 por ciento más de tickets completados. Eso, a posteriori, claramente estaba equivocado.
De manera similar, los líderes de hoy en día piensan que solo necesitamos una canalización CI/CD para superar a los indicadores Dora y que veremos un 50 por ciento más de productividad. El cambio de mentalidad es fundamental. DevOps permite asumir la propiedad completa del ciclo de vida de entrega de software, lo cual permite a los equipos construir mejores sistemas. DevOps empodera a los equipos para identificar cómo mejorar e implementarlo, por lo que los líderes deben crear ese espacio y apoyo para realmente ver los impactos organizativos.
P: ¿Cómo puede la colaboración y comunicación efectiva entre los miembros del equipo mejorar la productividad y el éxito de un equipo DevOps, y qué prácticas pueden facilitarlo?
La comunicación es fundamental en ingeniería. Casi todos los problemas se reducen a una mala comunicación y DevOps no es diferente. Volviendo a la importancia de tener una comprensión compartida de lo que DevOps significa para tu organización, realmente tienes que entender hacia dónde vas y compartir esa visión para tener una oportunidad de éxito.
Algunas de las prácticas clave que he visto son definir puertas de control simples en tu proceso. Deben estar relacionadas con el trabajo y no con las personas que lo realizan. Tener procesos definidos para cómo las tareas y la información fluyen a través de tu equipo te permite ser eficiente al cambiar de contexto, especialmente cuando aparecen interrupciones, y permite escalar diferentes partes de tu equipo de forma independiente.
Cada equipo y producto tiene necesidades ligeramente diferentes, y definir esas puertas y lo que debe ocurrir en cada una te ayudará a saber dónde están tus ineficiencias.
P: ¿Qué papel juega CI/CD en DevOps y cuáles son las mejores prácticas para implementar pipelines de CI/CD que garanticen un proceso de lanzamiento de software fluido y confiable?
Es fundamental llevar los cambios de software desde la idea hasta la producción lo más rápido posible. Los procesos manuales son extremadamente lentos y dependen de los humanos. Los humanos, aunque son excelentes en cosas como la resolución de problemas y la creatividad, suelen fallar al ejecutar listas de verificación de manera exhaustiva cientos de veces al día. Automatizar las tareas tediosas permite realmente que tu equipo se concentre en aquello en lo que destaca. Además, las computadoras son excepcionalmente rápidas y pueden escalar rápidamente. Crear un pipeline que aproveche estas capacidades es la principal ventaja de adoptar un proceso de CI/CD.
Un aspecto clave a tener en cuenta al construir un proceso como este es equilibrar la velocidad con la seguridad. Aunque se puede automatizar por completo cada commit de un desarrollador para que llegue directamente a producción, eso no ofrece ninguna seguridad. Construir tu pipeline para permitir ese nivel de velocidad y luego ir añadiendo comprobaciones poco a poco puede beneficiarte en el futuro. Quizás al principio, todo necesite la aprobación explícita de un ingeniero de QA y un ingeniero de lanzamiento, pero el proceso real puede ser solo presionar un botón.
Una vez que tengas las pruebas automatizadas implementadas, es posible que puedas eliminar la aprobación de QA.
P: ¿Cómo contribuye el fomento de una cultura y mentalidad DevOps al éxito general de un equipo DevOps y qué estrategias pueden usar las organizaciones para promover esta cultura entre sus equipos de desarrollo y operaciones?
La principal batalla en esta transformación es luchar contra la mentalidad de "tirarlo al otro lado del muro". Si eres nuevo en este camino, es posible que tengas cinco o seis equipos que deban intervenir en cada tarea antes de que llegue a producción. Al transitar hacia DevOps, se fomenta una responsabilidad compartida sobre todo el ciclo de vida del producto.
Esto puede requerir cambios significativos en la forma en que diseñas, construyes y despliegas tu solución. Aunque muchos están familiarizados con la creación de software más testeable, adoptar una cultura DevOps implica construir sistemas y plataformas para que equipos pequeños sean responsables de ellos de extremo a extremo.
P: ¿Cuáles son los “5 Componentes Esenciales de un Equipo DevOps Exitoso”? Por favor comparte una historia o ejemplo para cada uno.
1. Un entendimiento compartido de lo que significa DevOps para tu organización. – Una de las iniciativas de DevOps más contraproducentes es cuando la gerencia y el equipo no están alineados respecto a los resultados. DevOps es mucho más que contratar ingenieros “DevOps” y comprar una herramienta de CI/CD. Una vez que se alinean en que se trata de un cambio de mentalidad, se permite que los equipos realmente se adueñen de la entrega de valor al cliente de principio a fin.
2. Espacio y apoyo para identificar e implementar cambios – Los equipos DevOps suelen identificar muchas formas de mejorar la entrega y la eficiencia del equipo. No permitir espacio para esta exploración limita realmente el impacto que tu equipo puede tener en impulsar el cambio.
3. Formas de medir e identificar el éxito a través de los datos – Todos conocen las métricas DORA y las cuatro medidas clave que se aplican a la organización de desarrollo para valorar la madurez DevOps. Aunque son un buen punto de partida, debes identificar qué significa ser una organización DevOps para tu negocio, y hacerlo a través de datos.
4. Un producto construido para apoyar la propiedad y el desarrollo de esta filosofía – DevOps es una gran filosofía para muchas organizaciones, pero a menudo las empresas no están preparadas para asumir la transformación. Debes asegurarte de que tu producto sea capaz de ser soportado por un equipo combinado de operaciones y desarrollo. Los productos locales, con ciclos de lanzamiento rígidos y los que simplemente no tienen la madurez necesaria pueden no ser apropiados. Se pueden apreciar algunos beneficios a medida que tu equipo adopta una mentalidad más operativa, pero los impactos serán limitados.
5. Automatización y herramientas - Asegura que las cosas ocurran de manera constante y rápida y garantiza la responsabilidad sobre los acuerdos de trabajo. Uno de los cambios fundamentales en una organización DevOps son los acuerdos de trabajo que estableces con tu equipo y entre equipos. Si estableces un proceso de pruebas que requiere que todo el código pase pruebas de regresión antes del despliegue, deberías automatizarlo. Deberías establecer comprobaciones y puertas automatizadas para garantizarlo. Una vez que implementes estas herramientas y prácticas, a menudo descubrirás que metas ambiciosas como el despliegue continuo están a solo unos pasos más.
Asegúrate de que las pruebas no solo se ejecuten, sino que también cumplan con tus estándares de calidad.
P: ¿Qué tendencias emergentes ves que podrían impactar significativamente las estrategias de transformación digital en el futuro?
Muchas de las grandes promesas de iniciativas como la transición a DevOps se basan en datos a alto nivel y resultados generales. A menudo, estas cifras llamativas, como “tu organización es un 50 por ciento más eficiente”, son casi imposibles de medir y puede ser difícil verificar que realmente se logran esos resultados.
Espero ver un esfuerzo más enfocado en identificar resultados específicos para cada organización antes de comenzar un proceso de transformación digital de varios años. Esto no solo se alinea con el enfoque en la eficiencia empresarial que ha crecido en los últimos años, sino que también asegura el éxito. En lugar de objetivos generales como los mencionados, metas específicas (pero de gran impacto) como “Resolvemos los problemas de los clientes un 25 por ciento más rápido” son más concretas.
Impulsando el Crecimiento a Través del Mentoreo
El poder del mentoreo y la comunicación abierta es evidente en el camino de Jeremy Freeman. Aprendiendo activamente de otros y fomentando un entorno colaborativo, los líderes pueden empoderar a sus equipos DevOps para lograr grandes cosas.
Suscríbete al boletín de The CTO Club para más entrevistas, consejos sobre DevOps y recomendaciones de mentoreo.
