Cómo trabajar de forma remota y seguir siendo el mejor

Publicado: 2022-03-11

Ryan Wilcox ha prosperado como empleado remoto durante casi 10 años y ahora trabaja como consultor y desarrollador para empresas de todo el mundo como ingeniero de Toptal y fundador de su propia empresa. Actualmente trabaja a tiempo completo para Fanzter, una empresa de productos web e iOS.

El cinturón de herramientas del trabajador remoto

Comenzar un nuevo trabajo remoto o trabajar desde casa, ya sea un proyecto de contrato o un trabajo de tiempo completo, puede ser un poco intimidante si está acostumbrado a ir a la oficina día tras día.

Pero este estilo de empleo está creciendo en popularidad, con algunas empresas muy notables que lo respaldan.

He trabajado con éxito de forma remota utilizando estas herramientas durante años en proyectos de varias escalas y duraciones. Con esta publicación, espero enumerar algunas de las mejores prácticas que he recogido para trabajar en una variedad de situaciones. La guía de trabajo remoto y desde el hogar aquí incluye desde recomendaciones específicas para software y hardware, hasta consejos para cumplir con los plazos de su equipo.

La configuración remota o de oficina en casa

No puedo enfatizar lo suficiente la importancia de tener la configuración de oficina correcta. Te hará más productivo y lucirás más profesional. Por ejemplo, unos auriculares son cruciales para evitar el eco durante las llamadas en línea; pequeñas cosas como esta ayudan mucho cuando se trabaja como un control remoto.

Aquí hay algunas herramientas para trabajar de forma remota que considero esenciales dentro de mi propia oficina en casa:

  • auriculares Me gustan mucho los auriculares con cable en particular porque no se quedan sin batería en los momentos críticos. Lo usarás mucho, así que asegúrate de conseguir algo cómodo. Tengo dos auriculares iMicro: uno para mi escritorio y otro que guardo en la bolsa de mi computadora portátil. Como auricular de bolsa para computadora portátil, tiene dos grandes cualidades: debido a que funciona con USB, no tengo que preocuparme por mantener las baterías cargadas, y es muy económico reemplazarlo si se rompe en mi bolsa. En realidad, este auricular en particular me parece un poco incómodo para llamadas de conferencia largas; Si hace muchas de estas cosas, le recomiendo el Corsair Vengeance 2000: unos cómodos auriculares inalámbricos con batería que le permiten trabajar todo el día. (Por cierto: ninguno de estos son enlaces de referencia).
  • Lugar tranquilo para pensar , con una puerta que se cierra, especialmente si vives con otras personas, y sobre todo si tienes una familia.
  • Conexión a Internet estable o buena conexión de respaldo. Por ejemplo, tengo DSL y configuré el anclaje a red en mi teléfono si se interrumpe el DSL. Si constantemente tiene problemas con Skype o corta llamadas, se está volviendo menos confiable y menos profesional a los ojos de otros que podrían estar tratando de administrar varios empleados remotos.
  • skype Esto es bueno para llamadas de conferencia ad hoc, mensajería instantánea con clientes o incluso para crear salas de chat de poca ceremonia.
  • SkypeOut , que le permite recibir y realizar llamadas desde su teléfono a contactos de Skype. Esto es increíble, especialmente para los momentos en que está lejos de su computadora y (ha calculado mal un tiempo, el cliente tiene una emergencia, etc.).
  • Hervidor eléctrico . A veces quiero café caliente, pero no quiero interrumpir mi flujo para conseguir un poco.
  • Jarra de galón de agua . Para la tetera, o para beber. Para largas sesiones de codificación o largas conferencias telefónicas.

Una representación de un control remoto ideal o un trabajo desde la configuración de la oficina en casa.

Algunos de estos suenan obvios, pero te sorprendería la cantidad de controles remotos que no alcanzan todas las marcas aquí. Como desarrolladores, necesitamos un espacio tranquilo para pensar, sin interrupciones. Y como trabajadores remotos, necesitamos un lugar tranquilo para realizar conferencias telefónicas, reuniones, sesiones de programación en pareja, etc., sin interrupciones. Simplemente trabajar en su sofá probablemente no sea una buena solución de trabajo remoto a largo plazo.

Herramientas de software

Hay un montón de buenas herramientas de software disponibles para complementar su entorno de desarrollo típico y ayudarlo a superar los desafíos asociados con el trabajo remoto. Aquí hay algunos que realmente me gustan:

  • AwayFind , que es bueno para correos electrónicos urgentes, particularmente mensajes de última hora de un asistente a una reunión, ya que le reenvía sus mensajes a través de SMS.
  • Time Zone Converter , para trabajar con clientes y colegas de todo el mundo. Me gusta World Time Clock de Time And Date, Every Time Zone, World Time Buddy o The Time Now para una versión más accesible para las personas con discapacidad visual.
  • Salas de chat/IRC para todos los miembros del equipo. Esto podría ser formal (por ejemplo, una sala de Campfire) o simplemente una sala de chat de Skype (al estilo Keep It Simple, Silly).
  • Rastreador de errores: esto merece su propia sección, así que vea a continuación.

Al planificar reuniones, siempre confirme ambas zonas horarias. Y cuando reciba una invitación, siempre debe hacer los cálculos al revés y asegurarse de obtener los mismos números. Si la reunión incluye varias zonas horarias, me gusta incluir también la hora UTC. Dado que todos deben saber su compensación de UTC, esta es otra verificación para asegurarse de que todos estén en la misma página.

Estuve en un equipo de Rails de tamaño decente hace unos años. Varios miembros del equipo trabajaron de forma remota durante al menos parte del tiempo, y la cultura del equipo era que gran parte del trabajo se haría por las noches. Propuse configurar una sala de chat a través del líder oficial del equipo en ese momento, apuntando a Campfire o algún otro servicio de chat pago. Pasaron varias semanas sin ninguna acción y decidí configurar una sala de chat de Skype solo con los desarrolladores, para probar mi teoría de que una sala de chat sería una ventaja para el equipo. Este experimento tuvo mucho éxito, tanto que seguimos usando el chat de Skype en lugar de otra solución. Esta sala de chat de Skype todavía estaba en uso cuando dejé el proyecto casi un año después. A veces, lo simple puede ser la mejor opción.

Más tarde, durante una fecha límite crítica para el mismo proyecto, configuramos una sala de chat de Skype que incluía a los desarrolladores, los analistas comerciales, los gerentes de proyecto y el cliente, para que el grupo general pudiera responder rápidamente las preguntas. Si bien no es tan activa como la sala de chat solo para desarrolladores, funcionó muy bien. Los chats de Skype pueden ser moderados y controlados por algunos comandos de chat grupales, estableciendo roles de chat y configurando permisos de acceso, lo que le permite personalizar realmente la sala de chat para su caso de uso. Incluso una configuración tan simple puede mejorar la productividad remota.

Mejores prácticas de trabajo remoto: seguimiento de errores

Me gusta saber tres cosas de un rastreador de errores que estoy usando:

  • ¿En qué estoy trabajando ahora mismo?
  • ¿Qué tengo planeado para la próxima versión de este software?
  • ¿Cuáles son los resultados de todo el equipo para esta versión del software?

Cada uno de estos tiene un propósito.

Primero, "¿En qué estoy trabajando en este momento?": Cuando trabajas en una oficina tradicional, tienes conversaciones de fondo, esto te da una idea general de lo que están haciendo los demás. Un marcador explícito en el sistema de seguimiento de errores que indique: "Sí, estoy trabajando activamente en esto en este momento", puede introducir un patrón y una sensación similares al trabajo remoto.

En segundo lugar, "¿Qué hay en mi plato para el próximo lanzamiento?" significa, "De qué errores soy responsable" o "Qué errores estoy manejando". Sin duda, hay algunas idas y venidas en cada equipo, pero también es bueno saber a quién preguntar si desea detectar un error o si necesita ayuda para finalizar sus errores para el lanzamiento.

También es posible que su equipo no funcione así en absoluto: por ejemplo, su flujo de trabajo podría ser donde a cada desarrollador solo se le asigna un error para comenzar y elimina la pila no asignada cuando finaliza su único error. Esto también puede ser productivo.

La "Próxima versión del software" no tiene que ser nada grande. He estado en equipos donde la "próxima versión" significaba "dentro de 3 días, lanzaremos una nueva compilación alfa para el cliente". ”. Pero sigue siendo bueno que todos sepan lo que viene en esta nueva versión. Especialmente si selecciona boletos no asignados cuando su boleto actual está completo.

He incluido algunas recomendaciones para rastreadores de errores específicos en la parte inferior de la publicación.

Mejores prácticas de trabajo remoto: comunicación en equipo

Para algunos, la comunicación en equipo es la parte más intimidante de trabajar de forma remota o desde casa. Pero esto sólo será un problema si lo permites .

En una oficina, mientras pasas junto a todos en el camino a tu asiento, hay un poco de bromas, la gente dice "Hola". Tus compañeros de trabajo saben que estás en el trabajo porque te ven, allí, en tu escritorio, trabajando.

Los trabajadores remotos deben ser un poco más explícitos : nadie sabe que estás trabajando a menos que se lo digas . Pero si establece las prácticas de comunicación correctas, sus colegas estarán disponibles con solo presionar un botón, en lugar de caminar por la oficina, bajar el ascensor, etc.

Estos consejos se aplican más a un empleado administrado de forma remota como parte de un equipo más grande, pero pueden ser útiles si solo es usted el único desarrollador.

Hacer sentir tu presencia: no te vuelvas invisible

Recogí varias de estas ideas del episodio 48 del Podcast de Wide Teams.

Al comienzo del día, ingrese a IRC (o cualquier herramienta que use su equipo) y diga "Hola" , hable sobre cómo van los días de las personas, etc., etc. Incluso si eso significa ingresar a IRC y preguntar sobre niños, fines de semana, equipos deportivos o piratería de fin de semana. Cuando la gente sabe que actualmente estás trabajando duro en casa, no te vuelves invisible. Construya una relación y deje que la gente sepa que usted está allí .

Chatea con personas en el chat y asegúrate de mantenerte involucrado con tus colegas. Esto es diferente a cuando te encuentras con personas en la sala de café, etc., etc. Debes comunicarte explícitamente y mantenerte en contacto para que cuando cometas el código o necesites ayuda, las personas estén listas.

Mensajes 'Día de inicio', 'Hora del almuerzo' y 'Vuelvo'

Además de hacer sentir su presencia, también debe informar a sus compañeros de equipo remotos cuando no está trabajando. Al igual que en un entorno de oficina tradicional, no desea desaparecer por el resto del día y dejar a sus colegas colgados.

Si está en un equipo con varios otros desarrolladores o administra empleados remotos, tiene sentido registrarse cuando comienza su día de trabajo. Un simple “Buenos días a todos” para que la gente sepa que está en su escritorio listo para comenzar a trabajar en el proyecto, y que ya no está en su casa ni en la cama.

Enviar mensajes de "Regreso en 1 hora" para el almuerzo o los descansos en el trabajo durante el día también es bueno. El trabajo remoto es excelente para muchas cosas, pero un escenario preocupante es que le hace una pregunta a su colega y no recibe respuesta. ¿No responden porque están fuera durante 30 minutos? ¿O porque están en lo profundo de la zona y no escuchan el chat? ¿Quizás en una reunión? Los mensajes "Vuelvo a..." pueden aliviar estas preocupaciones y suavizar el flujo de trabajo.

Cuando hayas terminado por la tarde, deja que la gente sepa cuándo volverás. Tal vez sea "Nos vemos en la mañana" o "Vuelvo más tarde esta noche para terminar [x]". Pero al igual que los mensajes de "Vuelta en 1 hora", establecen una cierta expectativa a la que su equipo puede adaptarse.

Hay una startup interesante llamada Sqwiggle que puede resolver algunos de estos problemas (aunque todavía no lo he probado). Además de tomar una foto tuya cada pocos segundos, también permite que los miembros del equipo hagan clic en tu foto para iniciar una conversación de video/audio, además de proporcionar un componente de chat de texto. La idea detrás de la imagen es ver, de un vistazo, si estás en tu computadora o no. (No hay nada peor que tratar de chatear con alguien en línea y no recibir respuesta rápidamente. ¿Están atrapados con algo más? ¿En lo profundo de la zona? ¿No ven la notificación de chat? ¿En el baño ahora mismo?). Escuché sobre Sqwiggle en el episodio 83 del Podcast de Wide Teams.

En proyectos donde puede configurar las mejores prácticas

Los trabajos independientes remotos siempre son diferentes. (¡Eso es parte del atractivo!) A veces, lo incorporan a un equipo existente de desarrolladores simplemente como aumento de personal. Tal vez este equipo ha estado junto por algún tiempo y, en ese caso, ya han establecido prácticas de comunicación.

Por otro lado, a veces eres el único desarrollador del proyecto y trabajas con un cliente no técnico. Puede configurar sus propias mejores prácticas de desarrollo de software y tener cierto control sobre cómo ejecutar la operación. A continuación se presentan algunas de las mejores prácticas de mi década más o menos de experiencia laboral remota. En su mayoría, están destinados a horarios de media semana (20 horas/semana) o de semana completa (40 horas/semana).

Reuniones de pie

Hay algo que decir sobre la celebración de reuniones de pie para hablar sobre el estado del proyecto. Estos son muy comunes en las oficinas tradicionales, pero no hay razón por la que no puedan ser productivos para el equipo remoto: son solo otra forma de reforzar la comunicación entre las dos partes: cliente y desarrollador.

Una reunión de pie tradicional pregunta en qué estuvo trabajando ayer, en qué trabajará hoy y si hay algún obstáculo en su camino. Este formato puede o no funcionar dado el tamaño de su equipo: si se trata de un proyecto de un solo desarrollador, entonces estas preguntas reales no tienen sentido.

La frecuencia con la que debe tener una reunión de pie depende realmente del tamaño y la cultura del equipo. Sin embargo, aquí están mis recomendaciones:

  • 1-3 desarrolladores: 2 reuniones de estilo standup a la semana
  • 4+ desarrolladores: reuniones diarias de pie

Con 1-3 desarrolladores, estas preguntas son en su mayoría evidentes: usted sabe lo que está haciendo cada desarrollador porque es fácil rastrear su trabajo individual a medida que revisan los tickets: todos saben lo que todos están haciendo, porque simplemente no hay mucha gente haciendo trabajo.

Con equipos remotos más grandes, hay más partes en movimiento: usted quiere asegurarse de que nadie esté pisando los dedos de los pies virtuales de nadie replicando el trabajo o haciendo cambios incompatibles.

Dada la estructura de pago por semana de Toptal, dos reuniones por semana le dan al cliente tiempo suficiente para expresar sus inquietudes sobre el proyecto antes de que se sientan estafados por la tarifa semanal. Tener solo una reunión a la semana podría significar que el cliente no está satisfecho con la calidad del trabajo y que el desarrollador no tiene tiempo para ajustar los resultados.

Los equipos remotos avanzados pueden tener otros métodos para mantener a todas las partes interesadas en la misma página sin programar una reunión real mientras trabajan desde casa. Todavía me gusta hablar por teléfono/Skype/Hangouts con alguien y tener una reunión de esa manera.

Para equipos pequeños, dos reuniones de pie a la semana funcionan muy bien: las correcciones de rumbo se realizan rápidamente, pero los desarrolladores aún tienen algo importante que informar durante cada reunión.

Entregando la próxima versión de forma remota

Dependiendo del tamaño del proyecto, me gustan los entregables enviados al cliente semanalmente para proyectos pequeños (1-2 desarrolladores) y cada dos semanas para proyectos más grandes (3+ desarrolladores). Este ritmo da a los desarrolladores suficiente tiempo para completar grandes cantidades de trabajo, incluida una interfaz (o una experiencia de usuario mejorada) para que el cliente la vea.

Para los clientes no técnicos, la única métrica con la que pueden medir el progreso es lo que pueden ver en la pantalla.

Es importante que los desarrolladores recuerden, especialmente con clientes no técnicos, que el progreso que puede visualizar con una interfaz de usuario suele ser lo único que le importa al cliente. A los clientes sin conocimientos técnicos no les importa que hayas sacado 500 líneas de código esta semana, o que hayas tenido dificultades para interactuar con algún servicio web; la única métrica por la cual pueden medir el progreso es lo que pueden ver en la pantalla . Eso no quiere decir que hacer un buen trabajo en el back-end sea irrelevante, sino que necesitas hacer que todo este buen trabajo sea tangible a los ojos del cliente.

Esta imagen muestra la importancia de los entregables, especialmente en una situación de trabajo remoto.

Pío

Es por eso que me gustan los entregables semanales o quincenales. Algo más corto que eso a menudo pone al desarrollador en una situación difícil: tal vez se queden atrapados en el trabajo de back-end durante dos días y no tengan tiempo para terminar la interfaz, por lo que no tienen nada que mostrar al cliente.

Dependiendo del tipo de proyecto de software, no todas estas versiones de clientes se lanzarán al público. Por ejemplo, si está trabajando en un proyecto de Rails, es posible que desee implementar los cambios aprobados de inmediato; por otro lado, con una aplicación móvil, puede llamar a una versión "1.3a10", pero la versión actual es solo parte del conjunto de funciones más grande de una nueva versión 1.3 del software que se implementará más adelante.

Aquí es donde entran en juego las mejores prácticas del rastreador remoto de errores. Con el seguimiento de errores, el cliente sabe:

  1. ¿Qué hay en el plato del equipo para este entregable?
  2. Si se ha completado
  3. Si el trabajo ha sido aprobado por el cliente.

El cliente sabe qué esperar de esta versión y los desarrolladores saben qué trabajo les espera.

Si su equipo remoto es lo suficientemente maduro para usar la implementación continua y/o Kanban, está bien. Sin embargo, ambas son técnicas muy avanzadas que son más adecuadas para organizaciones con una cultura sólida basada en desarrolladores. La mayoría de las organizaciones, donde el desarrollo de software personalizado se considera necesario pero costoso, probablemente no estén preparadas para ninguna de estas técnicas. ¿Porque eso? Dos cosas que he visto es que el cliente no puede mantenerse al día con la cantidad de cambios que los desarrolladores quieren que revisen , o las prioridades cambian demasiado rápido para que el desarrollo pueda hacer algo .

Recomendaciones

Si entra en un equipo donde establecerá las mejores prácticas, he enumerado algunas herramientas a continuación para administrar su trabajo remoto. Tenga en cuenta que estas son solo mis recomendaciones: ciertamente, esta guía no es para todos; y si no le gustan estas herramientas, probablemente haya una herramienta que se adapte mejor a sus necesidades.

  • Planscope.io , en modo semanal. Esta es una herramienta de seguimiento de tiempo + seguimiento de errores + estimación de proyectos que envía a los clientes correos electrónicos diarios cuando trabaja en su proyecto y les permite ver cómo van las cosas en términos de progreso y presupuesto. Esto es ideal para proyectos de 1 a 4 desarrolladores/meses de tamaño.
  • App Trajectory es un rastreador de errores para equipos pequeños que se enfoca en estimar y dividir el proyecto en partes de una a dos semanas (iteraciones). App Trayectory puede decirle cuánto trabajo está completando en una iteración y cuántas iteraciones hasta que se completa todo el trabajo conocido. Esto es ideal para proyectos de 2 a 12 desarrolladores/meses de tamaño.
  • Pivotal Tracker es una herramienta de seguimiento de errores para clientes con un enfoque en metodologías ágiles. Esto es excelente si está realizando iteraciones ágiles formales o tiene un tamaño de proyecto medido en desarrollador/años.
  • FlowDock para charlar. Flowdock ofrece algunas ventajas sobre el IRC simple o el chat de Skype: además de integrarse con servicios populares, también le permite etiquetar conversaciones para una referencia rápida más adelante. FlowDock también mantiene una lista de actividades de estado (comprobaciones de códigos, etc.) que están separadas de los chats generales. (Es decir, en la interfaz web, las actualizaciones de estado automáticas están a la izquierda, mientras que los chats están a la derecha).
  • Una vez más, Campfire también es excelente para chatear.

Conclusión

Comenzar con el trabajo remoto o desde casa puede ser un gran ajuste, tanto para usted como para el cliente. Me ha ido muy bien y muy mal. Pero, cuando sale bien, puede ser una excelente manera para que los clientes o los empleadores resuelvan el problema de la "crisis de talentos" y creen una gama más amplia de oportunidades para los desarrolladores que viven fuera de los principales centros tecnológicos o centros de "startups". Hay todo un mundo de eficiencia que se puede obtener de los desarrolladores que trabajan juntos de forma remota con las mejores prácticas correctas en el lugar.