• ¿Cómo me comunico mejor con stakeholders no técnicos?

    Juan García me envía la siguiente situación:

    Soy un ingeniero de datos. Recientemente, mi manager me dio feedback sobre mis habilidades para comunicarme, especialmente cuando presento información compleja a stakeholders no técnicos. Me dijo que necesitaba hacer que mis presentaciones fueran más accesibles.

    ¿A qué se refiere y cómo puedo mejorar en ese aspecto?

    En el mundo del desarrollo de software existe un término que tal vez conozcas: a11y. Es un numerónimo que significa “accessibility.” Accesibilidad.

    En corto, la accesibilidad es la disciplina de pensar en las diferentes capacidades que podrían tener las personas que van a interactuar con nuestro producto, o consumir nuestro contenido, y ofrecerles mecanismos para que su experiencia se vea afectada lo menos posible.

    En diseño web y de aplicaciones móviles, buenas prácticas de a11y son que los usuarios puedan hacer zoom libremente en la página, o que puedan interactuar con tu aplicación usando VoiceOver, por ejemplo.

    Ahora, hablemos de tu situación particular. Cuando tu manager te dice que tienes hacer tus presentaciones más accesibles, no se refiere necesariamente a que elijas mejores colores o una tipografía más legible (aunque no estaría de más que también le dieras una revisada a eso). Lo que quiere decir es que necesitas asegurarte de que las personas que están recibiendo la información que presentas entiendan por qué es relevante, y qué tienen que hacer al respecto.

    Como ingenieros, es muy fácil creernos nuestro propio cuento de que nuestro trabajo es lo más importante. En realidad, y como he dicho varias veces, la única razón por la que tenemos trabajo es porque le estamos resolviendo problemas a un usuario — a un stakeholder. Y muchas veces, ese usuario no es técnico, ni le importa cómo resolviste el problema. Solo quiere saber cuánto le va a costar, qué pasa si no se resuelve a tiempo, y qué alternativas existen.

    Toma esto en cuenta.

    Porque puedes estar comunicando que corriste una regresión lineal, y que detectaste una variación del 0.5 % de la tendencia esperada; cuando lo que les interesa a tus stakeholders es saber cuánto dinero se van a ahorrar si aprueban el proyecto que les estás proponiendo.

    Hace unos meses escribí sobre la importancia de aprender a hablar el lenguaje de tus stakeholders:

    Traduce tu valor. Como desarrolladores de software, tenemos que comenzar a ver que vender nuestras habilidades no es manipulación, sino adaptación. No es cambiar lo que hacemos, sino cómo lo comunicamos. La clave aquí es entender que en una organización se hablan diferentes lenguajes, y que aprender a hablarlos aumenta nuestro valor y nos permite colaborar de manera más efectiva.

    Entonces, las preguntas que yo te haría son: ¿cuál es el lenguaje que hablan tus stakeholders? ¿Y qué estás haciendo para traducir tu trabajo a uno que no solamente entiendan, sino que les sea útil para hacer el suyo?

  • Trabajo remoto y creo que tengo menos oportunidades de crecer en la empresa

    Javier Martínez me envía la siguiente pregunta (editada para brevedad y claridad):

    Soy ingeniero de software y trabajo remoto para una empresa de San Francisco. Últimamente estoy notando que los ascensos y las oportunidades clave se concentran en las personas que trabajan presencialmente. Aunque me esfuerzo por participar, me cuesta sentirme igual de conectado que mis colegas. Por ejemplo, me enteré por casualidad que otros compañeros presentaron proyectos directamente al CTO mientras yo seguía tratando con mi manager. No quiero sonar quejumbroso, pero noto diferencias en cómo los que están en la oficina construyen relaciones orgánicas y son tomados en cuenta.

    Me gustaría saber cómo manejar esta situación de una manera que no afecte mi carrera. Estoy buscando equilibrio entre hacer visible mi trabajo sin caer en la presión de trasladarme a la sede central solo para avanzar, ya que el trabajo remoto ha sido una bendición para mí y mi familia. ¿Debería buscar maneras formales de reunirme con los jefes? ¿O tal vez encontrar proyectos más grandes para liderar que me hagan imposible pasar desapercibido? Me pregunto si me estoy quedando corto en algo que no estoy viendo o entendiendo sobre cómo destacar en un entorno remoto.

    Con la reciente tendencia de RTO (return to office), muchas personas se encuentran en una situación similar a la tuya. Lo que estás viviendo es justamente una de las razones por las que recomiendo que, si quieres un empleo remoto, busques una empresa en la que no seas “la minoría” que no está en la oficina.

    Y es que la situación es la siguiente: las empresas que no tienen una cultura sólida de trabajo remoto o asíncrono, van a tender a favorecer a las personas que están en la oficina. No es porque sean malas personas, ni porque no confíen en ti o en tu trabajo. Simplemente, es que las empresas están compuestas por humanos, y los humanos tendemos a buscar el camino de menor resistencia para atender nuestras necesidades. Nuestro cerebro va a regresar a hacer lo que sabe — como sabe hacerlo. En el caso de las empresas que únicamente se movieron a trabajo remoto porque era eso o desaparecer, el camino de menos resistencia es operar como lo venían haciendo hasta ese momento.

    James Clear en su libro Atomic Habits tiene una frase que encapsula esto de manera elegante: “No subes al nivel de tus aspiraciones; caes al nivel de tus sistemas.”

    Aplica para tus hábitos. Aplica para las empresas.

    Ahora, en tu contexto personal, mencionas que quieres saber cómo manejar esto de manera que no afecte tu carrera. Creo que valdría la pena hacer algunas preguntas:

    • ¿Qué significaría para ti que no recibieras un ascenso en esta empresa? Dependiendo de la etapa profesional en la que te encuentras, las implicaciones pueden ser completamente diferentes. Por ejemplo, si estás muy al inicio de tu carrera, puede ser que un ascenso “mueva más la aguja” de tus finanzas y experiencia que si ya tienes un buen sueldo o prestaciones.
    • ¿La empresa tiene alguna política que dice que no puedes estar en el mismo nivel más de cierto tiempo? Hay algunas organizaciones que dan por entendido que para continuar trabajando ahí tienes que crecer. Algunas otras tienen lo que se les conoce como “niveles terminales”, que básicamente es un “no importa si no creces mientras sigas cumpliendo con tu trabajo”. La postura de tu empresa ante esto es importante, porque directamente influencia la prioridad que le das a tu problema.
    • En tu lista de prioridades, ¿qué es más relevante: crecimiento profesional o un balance vida/trabajo que te permita continuar disfrutando de tu familia? Mencionas que la situación de trabajo remoto que tienes actualmente ha sido una bendición para tu familia. Te invito a factorizar esto en tu proceso de toma de decisiones, porque probablemente un ascenso a otro nivel de responsabilidad signifique que tu flexibilidad de horario y disponibilidad se verán impactadas también.

    Desafortunadamente, no te puedo ofrecer una respuesta definitiva a esta pregunta, porque todo depende de tus prioridades y qué estés dispuesto a sacrificar. Para cualquier decisión que tomes, tendrás que considerar los tradeoffs: ¿qué estoy sacrificando vs. qué estoy ganando?

    Te deseo éxito, y ¡gracias por tu pregunta!

  • Empresas de E.E.U.U buscando devs en México

    En Reddit, me encontré una pregunta de alguien que tiene una empresa en EE. UU., y pide consejo sobre cómo conectar con desarrolladores en México:

    Tienes algún consejo o recomendación sobre cómo contratar ingenieros a tiempo completo en México? Estoy empezando a hacerlo y agradecería cualquier consejo que tengas (escuelas destacadas, consejos para encontrar talento, bolsas de trabajo donde puedo publicar, etc.)

    Creo que depende mucho de qué es lo que quiera hacer a mediano/largo plazo, porque las estrategias se pueden ver muy diferentes. Y esto aplica para ambos lados de la ecuación.

    La empresa de EE. UU. que busca devs en México

    Considera el giro del negocio, y la motivación para contratar gente en México. Lo puedo ver a través del lente de consultoras vs. empresas de producto.

    Si es una consultora, y nada más está buscando mano de obra más económica, pues el approach podría ser mucho más relajado: busca comunidades locales, y patrocina algunos de sus eventos.  Lo puedes hacer hasta de manera remota. Esto también te da mucha más flexibilidad y apertura, porque ni siquiera tienes que hacerte presente, así que no nada más puedes buscar en el mercado de México, sino de toda Latinoamérica.

    Para una empresa de producto que está buscando expandir y diversificar su talento, la estrategia se puede ver muy similar de inicio. Encuentra un meetup y patrocina unos eventos, sí. Pero también hazte presente y trae a alguien más de tu equipo para hacer conectes. Déjale ver a la comunidad que vas en serio, y que estás apostando por talento local. (Así conseguí mi primera chamba para una startup de San Francisco.)

    Para empresas de producto, también es importante no pensar solamente en cómo contratar desarrolladores, sino cómo mantenerlos. Hablamos de probablemente tener una entidad legal en México, ofrecerles beneficios, paga competitiva, oportunidades de crecimiento profesional, entre otros. Contratar es lo fácil.

    El dev de México que busca chamba en EE. UU.

    De este lado, también hay algunos matices que considerar.

    Si eres uno de esos a los que le gusta coleccionar chambas y trae de a 3 al mismo tiempo, es un approach muy diferente a alguien que le está tirando a hacer una carrera a largo plazo en un dominio específico.

    Los busca chambas 3000 van a priorizar las oportunidades que paguen más con la mayor flexibilidad posible. Por ejemplo, un proceso de entrevistas meticuloso, tener que estar en llamadas, o con disponibilidad en cierto horario, pueden ser factores que hagan que ni siquiera consideren una oportunidad.

    Pero alguien que tiene una visión de crecimiento profesional a largo plazo, podría considerar una oportunidad con los mismos requerimientos de manera más seria — siempre y cuando esté alineada con lo que esta persona quiere.

    ¿Entonces?

    Al final de cuentas es un juego de oferta y demanda, como en cualquier mercado.

    Y para que no te vendan gato por liebre, primero tienes que saber por qué quieres una liebre, cómo distinguirla de un gato, y, lo más importante, a dónde ir a buscarla. Porque si buscas liebres donde hay puros gatos, adivina qué vas a obtener.

  • Sí hay candidatos buenos. Somos malos reclutando.

    Juan Montilla, en LinkedIn:

    … solo descartar un entrevistado porque no logra hacer un Algoritmo Sort tipo: Selección, Inserción ó no sabe crear un Árbol Binario Invertido, pero conversando sabe hacer:

    • API
    • Deployment en Cloud
    • CI/CD
    • Docker

    Pregunto: ¿Por qué no tomarlo? si para la vacante no va a estar haciendo rectos algorítmicos complejos.

    Hay empresas que dicen que quieren contratar a los mejores, pero su definición de “mejor” no está para nada asociada con la realidad del trabajo del día a día. Juan continúa:

    Entonces dicen: “Nos cuesta reclutar”, y surgen comentarios que: “los Bootcamps no sirven y las Universidades tampoco”.

    Realmente lo que no funciona, es el proceso de entrevista de N entidades.

    Es un excelente punto, pero creo que no es el que Juan está queriendo hacer.

    Pensar que un recién salido de un bootcamp (o de una universidad, vaya) va a poder diseñar un proceso de reclutamiento que tome en cuenta todos estos matices de desarrollo profesional está en al nivel de ingenuidad que las empresas que entrevistan con algoritmos cuando únicamente hacen CRUDs.

    Irónicamente, en mi experiencia, son precisamente este tipo de empresas las que dejan a sus propios ingenieros diseñar el proceso de entrevistas, y delegan completamente esta responsabilidad a gente que no está capacitada para asumirla.

    Sucede así: una empresa contrata a un ingeniero que, por suerte, es muy bueno tirando código. Y si es bueno tirando código, naturalmente también será bueno filtrando candidatos (¡dhu!). Entonces, de repente, el ingeniero bueno tiene la validación de su empresa para emitir un juicio sobre los candidatos que llegan a tocar sus puertas. Y hay de dos: o el candidato es muy bueno, o incluso mejor que el que lo está entrevistando, y decide no contratarlo porque pone en riesgo su estatus dentro de la compañía; o no es tan bueno técnicamente como el entrevistador, y aprovecha la oportunidad para masajear su ego.

    “Lo siento, jefe, no nos llega ningún candidato bueno.”

    Que entre líneas es un “yo soy el mejor” disfrazado.

    En un artículo pasado, escribí:

    El gatekeeping es una de las principales razones por las que las comunidades de tecnología se pueden sentir tan hostiles y cerradas para las personas que están intentando incursionar en este mundo. Viene de la noción de que “si me costó tanto trabajo a mí, no debería ser más sencillo para ti”, acompañado de un toque de narcisismo al asumir que la otra persona quiere exactamente lo mismo que tú — o que desea obtener exactamente tus mismos resultados.

    Y creo que ese es el problema que se tiene que resolver.

    ¿De quién es la responsabilidad, entonces? Del equipo de liderazgo: del CEO, del CTO, del CPO, de los directores de área — de la persona que decide que la empresa necesita contratar a alguien más. Porque si están en esa posición, se podría asumir que es porque son expertos en los aspectos humanos del trabajo, y no nada más de la parte técnica. Son las personas en esta posición las que tienen que involucrarse activamente a definir los procesos, y asegurarse que las expectativas de las personas que los están implementando están claras.

    Sí, los procesos pueden ser deficientes. Y si lo son, es porque los que deberían de asegurarse que los incentivos estén alineados no están haciendo bien su chamba.

  • Soy tech lead, pero parece que lo que hago afecta más de lo que ayuda

    Juan R., de CDMX, me envía esta pregunta:

    Soy tech lead en una fintech emergente en la Ciudad de México. En los últimos meses, he notado que no estoy logrando un buen equilibrio entre liderar a mi equipo y continuar con mis responsabilidades técnicas directas. Por ejemplo, una semana puedo pasarla completamente en reuniones, gestionando retros, planificando sprints y alineando al equipo con el producto, pero eso me deja muy poco tiempo para hacer revisiones de código o trabajar en las implementaciones técnicas avanzadas. Luego, cuando trato de enfocarme en respaldar técnicamente a mi equipo, termino descuidando los aspectos de liderazgo y comunicación, lo que afecta la entrega de proyectos e impide que los más juniors crezcan adecuadamente.

    Esta situación me tiene bastante frustrado, porque siento que en ambos frentes estoy fallando. Mi jefe me dio excelentes comentarios sobre mi capacidad para gestionar, pero señaló que descuido las revisiones técnicas y, si no mejoro en eso, podríamos cometer errores que afectarán al equipo. Pero cuando invierto tiempo en lo técnico, noto cómo algunas dinámicas del equipo se resienten (la comunicación se estanca o fallamos en la entrega de ciertos backlog tasks). Entonces, me pregunto: ¿cómo puedo encontrar una estructura o flujo que me permita balancear mejor ambas responsabilidades y dejar de sentir que siempre hay algo (o alguien) que está siendo desatendido?

    ¡Felicidades, eres víctima de tu propio éxito!

    Ya, en serio: quiero honestamente felicitarte porque parece ser que eres muy bueno en ambos aspectos de tu trabajo, lo cual ya es de admirar.

    Lo primero que me gustaría saber es si el rol de “tech lead” está bien definido dentro de tu organización, y cuál es la diferencia de expectativas entre esa posición y la de un Engineering Manager. Diferentes organizaciones tienen diferentes expectativas para estos roles que requieren un poco más de seniority, y sería importante saber cuál es el contexto en tu situación particular.

    Por lo que me comentas, me atrevería a asumir que en tu organización no existe un rol de Engineering Manager, y que toda la responsabilidad, tanto del equipo, como proyectos y entregables, se la recargan al líder técnico. Además, me atrevería a asumir que le reportas a alguien que está supervisando muchos equipos — probablemente un director de área.

    Tomando eso en cuenta, creo que lo que te está pasando es un caso de “el que mucho abarca, poco aprieta”. Y no digo que necesariamente sea tu culpa: puede ser que la estructura organizacional y expectativas de tu rol te hayan puesto en esta situación.

    Pero aquí no echamos culpas. Aquí nos hacemos responsables. Así que toca buscar cómo darle la vuelta.

    Si yo fuera tu manager, primero te invitaría a que revisáramos las responsabilidades de tu rol para tener claridad de las expectativas.

    Segundo, me pondría a trabajar mucho contigo en desarrollar tus habilidades de liderazgo y de delegar responsabilidades.

    Tu jefe tiene razón al decir que si descuidas las revisiones técnicas podrían cometer errores que afecten al equipo. También yo podría argumentar que el hecho de que tú seas el único que puede revisar el trabajo de tus compañeros les quita la oportunidad de desarrollar esas mismas habilidades que te llevaron a ti a ser tech lead.

    Lo que está pasando es que estás siendo un cuello de botella para tu equipo. Y en el proceso te estás quemando.

    Esto me queda claro cuando mencionas que cuando le dejas de poner atención a un área de tu equipo, se nota que los procesos y rutinas comienzan a fallar. O tienes demasiadas responsabilidades a tu cargo; o el equipo no tiene claras cuáles son las responsabilidades compartidas que tienen.

    En cualquiera de las dos, tú estás en medio, y como su líder, es tu responsabilidad identificar el problema y resolverlo.

    Ahora, cuando hablo de “aprender a delegar” no quiero decir “tienes que aprender a asignar tareas a otras personas”. Delegar se trata de transferir responsabilidades, no tareas, a otras personas. Y para tener éxito delegando, tienes que asegurarte que la persona a la que le estás dando esa responsabilidad está capacitada para cumplirla. He dicho anteriormente que una de las cosas que menos me gusta de ser Engineering Manager es que no puedo resolver problemas de personas a través de un Pull Request, y estás a punto de entender por qué. Porque el problema que tienes ahorita, no se va a resolver hoy o mañana, sino dentro de unos cuantos meses de prueba y error, donde poco a poco vas a involucrar cada vez más a los miembros de tu equipo en las tareas que actualmente dependen completamente de ti.

    Identifica cuáles responsabilidades y procesos están actualmente atados a tu presencia. Recluta a alguien de tu equipo que esté interesado en crecer en esa área, y comienza a hacerle shadow. Dale feedback, y ayúdale a sentirse más cómodo con sus habilidades. Establece una cadencia para darle seguimiento y procurar su mejora continua.

    Durante este proceso, también te vas a encargar de crear un ambiente de responsabilidad compartida dentro de tu equipo. Procurar que todos tengan un sentido de “ownership” de las metas a las que quieren llegar. Les vas a hacer saber, y a demostrar, que sí, tú eres el tech lead, pero la satisfacción de un trabajo bien hecho es de ellos.

    No va a ser fácil, ni rápido. Como dice el dicho, “se va a poner peor antes de que mejore”. Pero si lo que estás buscando es un cambio a largo plazo, este es el camino. No solamente estarás más tranquilo sabiendo que el equipo no depende de que tú estés presente para cumplir sus metas. También sentirás una gran satisfacción al saber que no estás entregando a tiempo, sino que también estás ayudando a crecer profesionalmente a las otras personas de tu equipo.

    Así que mi recomendación es que comiences de ya. Aquí hay algunos libros que te podría recomendar para que continúes explorando estas ideas más en profundidad:

    ¡Éxito!