Personas, productos y tecnología: una guía para principiantes sobre gestión de ingeniería

Publicado: 2022-03-11

Como ingeniero de software, sus responsabilidades generalmente se definen muy claramente: se le asignan tareas y su trabajo es implementarlas a tiempo y de manera efectiva.

Sin embargo, en el rol de gerente de ingeniería, las responsabilidades a menudo no están definidas con tanta claridad. La gestión no es binaria; no hay respuestas directas a ciertas preguntas y problemas. El éxito que tenga como gerente dependerá de qué tan bien pueda dirigir a su gente, administrar su producto y administrar sus tecnologías.

Las personas son tu prioridad

En el rol de gerente de ingeniería, su nueva prioridad es su equipo. Entonces, ¿cómo te aseguras de tener un gran equipo?

Construyendo un equipo y estableciendo confianza

El primer paso es asegurarse de contratar a las personas adecuadas para su equipo si aún no tiene un equipo.

Una mala contratación no solo les hará perder el tiempo, sino también el tiempo de los otros miembros de su equipo, quienes deberán tomar el relevo. Esto desmoralizará al resto de su equipo. Incluso si una persona es un programador brillante, aún puede ser una mala contratación si no encaja bien con la cultura del equipo.

Asegúrese de hacer no solo preguntas técnicas, sino también preguntas abiertas sobre cómo trabajar en equipo o asumir un papel de liderazgo. Por ejemplo, pregunte a un candidato:

  • Para describir un problema reciente que tuvieron que resolver
  • Cómo implementaron la solución
  • Qué enfoques alternativos consideraron
  • Hablar sobre un momento en que tuvieron un problema crítico en la producción, cómo respondieron y qué hicieron para evitar el mismo tipo de problema en el futuro.

Una vez que tenga un equipo, dedique tiempo para ganarse el respeto de su equipo y establecer confianza. Para liderar un equipo de manera efectiva, debe desarrollar una relación saludable con los miembros de su equipo. Tómese el tiempo para comprender sus objetivos profesionales y lo que es importante para ellos.

La reunión uno a uno es una herramienta esencial para formar un vínculo con cada uno de los miembros de tu equipo y conocerlos mejor. ¿Cuál es la frecuencia ideal de reuniones uno a uno? Eso dependerá de las necesidades específicas de los miembros de su equipo, pero es una buena idea reunirse con ellos al menos un par de veces al mes.

Sin embargo, si usted y su equipo colaboran estrechamente o si tiene un equipo grande, puede realizar reuniones una vez al mes.

Cómo los gerentes de ingeniería empoderan y mejoran los equipos

Una gran parte de su trabajo se basa en identificar las fortalezas y debilidades de los miembros individuales. Ayúdelos a abordar sus debilidades asociándolos con un ingeniero sénior y realizando revisiones de código frecuentes, y concéntrese en sus fortalezas. Después de todo, son nuestras fortalezas las que nos motivan y dan forma a lo que disfrutamos hacer.

Asigna tareas en función de las habilidades y características de cada ingeniero para sacar lo mejor de cada persona y crear un gran equipo. La automatización puede hacer mucho en este sentido. Configure la integración continua para identificar el código roto o subóptimo y la persona que comete dicho código con frecuencia.

Los miembros de su equipo buscarán constantemente aprender, mejorar y crecer en áreas que les importan a ellos o al equipo. Es posible que las funciones y responsabilidades que tenían sentido para cada miembro del equipo el año pasado ya no sean las adecuadas este año. Para asegurar que cada miembro del equipo continúe sintiéndose desafiado y mejorando:

  • Preste mucha atención a su crecimiento personal, invierta en su desarrollo y ayúdelos a alcanzar sus ambiciones.
  • Reúnase individualmente con los miembros del equipo para crear planes de desarrollo personal y empoderarlos para trazar sus estrategias de carrera.
  • Intente asignar tiempo extra para el autodesarrollo, permita que los miembros del equipo cambien de roles periódicamente y organice talleres internos o cursos de capacitación.

Además de asegurar el crecimiento profesional de todos, la responsabilidad de un gerente de ingeniería es proteger a su equipo. Debe empoderar a su equipo para que tome decisiones sin tener miedo al fracaso. Si las cosas fallan, asuma la responsabilidad y aprenda de los errores.

Esto fomentará la audacia en su equipo a medida que prueba nuevos enfoques y desarrolla una mentalidad de crecimiento. Dicho esto, los errores no deberían ocurrir más de una vez si brindó la retroalimentación adecuada y tomó las medidas oportunas para guiar a su equipo en la dirección correcta.

Gerentes de Producto y Gerentes de Ingeniería

El segundo aspecto importante del rol de un gerente de ingeniería es el producto. Tendrá que formar una relación cercana con el gerente de producto para alinear las expectativas y aprovechar la tecnología y las habilidades de su equipo para entregar un gran producto.

Aquí hay seis responsabilidades del gerente de ingeniería que debe seguir:

Asegúrese de que el proyecto esté bien priorizado

¿Cuál es la meta de seis a 12 meses para su equipo? ¿Quién es tu audiencia? ¿Qué esperan sus clientes del producto? Su equipo probablemente sepa en qué trabajará durante las próximas semanas, pero es crucial comprender el producto completo y hacia dónde se dirige.

Participar en las decisiones de desarrollo de productos.

Como gerente de ingeniería, trabajará con diferentes equipos y estará más comprometido con la dirección y las actualizaciones de productos que como colaborador individual. No necesariamente tiene que estar de acuerdo con cada decisión con respecto al producto, pero debe creer en el producto y querer mejorarlo. Puede desafiar al gerente de producto si no está de acuerdo con su decisión, pero tenga en cuenta que el gerente de producto tiene la última palabra. Respetarlos y apoyar sus decisiones.

Definir e impulsar la estrategia técnica y la metodología de desarrollo.

Si bien el trabajo del gerente de producto es definir la estrategia y los conceptos del producto, su función es definir la visión arquitectónica y el diseño técnico del producto. También es responsable de definir la metodología de desarrollo y garantizar su adopción por parte del equipo. Recuerde: el gerente de producto puede ser dueño del producto, pero usted y su equipo son dueños de la implementación del producto.

En algunos casos, es posible implementar características útiles con un pequeño esfuerzo de ingeniería. Por ejemplo, verifique si la actualización a la versión más reciente del marco que usa el producto puede ayudarlo a implementar alguna característica específica de manera más rápida o eficiente. Tener una buena visión general del producto puede ayudarlo a usted y a su equipo a identificar estos casos y sugerirlos al gerente de producto.

Equilibrar la creación y el pago de la deuda técnica y el desarrollo de nuevas características

Cuando crea su producto mínimo viable, el tiempo de comercialización es la máxima prioridad, por lo que puede acumular alguna deuda técnica. A medida que el producto evoluciona, el enfoque cambia a agregar nuevas funciones y mejorar el producto mientras se paga la deuda técnica. Sin abordar las compensaciones que hizo inicialmente, agregar nuevas funciones llevará más tiempo y será más costoso. Tómese el tiempo para comprender y realizar un seguimiento de los compromisos que ha hecho y encontrar un equilibrio entre resolver la deuda y agregar nuevas funciones.

Utilice la tecnología y la automatización para ayudar a administrar la deuda técnica**

Utilice análisis estáticos de código fuente para identificar el código con el mayor número de índices de mantenibilidad y priorizar la refactorización del código. De esta forma, será más fácil trabajar en nuevas funciones y se mejorará el rendimiento del producto.

Asegúrese de que la ejecución del producto va por buen camino

Debe comprender el estado actual del trabajo de su equipo. Si su equipo está retrasado, identifique los bloqueos aparentes y elimínelos. Por ejemplo, si el equipo se atasca en problemas técnicos con regularidad, organice sesiones frecuentes de programación en pareja para mejorar el intercambio de conocimientos entre los miembros del equipo. Si el equipo dedica mucho tiempo a implementar el código en los servidores, automatice el proceso para ahorrar tiempo y hacerlo menos propenso a errores. Minimice las interrupciones y cree procesos claros sobre cómo asumir nuevos trabajos y abordar los informes de errores.

Tecnología y Delegación

Aunque todavía es ingeniero, como gerente, desarrollar soluciones de software ya no es su función principal. Tiene ingenieros senior en su equipo, y ellos son responsables de la mayoría de las soluciones técnicas. Los generales no pelean guerras con rifles; los gerentes no deberían tener que microgestionar cada línea de código.

Sin embargo, debe usar su conocimiento y experiencia para asegurarse de que las decisiones tomadas por los ingenieros senior se ajusten a la hoja de ruta técnica y la dirección del producto. Delegue las decisiones técnicas a sus ingenieros senior, pero haga las preguntas correctas para garantizar que el producto sea escalable, seguro y confiable.

Por ejemplo, desafíe sus elecciones con “¿Qué pasaría si tuviéramos 20 veces más usuarios? ¿Sería eso sostenible?” o "¿Esta tecnología seguirá siendo compatible en dos o tres años?"

Puede y debe proponer soluciones y marcos alternativos basados ​​en su conocimiento y áreas de especialización, pero no fuerce ni presione a su equipo para que los acepte. Además de sugerencias tecnológicas, también puede hacer recomendaciones relacionadas con el proceso y la metodología de desarrollo.

Además, asegúrese de monitorear las métricas clave del producto. Las métricas comerciales y técnicas son igualmente importantes. Trabaje con el equipo de DevOps para crear alarmas para monitorear el sistema y mantenga a su equipo informado sobre problemas de operación. Finalmente, desarrolle una metodología para abordar los incidentes cuando ocurran para garantizar que no vuelvan a ocurrir.

Por último, pero no menos importante, manténgase actualizado con las últimas tecnologías y tendencias. Cuantas más opciones tenga y más sepa, más soluciones y marcos tendrá a su disposición. Designe un tiempo para leer artículos, hacer revisiones de código y participar en discusiones técnicas con su equipo.

Cuanto más sepas sobre cuestiones técnicas, más te respetará tu equipo. Mantenerse familiarizado con las tecnologías nuevas y emergentes, y alentar a su equipo a hacer lo mismo, lo ayudará a crear una atmósfera de curiosidad y desafiará a su equipo a buscar formas nuevas e innovadoras de resolver problemas técnicos complejos.