• Atrévete a fallar. En público.

    Incrementar tu masa muscular duele. Tienes que ir al gimnasio y lastimar tus músculos. Y no será sino a través de la consistencia y dedicación que, después de un tiempo, comenzarás a ver los resultados. Tus músculos estarán más definidos, y tendrás más vitalidad.

    Lo que nadie te dijo es que es exactamente el mismo proceso — complicado, arduo y tedioso a veces — para crecer profesionalmente. A diferencia del físico, para crecer en tu carrera profesional no necesitas lastimar tus músculos. Necesitas lastimar tu ego. Y lastimar el ego duele mucho más, de manera más profunda, que un trícep recién ejercitado.

    Fallar significa que estás conociendo tus límites. Ese sentimiento de fracaso, aprenderás eventualmente, es en realidad el trampolín a aprender cosas nuevas. Así como una Roomba debe de primero pegarse en todos los muebles para saber dónde no puede limpiar, tú necesitas fallar en muchas tareas para saber qué no sabes. Aún.

    Pero a diferencia de la Roomba, tú sí puedes tumbar esa pared, o mover ese mueble.

    Todos tenemos miedo de fallar. Sobre todo a fallar en público o con un equipo. Desafortunadamente la educación que recibimos la mayoría de nuestra generación nos enseñó que un error era algo que lamentar. Probablemente creciste creyendo que un error, o un fallo, debes evitar a toda costa. Cuando en realidad, los errores son el principal catalizador del crecimiento — en todos los ámbitos.

    Fallar es parte de crecer. Es recibir feedback.

    Una idea que no se pone a prueba está segura. Porque no se puede robar, ni modificar, ni pervertir. Pero tampoco se puede criticar, mejorar ni usar en el mundo real.

    Puedes pasar toda tu carrera estudiando y aprendiendo nuevas cosas — tecnologías, metodologías, herramientas, etc. Pero no será hasta que salgas, intentes hacer algo y lastimes un poco tu ego en el proceso, que todo el conocimiento adquirido se sintetizará en aprendizajes.

    Atrévete a fallar. En público. Serás imparable.

  • Cómo tener más de 24 horas al día

    Todos tenemos las mismas 24 horas en el día. Tú, que programas en Java, cuentas exactamente con el mismo número de minutos de sol que tu compañera experta en React. Ambos trabajan en la misma compañía. En el mismo proyecto, incluso. Entonces, ¿por qué pareciera que ella puede hacer más, con más calidad, mientras tú batallas por cumplir con tus entregas a tiempo?

    La respuesta es que tu compañera sabe cómo sacarle más provecho a su día. No se distrae, y encontró la manera de tener más de 24 horas en el día — pareciera.

    La correcta gestión del tiempo es un Soft Skill esencial para cualquier desarrollador de software que valga su peso en sal.

    Si gestionas bien tu tiempo, creerás que tienes más de 24 horas disponibles cada día de lo mucho que puedes hacer. Es por eso que debes de priorizar crear espacios en los que tu creatividad pueda no solamente nacer, sino florecer. Libre de distracciones. Y es que muchas personas de la industria tienen la concepción errónea de que desarrollar software es una tarea meramente técnica. Cuando en realidad es un proceso 100% creativo.

    Irónicamente, tu trabajo sucederá la mayor parte del tiempo en frente de una computadora, donde las distracciones están a la orden del día.

    Por fortuna, existen estrategias que puedes implementar para que, efectivamente, puedas tener más de 24 horas efectivas en tu día.

    Reclama tu tiempo

    Lo primero que debes hacer es establecer reglas para que puedas ser eficiente. James Clear dice en su libro Atomic Habits: “no subes al nivel de tus metas, sino que caes al nivel de tus sistemas.”

    Lo primero que debes hacer para asegurarte de que no vas a perder tiempo efectivo de tu día es controlar tu ambiente.

    Apaga tus notificaciones. Tan simple como puede sonar, de verdad no necesitas estar al pendiente de todo lo que está pasando en tu compañía en todo momento. Y no, tampoco necesitas saber cuál es el último #lord en Twitter.

    Cierra Slack y tu cliente de correo. De verdad, está bien. No necesitas responder de manera inmediata.

    Agrega en tu calendario bloques de tiempo específicos en los que tu única tarea sea revisar tus mensajes pendientes.

    Bloquea distracciones. Estar en la zona es difícil. Tu cerebro buscará cualquier oportunidad para presionar ⌘T en Chrome y comenzar a escribir “faceb”. A menos que hayas desarrollado un nivel de conciencia bastante bueno como para poder cacharte a ti mismo y detenerte, la solución más sencilla es que simplemente no puedas acceder a distracciones.

    Modifica tu archivo para bloquear todos los dominios que sabes que son un agujero de conejo para ti. Aquí hay una lista de más de 2 mil dominios que Facebook usa – agrégalos y no solamente no podrás distraerte viendo memes, sino que tampoco te podrán seguir en internet. Aquí hay una de Twitter.

    Si quieres un poco más de flexibilidad, puedes usar una aplicación como SelfControl, que es en esencia lo mismo.

    Sé más celoso de tu tiempo. No quiere decir que tengas que decir que no automáticamente a todo, o que no te conectes a absolutamente ninguna llamada. Pero sí es bueno que te comenzaras a preguntar si realmente necesitas dedicarle tiempo a algo en medio de una sesión de debugging.

    Puedes comenzar con estos tips para que evites llamadas innecesarias.

    Otra técnica que me ha funcionado tremendamente es configurar mi iPhone para que las llamadas de números que no tengo registrados se vayan directamente a buzón. Puedes activar esto yendo a Ajustes > Teléfono > Silenciar desconocidos.

    Estos consejos te ayudarán a no perder tiempo. Ahora veamos como puedes dar el siguiente paso y ganar tiempo.

    Compra tiempo y automatiza

    Puede que esta parte sea la más atractiva porque tiene que ver más con herramientas y menos con disciplina. Pero es importante que sepas que si no arreglas primero tu problema de pérdida de tiempo, los consejos en esta sección no tendrán tanto efecto.

    Habiendo dicho esto…

    Compra el tiempo de otros. Haz una lista de cosas que no te gusta hacer en tu día a día. Puede ser cocinar, lavar la ropa, buscar estacionamiento, hacer el súper. Cuando tengas esta lista, analiza cuánto tiempo te toma hacerlas. Saca la cuenta de cuántas horas le inviertes a estas actividades, en conjunto, a la semana.

    Supón que tú ganas $50 USD por hora y surtir tu comida te toma 2 horas a la semana. Si le puedes pagar a alguien para que lo haga por ti pagando menos de $100 USD a la semana, hazlo.

    Paga por herramientas que te resuelvan problemas muy específicos. Hay cientos de miles de personas que comparten el mismo tipo de problemas. Y por más oscuro que sea lo que quieras resolver, seguramente hay un servicio que lo puede hacer por ti. Considera usarlo.

    Por ejemplo, en mi caso, gran parte de mi trabajo sucede en consultas con miembros de esta comunidad. Durante un tiempo intenté administrar mi agenda de manera manual, pero muy pronto me di cuenta de que mi tiempo podría estar mucho mejor empleado en otras tareas. Así que decidí dejar de preocuparme puntualmente por mi agenda, y ahora es un trabajo que hacen Calendly y Zapier por mí.

    Abstrae y simplifica las tareas más repetitivas de tu día. Busca que tu workflow no sea tan complicado — mantenlo simple.

    Utiliza un administrador de snippets para que no tengas que estar escribiendo lo mismo una y otra vez. En lo personal utilizo Alfred, pero podrías considerar también TextExpander, si es que buscas una herramienta más robusta.

    Alfred me gusta porque también tiene un administrador de portapapeles integrado, que también es una herramienta indispensable para mí. Un administrador de portapapeles te permite tener, básicamente, un historial de todo lo que has copiado durante un determinado periodo de tiempo. Ya no te tienes que preocupar por pegar antes de copiar otra cosa. Cambia el juego completamente.

    Conclusiones

    No tener una buena gestión del tiempo no solamente es un problema en tu cabeza. Tiene consecuencias reales en nuestra productividad y en nuestra propia percepción de qué tan bien estamos haciendo nuestro trabajo.

    El objetivo, a fin de cuentas, no es que tengas más horas al día, sino que le puedas sacar mucho más provecho a las mismas 24 horas que tengo yo y todas las demás personas en el mundo.

    Si aplicas estos puntos, sí es posible que sientas que tu día ahora tiene más de 24 horas como por arte de magia. Pero no, no es magia. Es disciplina.

  • La diferencia entre el calendario y un to-do list

    Cuando comienzas a preocuparte por organizar tu tiempo de una mejor manera, las primeras herramientas que te van a sugerir es usar un to-do list y un calendario. Un error que muchas personas cometen es asumir que estas herramientas son intercambiables, pero no es así. Ni de cerca.

    La configuración más común de este error es ver tu calendario como una lista de cosas que debes hacer.

    Pero tu calendario no es un to-do list.

    Cuando tengas espacios grandes en tu calendario, dedícalos a atacar múltiples tareas en tu to-do list. Estas tareas no necesariamente tienen que estar relacionados con tu trabajo. En mi to-do list yo tengo cosas como “cargar audífonos” o “agendar recolección de la lavandería”.

    La diferencia es sutil, pero poderosa.

    En tu calendario van eventos que están atados a un horario/lugar específico. “De 9 a 10 voy a hacer mi investigación para mi nuevo artículo”. Es algo que solamente puede suceder dentro de ese horario.

    En tu todo-list, agrega tu miscelánea de pendientes. “Revisar que se envió un correo” o “verificar que me hayan contestado X cosa”. No importa dónde lo haga, ni a qué hora.

    ¿Cómo sé si va en mi calendario o en mi to-do list?

    Agrégalo en tu calendario si…

    1. Más de una persona está involucrada.
    2. Requiere un bloque de tiempo para que puedas concentrarte.
    3. Requieres estar en cierto lugar para completarlo.

    Agrégalo a tu to-do list si…

    1. No importa a qué hora ni dónde lo hagas.
    2. Completar la tarea te llevará menos de 30 minutos.
    3. La entrega está sujeta a una fecha límite.

    Complementos

    Tanto un calendario como un to-do list son piezas integrales de un sistema de productividad. Como tales, no son exclusivas, y por el contrario, funcionan excelentemente cuando se usan en conjunto.

    Imagina que te asignan un proyecto que requiere que hagas una investigación exhaustiva sobre un tema en particular. Vamos a decir que quieres conocer el ciclo de vida del plancton. Organízate de la siguiente manera:

    1. En tu to-do list crea un ítem que se llame “Entregar reporte sobre el plancton.”
    2. Asígnale tu fecha límite pactada.
    3. En tu calendario, crearás eventos de 2 horas cada día de la semana llamados “Investigar sobre el ciclo de vida del plancton”.

    De este modo, tu to-do list y tu calendario se están complementando para aumentar tu productividad. Tu to-do list alimenta tu calendario, y tu calendario asegura que tengas el espacio necesario para cumplir con tu fecha de entrega.

  • Comunicación síncrona: ¿qué es, cuándo usarla y por qué?

    La comunicación síncrona usualmente sucede a través de medios que yo llamo “efímeros”. Este tipo de medios favorece la velocidad en la que los mensajes pueden ser transmitidos sobre cualquier otro factor.

    La comunicación síncrona se caracteriza porque requiere que todas las partes involucradas estén prestando atención a lo mismo durante el mismo periodo de tiempo. Como con HTTP 1.1, que la conexión entre el cliente y el servidor debe de mantenerse vigente para que el mensaje pueda llegar de un lugar a otro. Si uno de los dos componentes deja de poner atención, la conexión se termina y el mensaje no es comunicado.


    El protocolo HTTP 1.1 requiere que ambas partes se mantengan en sintonía para que el mensaje pueda ser comunicado correctamente.

    Los medios de comunicación síncrona son usualmente efímeros. Es decir, que solamente “existen” mientras están siendo usados. Una llamada telefónica, por ejemplo, se podría considerar un medio de comunicación síncrono:

    • Todas las partes necesitan poner atención a la llamada para que esta sea productiva.
    • Si uno de las dos partes cuelga el teléfono, la comunicación se termina.
    • Esa llamada en particular únicamente existe mientras está sucediendo. Al terminarse no es posible volver a tener esa misma llamada. (Se podría volver a tener la misma conversación, pero no la llamada.)

    Existen muchos medios de comunicación síncronos a tu disposición. Es importante que aprendas a identificarlos y a usarlos de manera adecuada. Aquí hay algunos otros ejemplos de medios de comunicación síncrona que te podrás encontrar en tu carrera:

    • Conversaciones de pasillo.
    • Mensajes instantáneos (Slack, Google Chat, Teams, WhatsApp, Telegram).
    • Videoconferencias (Google Meet, Whereby, Zoom).
    • Sesiones de pair programming.

    ¿Cuándo debes usar la comunicación síncrona?

    Por lo general se utilizan medios de comunicación síncrona cuando el mensaje es relevante únicamente durante un periodo de tiempo. Un ejemplo de esto es cuando se quiere notificar de algún evento, como que una tarea se terminó en tiempo y forma.

    Lo que debes de considerar al momento de comunicar algo a través de medios síncronos, es que el riesgo de que ese mensaje se pierda y no vuelva a ser encontrado es bastante alto. Por lo general, deberías de evitar utilizar medios de comunicación síncronos asumiendo que la información que compartas va a poder ser recuperada después.

    Aunque algunos medios de comunicación síncronos, como los mensajes directos, tienen la habilidad de buscar información pasada, la realidad es que no están diseñados para esto. La mayoría de estas herramientas están diseñadas con la conveniencia en mente, no con la consigna de que deberían de ser un acervo de información hacia el futuro.

    De manera más concisa, está bien usar medios de comunicación síncronos si…

    • El mensaje que quieres comunicar es relevante únicamente durante un marco de tiempo definido. Es decir, no importará si ese mensaje se pierde en el éter, porque de todos modos únicamente aportaba valor si se consumía al momento en que lo enviaste. Ejemplo: “ya va a comenzar la llamada”.
    • Existe un sentido de urgencia de tu parte. Por ejemplo, en caso de que tengas una emergencia porque el servicio está caído, es mucho más práctico llamar por teléfono a la persona de DevOps para que apoye que enviarle un correo (asíncrono) para notificarle.
    • No estás tomando decisiones que impacten de manera estructural el futuro del proyecto o del equipo. Por ejemplo, ¿tú y tu equipo están intentando decidir qué librería de linting van a utilizar en el proyecto? Discutirlo en un chat grupal está bien — es una conversación. Pero si estás intentando decidir qué topología de red se va a instalar en un edificio, esta conversación debería de ser llevada en medios que estén diseñados para preservar la información a largo plazo.

    Combinando la comunicación síncrona y la asíncrona

    Algo que debes de tomar en cuenta es que una conversación que inicia de manera síncrona tiene la capacidad de convertirse en asíncrona, si así se requiere. Y de hecho, siempre que estés comunicando algo a través de medios síncronos, deberías de poner mucha atención si algo de lo que se está compartiendo debería preservarse.

    Notificar que un proyecto se completó de manera exitosa es claramente información apta para ser comunicada síncronamente. Puedes hacerlo a través de Google Chat o Slack. Sin embargo, el historial y resumen de entrega del proyecto completado es información que se debe de preservar, y por lo tanto deberías de preservarlo en una carpeta compartida de Google Drive o Dropbox. 

    Lo anterior es un ejemplo de cómo, para el mismo propósito, combinarías la comunicación síncrona y la asíncrona.

    La comunicación siempre está en flujo

    No siempre será posible utilizar el medio correcto para compartir lo que quieres. Y está bien. Eres humano.

    Lo importante, más allá de que utilices tal o cual aplicación para comunicar algo, es que comiences a generar la conciencia de que no solamente importa qué dices, sino cómo lo dices y a través de qué medio. Sobre todo si estás en una posición de liderazgo, pues cómo tú comunicas pone la pauta para el resto del equipo. Y créeme, no hay nada más complejo que intentar ponerle orden a la comunicación de un equipo de un día para otro.

    Ejercitar tu músculo para saber si estás usando el medio adecuado para comunicarte con tu equipo es uno de los pasos que debes de tomar para mejorar tu carrera profesional. Hacerlo no solamente te abrirá los ojos a un mundo de empatía más allá del código, sino que te hará mucho más digno de confianza ante tu equipo. Sabrán que tú, más que un miembro más de la banda, serás una pieza catalizadora de organización y orden.

  • ¿Saber Inglés sigue siendo una ventaja competitiva?

    Un lector y miembro de la comunidad pregunta si solamente es necesario saber inglés para sobresalir en el mercado de desarrollo.

    Adjunto el correo completo:

    Desde el comienzo de la pandemia he seguido a personas que trabajan remoto y una de las cosas que veo que más se repite es “habla ingles” y con eso ya lo tienes resuelto. Llevo 7 años trabajando para consultorías y solo hasta ahora me di cuenta de este nuevo mundo pero no estoy seguro qué estoy haciendo mal o qué no estoy haciendo para entrar a esta zona (trabajo remoto internacional).

    He visto los sitios donde hay vacantes pero bueno como un menu de restaurant a veces uno no sabe qué es lo indicado por elegir o si esta decisión será la peor por tomar, ahora que te escribo puedo pensar que es miedo o inseguridad y que a nadie les dicen como hacerlo.

    Habiendo explicado un poco creo que mis preguntas son:

    • como empiezo?
    • debo comenzar diferente con base a mis años de experiencia?
    • como calculo cuanto pedir de lo que percibo actualmente a una vacante remota?
    • el mercado solo busca reactjs? (ajajaj es la mas popular pero como front end dev pareciera que ahorita es el unico camino, o solo ideas mias)
    • que recomiendas para perder el miedo de equivocarnos?
    • he pensado que tener contactos te da una entrada a estas vacantes mejor que en los sitios… alguna recomendación de como hacer amistades en linea?

     

    Mi respuesta:

    Tener el objetivo claro te permitirá seguir motivado ante todas estas preguntas que te estás haciendo.

    Saber inglés ya no es una ventaja competitiva. Es el mínimo requerimiento.

    Tener tantos años de experiencia sí es algo que puedes usar a tu favor. Dependiendo de los proyectos en los que hayas participado, podrías incluir en tu currículum ejemplos de tus contribuciones. Pero personalmente, lo que aprecio más en un currículum, es que me ayudes a entender más allá del código que escribiste, el impacto que causaste en las organizaciones donde has trabajado.

    ¿Identificaste problemas por tu cuenta e hiciste propuestas para solucionarlos? ¿Tuviste responsabilidades claves dentro de tu organización? ¿Apoyaste a implementar nuevos procesos que dieron como resultado mejoras para los clientes?

    Respecto al salario que debes de pedir al trabajar de manera remota, te recomiendo que leas estas respuestas. También, te incluyo uno de mis Tweets que representa muy bien mi filosofía:

    https://twitter.com/swanros/status/1331389389495218176?s=21

    No, el mercado no solamente busca ReactJS, pero debes de estar listo para balancear tus habilidades con la demanda que existe. Si estás enfocado en desarrollo web al 100%, probablemente ReactJS sea algo de lo que no podrás escapar. En ese momento es cuando debes de tomar una decisión, basada en tu objetivo final, sobre si aprender esa tecnología es lo que te pone en una mejor posición para llegar a tu meta. Si no, hay otras mil tecnologías de desarrollo en las que te podrías volver experto, y así diversificar tu propuesta de valor para cualquier empresa.

    Habiendo dicho esto, el miedo a equivocarse es natural. No lo pierdes, aprendes a lidiar con él. Te recomiendo que inicies buscando un ambiente laboral en el que los errores sean vistos como oportunidades de aprendizaje, y no como medios para castigar a las personas. Pero lo más importante, es que nunca pierdas las ganas de intentarlo. Tener tu objetivo claro te mantendrá en el camino correcto.

    Para finalizar, te dejo esto: deberías considerar tu CV como tu principal herramienta, pero únicamente en tu primera vez buscando empleo. Conforme vas avanzando en tu carrera, tu principal fuente de opciones y de oportunidades viene de la comunidad en la que estás envuelto. Gente con la que has trabajado, colaborado, o compartido. Personas que ya conocen la calidad de tu trabajo, lo inteligente de tus preguntas, y tu habilidad de recibir y dar retroalimentación objetiva.

    Así que sí, estás en lo correcto, te conviene comenzar a rodearte de personas y comunidad más que de páginas de internet. Mi recomendación acá es que te acerques a comunidades en línea y comiences a hacer ruido, compartir cosas, y ayudar a otros miembros. Twitter también es una herramienta bastante poderosa si la usas a conciencia.

    Algunas comunidades a las que te puedes unir:

    Espero que estas respuestas te den un norte para seguir adelante.