Cómo tener una comunicación efectiva siendo un programador trabajando remoto
Tags: programming, remotework, remotejobs, remote
Published: 2023-02-23 03:37:52

---
title: Cómo tener una comunicación efectiva siendo un programador trabajando remoto
published: true
description: Recomendaciones para tener una mejor comunicación en el entorno de trabajo remoto
tags: programming, remotework, remotejobs, remote
# cover_image: https://media.licdn.com/dms/image/D4E12AQHiZc5PbmU6aQ/article-cover_image-shrink_600_2000/0/1676837336131?e=1682553600&v=beta&t=iU2DUtoWhfCbfZCjilqCx74k8X3ZrXZQW_VKDGaqi5E
# Use a ratio of 100:42 for best results.
# published_at: 2023-02-23 03:32 +0000
---

Lograr una comunicación efectiva en ambientes remotos es un reto, y lo he vivido en gran parte de mi carrera profesional. Una de las principales preocupaciones a la hora del trabajo remoto es que el desarrollador sea capaz de usar el tiempo de manera eficiente.

En este artículo te enseño cuál pienso que es la mejor manera para superar la barrera comunicacional en el trabajo remoto, y cómo lograr una comunicación efectiva con todo tu equipo.

Esto ocurre porque a veces los desarrolladores se enfocan en los problemas equivocados, o la manera equivocada de ver el problema. Por tanto, puede haber una utilización del tiempo que sea ineficiente, y cause que tu productividad (y en consecuencia, la de tu equipo) se reduzca.

Como solución a estos problemas, te presento mi mejor técnica para mantener a mi equipo informado, y mantenerme productivo en una especie de "actualización continua".

La actualización continua consiste en mantener actualizado al equipo con respecto a todo el progreso alcanzado en una tarea. Debes escribir textualmente lo que estás haciendo, lo que pasó y cómo vas a continuar. Debes hacer públicos tus planes y metas porque te ayuda a ser más responsable. He utilizado esta técnica cerca de un año, lo he hecho algunas temporadas más que otras, y siempre que la he empleado, he tenido excelentes resultados.

Para aplicar esta técnica, debes contar con una plataforma de trabajo donde se manejen las tareas, sea Trello, Asana, Jira o YouTrack. Lo que debes hacer, es que por cada nueva tarea en la que empieces a trabajar, divides la tarea en partes (pequeñas tareas) y luego anotas cada elemento en un comentario. También deberías hacer un pequeño análisis de las páginas, artículos o documentación que podrías necesitar. Podría verse algo así:

**Tarea #248: Instalar y configurar Sentry para guardar todos los errores que sucedan en la app**

Tu comentario:
*Estuve analizando cómo desarrollar la tarea, y estas son las cosas que yo considero que debo hacer para llevarla a cabo:
Instalar Sentry. Revisé su documentación, y está bastante claro cómo configurarlo y enviar los errores, entonces voy a apoyarme en esta página (https://docs.sentry.io/platforms/node/) para hacer la configuración inicial
Una vez Sentry esté configurado, deberíamos buscar todos los sitios donde haya errores de la aplicación, y asegurarnos que estén cubiertos por Sentry.*

El comentario no es muy largo, pero ayuda mucho al equipo a saber en qué estás. Siendo este comentario el primero sobre la tarea, aún no estás haciendo una "actualización continua", solo pusiste el esquema de tu plan. Luego viene la mejor parte, que es realmente mantener a tu equipo actualizado sobre el progreso de la tarea.

La manera de hacerlo es sencillamente añadiendo nuevos comentarios a medida que vayas progresando en las pequeñas tareas. Tomando un ejemplo diferente, digamos que empezaste a trabajar en una nueva tarea y conseguiste 5 diferentes puntos en los que trabajar; e imaginemos que pasaron un par de horas y ya lograste terminar los dos primeros, podrías decir algo como:

*Terminé los primeros dos puntos de la tarea, en los que logré instalar la nueva librería para mostrar mapas y conseguí cómo hacer que se moviera desde la coordenada A, a la coordenada B, solo cuando el usuario pudiera ver el mapa en la pantalla. Ahora me toca eliminar la implementación de la librería de mapas vieja y reemplazarla con la nueva.*

Hacer este tipo de actualizaciones hace que todos estén en la misma página sobre el progreso, y no solo eso, sino que los miembros del equipo al ver el progreso tan transparentemente, pueden ayudarte a ver situaciones que no se te habían venido a la mente, o simplemente ayudarte a desatascarte. Además, otros programadores podrán darte sugerencias sobre cómo ellos han solucionado el mismo problema anteriormente. Te estarías apoyando en el conocimiento de tu equipo, y así, logrando que cada vez seas más eficiente.

Escribir tus planes y lo que quieres hacer, es una buena manera de despejar tu mente, porque le evitas el esfuerzo de recordar cada pequeña cosa que tienes que hacer para culminar la tarea.

Pienso que una de las ocasiones en las que es más complicado publicar actualizaciones con el equipo a través de comentarios es cuando estás atascado. Es fácil desanimarse de poner comentarios de progreso cuando "no estás progresando".
El caso es que siempre que estés intentando solucionar un problema grave, estás progresando. A pesar de que más adelante, cuando soluciones el error, digas algo como "¡No puede ser que me tomé tanto tiempo mirando en este sitio cuando era en otro!", te servirá para que la próxima vez que estés atascado, recuerdes que deberías mirar otras soluciones antes de pasar mucho tiempo en una sola.

Por tanto, siendo que no progresar es también progreso, deberías también comentar actualizaciones sobre lo que has aprendido que no funciona.

Los comentarios podrían verse así:

*Durante el día, investigué cómo trabajar con código asíncrono en Kotlin, y esto se hace con una librería llamada `Coroutines`. Aprendí sobre el `runBlocking`, `suspend functions` y `async/await`. Empecé por utilizar las `suspend functions` ya que se veían como la manera más sencilla, pero de esa manera no logré manejar los errores tan bien, entonces probé con el `async/await` de las `Coroutines`, y de esta manera logré manejar los errores mejor. Sin embargo, no he logrado hacer que la aplicación se detenga hasta que se tenga una respuesta de la función asíncrona, mientras también se sigue procesando los eventos del UI, continuaré investigando para entender mejor.*

La ventaja de trabajar de esta manera tan abierta, es que va a dar como resultado que tu equipo va a necesitar menos reuniones, porque van a saber todo lo que está pasando, y cuando estés invirtiendo tiempo en algo que piensan que no es óptimo, podrán tener discusiones sobre ello en el mismo hilo de comentarios. Asegúrate de que todos los involucrados con tu trabajo reciban una notificación cada vez que actualices tu tarea y con este enfoque, vas a lograr que tu equipo te ayude a ser aún más productivo.

De esta manera, además, permites que las conversaciones con el equipo sean de manera más asíncrona, permitiéndote poder trabajar con equipos con diferencia horaria bastante grande, teniendo una comunicación fluida, sin necesidad de apartar un tiempo diario de reunión en el que solamente se va a hablar del progreso hecho.

Las reuniones deberían ser para hacer algunas planeaciones, compartir ideas y fomentar la cultura de la empresa.
Esta es una de las mejores maneras de ahorrar tiempo y mejorar mi eficiencia que he encontrado, y creo que esto va de la mano con saber invertir tu tiempo de manera inteligente cuando trabajes con equipos remotos.