• Cómo identificar la experiencia en otros ingenieros

    ¿Cómo saber que alguien no tiene mucha experiencia haciendo lo que hace? Porque constantemente está subestimando el esfuerzo o la complejidad de las cosas que quiere hacer.

    Algunas frases características de alguien nuevo haciendo software:

    • Yo podría hacer este sistema completo en un fin de semana si me lo propusiera.
    • Esta solución es estúpida, hay una manera más óptima de hacerlo.
    • Mañana queda, solo hace falta implementar los manejadores de errores.
    • ¿Por qué decidieron usar esta tecnología habiendo una más nueva?
    • Si yo estuviera a cargo, nunca habría elegido esa plataforma. Hay opciones mucho más escalables y con mejor soporte.

    Una marca infalible para identificar que alguien tiene experiencia haciendo lo que hace — sobre todo si eso es software — es que aprecia que todo sistema se puede romper o fallar, dependiendo del contexto en el que está desarrollada la solución. Se aproxima al problema con un sentido de curiosidad, no de juicio, para entender por qué se tomaron las decisiones que se tomaron, y el contexto dentro del cual se diseñó la solución.

    La experiencia informa sus estimaciones y proyecciones de éxito. Hace espacio para tomar en cuenta cómo se debería de comportar la solución cuando pase “lo que no debería de poder pasar”.

    Mientras más experiencia adquieres en la industria del software, más logras apreciar que no existen soluciones perfectas: únicamente existen soluciones para las cuales todavía no se encuentran deficiencias.

    Por algo se dice que el único trabajo de un Ingeniero Senior, es decir, “depende”.

  • Gatekeeping: qué es, cómo identificarlo, y cómo combatirlo

    Gatekeeping. Cuidar ranchos. Creer que la forma en que tú ves el mundo es la única válida que existe. Y activamente invalidar las perspectivas de otras personas.

    Me gusta hablar del gatekeeping. Para mi sorpresa, cada vez que lo menciono, me preguntan a qué me refiero con “gatekeeping” o “cuidar ranchos”. Estoy escribiendo este artículo con dos objetivos; 1) tener un enlace para enviar la próxima vez que me pregunten, y 2) generar un poco más de conciencia al respecto — porque pienso que hace falta.

    Como muchos fenómenos sociales y culturales, promovemos o padecemos el gatekeeping sin saberlo — porque nadie nos explicó que existía, y simplemente somos víctimas… o victimarios. Sucede lo mismo con el gaslighting, por ejemplo.

    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.

    Hacer gatekeeping es estar tan envuelto en tu propia idea del mundo, tu craft o tus gustos, que ignoras los deseos, necesidades y perspectivas de las personas que te rodean. Antepones tu versión de lo que es “correcto” a tus supuestas ganas de “apoyar”, y terminas compartiendo respuestas condescendientes, que lo único que hacen es hacer sentir mal a la persona, que lo único que quería era tu ayuda.

    Sufrir del gatekeeping, en contraste, no te hace sentir superior ni valida tus ideales. Al contrario, te hace sentir mal, te hace dudar de tus habilidades y tu potencial. Te hace creer que no vas por el camino adecuado, y refuerza en ti la idea de que hay una única forma “correcta” de hacer las cosas, lo que es completamente erróneo. Sufrir del “cuidarranchismo” también es desalentador y te puede llevar a resentir la ayuda de aquellos que genuinamente quieran ayudarte.

    Qué hacer para combatir el gatekeeping

    gatekeeping en la industria del software

    Si te das cuenta de que cuidas ranchos: felicidades, acabas de completar el paso más difícil. Ahora es momento de hacer cambios en cómo te conduces. Primero, cuando alguien te pida ayuda (o quieras dar un consejo espontáneo), hazte las siguientes preguntas:

    • ¿Reconozco que la otra persona tiene un objetivo muy particular que no necesariamente tiene que ver conmigo y mi historia?
    • ¿Comprendo las necesidades, capacidades y situación de la otra persona?
    • ¿Tengo la claridad mental necesaria para compartir mi aporte sin intentar validar mi preconcepción personal de lo que es correcto o válido?

    Segundo, recuerda que si hay algún ambiente en el que haya respuestas absolutas y 100% correctas, no es en el mundo de la tecnología. Lo que hoy es aceptado, mañana puede ser considerado una mala práctica. Una de las características más importantes para trabajar en esta industria es tener la mente abierta.

    Tercero, haz las paces con tu antiguo yo que hacía gatekeeping y se sentía orgulloso por ello.

    Está bien: parte del proceso de crecer personal y profesionalmente es darte cuenta de lo que está mal y no aporta, y hacer algo al respecto. Y en eso estás, así que date la oportunidad de reconciliarlo y seguir adelante.

    ¿Y si soy víctima del gatekeeeping?

    Si eres víctima de un cuidarranchos, debes de saber que no es tu culpa. Esta industria está llena de personas con hábitos reduccionistas y absolutistas, y no eres la única persona que está pasando por esto. Puede sonar como justificación para su comportamiento, pero no lo es.

    Así como hay muchísimas personas en tecnología que basan su identidad en estar bien y promover estas prácticas, hay otras tantas que estamos jugando juegos infinitos, con ganas de ver a nuestros colegas crecer. Me atrevería a decir que somos más los que genuinamente queremos darte las herramientas para que salgas a hacer lo que tienes que hacer.

    Primero, asimila este concepto y agregarlo a tu vocabulario. También, hazte el hábito de identificar los indicadores de que estás lidiando con un cuidarranchos, y de que deberías de enfocar tus energías en buscar otro lugar para pedir ayuda:

    • Te quieren vender una única idea de cómo hacer las cosas
    • Te chantajean mencionándote cómo podrías fallar si no usas lo que ellos te recomiendan
    • Hacen menos las contribuciones de otras personas en la industria a diestra y siniestra
    • Cuando, salen a respingar cuando dices que deberías agregar documentación a tu código, y no únicamente escribir código que se documente solo.)

    Segundo, ayuda a que más personas se hagan conscientes de esto. Mientras haya más personas con la conciencia de lo que hacer gatekeeping representa, será mucho más sencillo sacar a flote estas discusiones. Esto es importante porque creo que nos merecemos tener espacios seguros donde podamos sentirnos respaldados por una comunidad que nos quiera ver crecer.

    Si detectas que alguien está haciendo gatekeeping, hazlo notar.

    Haz ruido, levanta la voz, hazles ver lo que está sucediendo. Si estás en una posición de liderazgo en la que puedas tomar acciones concretas al respecto, hacerlo es tu responsabilidad.

    Da feedback, modera, lidera. Y si ni explicando razones se remedia la situación, ahí no es.

    En conclusión…

    Saber lo que es el gatekeeping no es una licencia para que agregues un buzzword tech a tu vocabulario y sigas como si nada. Lo que diferencia a los humanos del resto de los animales es nuestra habilidad de ponerle nombre a las cosas. Hemos desarrollado un lenguaje que nos permite comunicarnos, establecer reglas y llegar a acuerdos. La principal motivación de ponerle nombre a las cosas es poder explicarlas, estudiarlas y mejorarlas. Así que ahora que sabes lo que es, que existe y por qué es importante compartirlo, también tienes la responsabilidad de hacer algo al respecto.

    En resumen

    • ¿Quieres de verdad llegar a ser un 10X Developer? Deja de cuidar ranchos.
    • ¿Quieres hacer algo por tu comunidad? Ayuda a un cuidarranchos a dejar esos modos.
  • Soft Skills que aprendes en tu primer año haciendo software

    En una publicación en Medium, Anish, un recién graduado de un bootcamp, nos cuenta los Soft Skills que ha aprendido en su primer año como ingeniero de software. Un poco de historia:

    A veces no puedo creer que en mayo de 2022 prácticamente no sabía nada sobre ingeniería de software (aparte de ser un auténtico experto en hacer que mi computadora diga ‘¡Hola, mundo!’). Avancemos rápidamente hasta hoy, y llevo más de 1 año en mi carrera profesional como ingeniero de software en una agencia creativa, y puedo decir con seguridad que estoy disfrutando cada segundo de ello.

    A continuación, te dejo algunos extractos de las cosas que más resonaron conmigo.

    Mentalidad de constante crecimiento

    La mentalidad de crecimiento (o growth mindset, como también se le conoce), te invita a darte cuenta de que cualquier cosa que parezca difícil en primera instancia, es algo que eventualmente puedes dominar. Siempre y cuando le pongas la dedicación adecuada.

    Desde que conseguí mi primer trabajo como desarrollador, he estado constantemente expuesto a nuevas ideologías, tecnologías y conceptos casi todas las semanas. Sin adoptar una mentalidad de crecimiento, tener tantos temas diferentes que aprender puede sentirse abrumador e incluso desafiante en ocasiones, especialmente viniendo de un bootcamp.

    También comenta sobre la importancia de poner las cosas en perspectiva, y que la visibilidad a largo plazo también es clave para darte cuenta de cuánto has crecido:

    …el crecimiento es una serie de altibajos, pero si observas el panorama general y te mantienes firme, dentro de 10 años tu conjunto de habilidades seguramente te sorprenderá.

    Habilidades fuertes de comunicación son clave

    Cómo trabajar en un equipo pequeño hace que la comunicación efectiva sea un factor clave para tener éxito y seguir creciendo:

    Trabajar en una empresa pequeña, con un equipo de desarrollo de 3 personas (que incluye a dos directores generales), hace que mis responsabilidades sean mucho más claras, por lo tanto, mis habilidades de comunicación con mis directores, gerentes de proyectos, ejecutivos de nivel C y clientes deben ser elevadas, precisas y claras.

    Este punto me pareció particularmente importante:

    El resultado de comunicar de manera efectiva permite a la empresa tener una idea más clara de cómo avanza un proyecto, si existen obstáculos y si lo entregaremos a tiempo.

    Entre desarrolladores existe el chiste de que los Project Managers saben decir una sola frase: ¿cómo vamos? Hasta memes hay. Si tú eres uno de esos, te pregunto: ¿no será que tú tienes que mejorar tus habilidades de comunicación para que no te tengan que estar preguntando cómo vas a cada rato?

    Las oportunidades que te va a dar ser parte de un equipo

    Trabajar con otras personas no es lo mismo que trabajar en equipo. Anish explica:

    Ya sea en un evento social del equipo, reuniones sociales de la empresa, un evento organizado por un colega, o simplemente almorzando con diferentes departamentos, es importante conocer a otras personas en la empresa.

    He aprendido mucho de todos aquí. No sabía lo que era la redacción publicitaria hasta que hablé con nuestro departamento de redacción.

    Ahora que Anish sabe que existe algo que se llama Copywriting, puede explorar otra perspectiva que aumentará el valor de sus contribuciones más allá de escribir código. Lo mismo pasa cuando hablas con gente de negocio, marketing, operaciones, y demás.

    Desarrollar software se trata de resolver problemas para personas. Mientras más herramientas tengas para ver esos problemas desde diferentes perspectivas, más oportunidades vas a tener de hacer un impacto real.

    Saber en qué necesitas mejorar

    Ejercicio de humildad, sí. Esta es la actitud correcta (y otra vez, growth mindset):

    Básicamente, soy un ingeniero de software de nivel intermedio ahora. Trabajo de manera autónoma en su mayor parte, he comprendido cómo leer la documentación minuciosamente, mis habilidades de comunicación son excelentes, y he contribuido en varios proyectos divertidos e innovadores. Sin embargo, las oportunidades siempre superan a mis éxitos, y eso está bien, porque estoy comprometido a seguir aprendiendo.

    Y reconocer que el síndrome del impostor es algo con lo que vamos a tener que aprender a vivir:

    Los sentimientos de síndrome del impostor vienen y van hasta el día de hoy, incluso después de haber estado un año en mi carrera y estar al borde de ser un ingeniero de nivel intermedio. Estoy aprendiendo que abrazar el síndrome del impostor es parte del camino y que no estoy solo.

  • Burnout, explicado para desarrolladores de software

    Hablar del burnout en abstracto puede carecer de impacto real. Déjame explicarte.

    Imagina que intentas explicarle a un niño de 3 años por qué es mala idea meter un tenedor en una toma de corriente. Para que aprecie los peligros de ello, tendríamos que explicarle primero sobre electricidad, materiales y sus propiedades de conducción eléctrica, y luego sobre el concepto de “electrocutarse”.

    Eventualmente, ya sea por accidente o academia, cuando el niño se haga consciente de la progresión de eventos que lo llevan a sentir la descarga eléctrica en su cuerpo, y los efectos en su salud, proactivamente evitará acercar un objeto de metal a una toma de corriente.

    Sucede lo mismo cuando hablamos de burnout. Intentar explicarle a alguien por qué debería de hacer todo lo posible por prevenir el burnout asume que la persona tiene el suficiente autoconocimiento para reconocer su origen y los efectos que los síntomas tienen en ella.

    El burnout se manifiesta de manera diferente en cada uno de nosotros

    Una rápida búsqueda en internet te dará síntomas como:

    • Agotamiento y fatiga constante.
    • Bajo rendimiento laboral.
    • Sentimientos de impotencia y fracaso.
    • Irritabilidad constante.
    • Procrastinación.
    • Problemas de comunicación.

    Muchos de estos síntomas también pueden estar asociados a trastornos de salud mental, como la depresión o ansiedad. En caso de duda, consulta con un profesional

    Aun así, aunque indicativos, son subjetivos. ¿Qué significa realmente “agotamiento”? Tu umbral de cansancio podría ser el nivel de energía estándar de otra persona. ¿Qué es “irritabilidad constante”, y cómo se manifiesta en tu día a día? Respuestas diferentes dependiendo a quién le preguntes.

    Además, tenemos diferentes niveles de resiliencia ante las mismas situaciones

    Agregándole una variable más al problema: no a todos nos pegan de igual manera las mismas situaciones.

    Dependiendo de la historia personal de cada quien, lo que para uno pudiera una situación completamente normal y manejable, para otra persona pudiera ser un problema complejísimo de sobrellevar.

    La misma situación tiene un impuesto de estrés diferente para cada uno. Recuerda eso.

    Fugas de Memoria: Un modelo mental para entender el burnout si eres desarrollador de software

    En el mundo del software decimos que no hay aplicación sin errores; solamente hay aplicaciones cuyos errores todavía no descubrimos.

    De igual modo, el burnout no es algo que está prendido o apagado, sino una serie de factores compuestos que se van acumulando y acumulando hasta que evolucionan y te hacen “tronar”.

    Es como una fuga de memoria, o memory leak, en tu programa: si se encuentra en una parte de la aplicación que tu usuario no visita varias veces durante la sesión, no hay tanto por qué preocuparse — el sistema tiene suficientes recursos para gastar. Pero si la fuga está en un hot path de la aplicación, muy pronto se convertirá en un problema. El sistema se quedará sin espacio para memoria “desperdiciada”, y terminará forzando el cierre de la aplicación.

    Ningún programa es 100 % eficiente. La mayoría de los sistemas complejos, tanto en software, como en la naturaleza, producen desperdicios — y está bien. Así como los dispositivos en los que corren nuestros programas están diseñados para seguir funcionando aún con cierto nivel de desperdicio de memoria, los humanos somos naturalmente resilientes para lidiar con cierto nivel de situaciones adversas que si no se mantienen bajo control pueden evolucionar a un nivel de burnout que nos haga rompernos emocional, intelectual o profesionalmente.

    Como buen desarrollador de software que se preocupa por el rendimiento de su código, ya tienes el hábito de depurar tu aplicación constantemente para asegurarte de que estás usando los recursos de tu sistema de la mejor manera posible. Ahora, como persona consciente de la importancia de evitar el burnout, regularmente evalúa si tus hábitos, rutinas, ambiente y forma de llevar tu día a día está ayudándote a mantener un nivel sano de burnout.

    Prevenir es mejor que lamentar

    No existen soluciones absolutas para los problemas humanos. En este continuo de vida y carrera, todas las soluciones a los problemas de las personas comienzan con un “depende”, y esto no es una excepción para el burnout.

    Pero eso no es excusa para “hacernos de la vista gorda” y hacer como que tomar acciones en pro de prevenirlo no es importante simplemente porque aún no sufrimos los estragos del mismo.

    Al contrario, creo que es un llamado a la acción para invertir un poco más en el autoconocimiento, que en sí es un proceso. Ver el burnout como un botón que puede estar en encendido o apagado limita tu capacidad de entender sus matices y complejidad. Ofusca la combinación de factores que pueden estar influyendo en un área tan relevante de tu vida, como tener la capacidad de continuar trabajando en algo que te gusta.

    Si eres de las personas que tienen el privilegio de no haber experimentado el burnout en carne propia, te invito a que utilices el modelo mental de Fugas de Memoria para comprender la importancia de ser proactivos y evitar que el burnout se manifieste. Si, por el contrario, ya has experimentado el burnout, te invito a que reflexiones y aprendas a detectar los síntomas y cómo se manifiestan en ti, y a través del autoconocimiento tomes las medidas necesarias para evitar que vuelva.

  • Feedback: cómo darlo, tomarlo, y apreciarlo

    La retroalimentación, o feedback, es una de esas habilidades blandas que solemos ignorar hasta que nos enfrentamos a situaciones que la requieren. Pero aquí te digo algo: dar y recibir feedback no solo es crucial para tu desarrollo profesional, sino también personal.

    Creo que la razón por la que ignoramos la importancia de esta habilidad hasta que es muy tarde es muy obvia, y también muy humana: es incómodo. Es incómodo reconocer nuestros límites, y darnos cuenta de que hay cosas en las que necesitamos mejorar. O, incluso, que hay cosas que hacemos, que tienen efectos secundarios que ni siquiera habíamos considerado.

    Sin embargo, por más incómodo que sea, es importante que como profesionales del software desarrollemos la capacidad de dar, recibir, e integrar feedback. Después de todo, si nuestro trabajo se trata de ser lo suficientemente resilientes al enfrentarnos a problemas indefinidos, ¿por qué no deberíamos de invertir un poco en ser más resilientes en un ámbito más personal?

    El feedback que recibes moldea tu trabajo. Y tu vida.

    Hace más de 10 años, Héctor, uno de mis mejores amigos, me aconsejó que dejara de amargar a los demás si ya no quería ir a la universidad. “Si ya no quieres venir, no vengas, pero no estés aquí haciéndonos pasar un mal rato”. Ese fue mi último semestre en la escuela.

    Unos años después, un recién graduado de Stanford me despidió semanas después de entrar a la startup donde ya llevaba yo más de un año trabajando. La relación no inició de buena manera, y un martes por la mañana me subí a una reunión de Hangouts con él, y me dijo que yo era muy difícil para trabajar, y que ese era mi último día.

    ¿Doloroso? Sí. ¿Incómodo? Obviamente. ¿Útil? También.

    Durante mi carrera y vida personal, los momentos que han dejado huella son aquellos en los que recibí feedback. Tan directo como mi amigo diciéndome que ya no era divertido tenerme cerca, lo que me llevó a tomar una decisión que cambiaría la ruta de mi vida. O tan indirecto como alguien simplemente diciéndome que ya no quería trabajar conmigo, tomando una decisión por mí.

    Consciente o inconscientemente, das y recibes feedback todo el tiempo

    Pensaba que la retroalimentación era una actividad puntual que tenías que hacer y programar. Así como puedes quedar con tus amigos para salir a tomar algo, ¿quedamos para darnos feedback?

    Aunque sí funciona así en el contexto profesional (en el mejor de los casos), la realidad es que constantemente estás dando y recibiendo feedback. Estés consciente de ello o no.

    Las muecas o gestos que otros hacen cuando les cuentas tus ideas, también son una forma de feedback. ¿Se muestran emocionados y animados, o hacen gestos de duda y consternación? ¿Te hacen preguntas de seguimiento, o solo te escuchan, asienten, y pasan a lo siguiente?

    Y lo mismo aplica para ti. ¿Cuál es tu postura cuando alguien te está compartiendo sus ideas? ¿Estás presente en la conversación, escuchando, o solo estás oyendo las palabras que salen de su boca?

    Se trata del comportamiento y sus efectos, no de la persona

    Es clave separar el comportamiento de la persona.

    La Navaja de Hanlon, uno de mis modelos mentales favoritos, dice:

    Nunca atribuyas a malicia lo que puede se explicado por estupidez.

    En este caso, creo que aplica cambiar la palabra “estupidez” por “ignorancia”. No atribuyas a malicia, lo que puede ser explicado por ignorancia.

    Todos somos ignorantes en algunos aspectos. Y está bien. Cuando das retroalimentación de manera directa — es decir, con intención — lo que estás buscando es hacerle saber a la otra persona el efecto de su comportamiento en su entorno, obsequiándole el beneficio de la duda de que dicho efecto se encuentra en su punto ciego.

    Así, eliminas el componente personal de la retroalimentación e incrementas las probabilidades de que el comportamiento sea corregido.

    Héctor hizo exactamente eso conmigo hace una década. En vez de decirme “eres un amargado y ya no quiero tenerte cerca”, me hizo saber el efecto que mi comportamiento estaba teniendo en mi grupo de amigos. Y no solo eso: también me dio una sugerencia de cómo lo podía resolver.

    Y le estaré siempre agradecido.

    Si haces lo que Héctor hizo conmigo, la persona que reciba nuestro feedback no lo verá como un juicio a su identidad personal (ego), sino como una oportunidad de revisar o seguir teniendo un comportamiento: algo que está completamente dentro de su control. Y sí, el feedback también es importante para reforzar los comportamientos con efectos positivos de las personas.

    Hay miles de maneras de dar y recibir retroalimentación

    También es retroalimentación:

    • El compromiso que generamos en otras personas
    • El detalle con el que otras personas contribuyen a nuestras ideas después de que se las contamos
    • La postura que adoptamos al interactuar con otros
    • La calidad de atención que le prestamos a alguien
    • El nivel de energía con el que interactuamos
    • Entre otras…

    Haciéndote conscientes de esto, puedes apreciar la importancia de que, al compartir feedback puntual, tienes que hacerlo buscando resaltar aún más las características del comportamiento que quieres corregir o promover en la otra persona.

    Recuerda que el feedback no es un lujo, sino una necesidad para crecer como profesional y ser humano. La invitación es a que aceptes la retroalimentación como una parte integral de tu oficio, tanto interna como externamente, y estarás en el camino hacia una carrera más humana y sostenible en la ingeniería de software.