Claves para trabajar con equipos en remoto 2ª parte

Cómo trabajar con equipos en remoto

En la nueva era digital, las empresas luchan por conseguir atraer el mejor talento en un mercado laboral marcado por un fuerte desajuste entre la oferta y demanda, así, algunas de las grandes empresas buscan adaptarse a las necesidades de la nueva fuerza de trabajo en auge, el trabajador freelance.

Para los freelance el sentimiento de libertad y flexibilidad es un valor fundamental por eso, conceptos como la deslocalización del puesto del trabajo o conciliación laboral, son términos cada día más conocidos por todos y el trabajo con equipos en remoto una de las tendencias más fuertes del mercado laboral.

Para conocer todos los detalles, las tendencias y los retos que actualmente supone el trabajo con equipos en remoto, el pasado mes de julio, organizamos en Cobuilder una #MalterTalk junto a la experta freelance Juliette Espinosa. Hoy publicamos la segunda parte del artículo trabajar con equipos en remoto.

El desarrollo tecnológico como pieza fundamental para trabajar con equipos en remoto ¿Qué herramientas son imprescindibles? ¿Cuáles son las tendencias en tecnología?

Cuando hablamos de equipos remotos, debemos crear un ecosistema de herramientas que permitan lograr la realización del trabajo remoto de forma colaborativa, fácil y accesible para todos. Existen varios grupos de herramientas, de los cuales debemos contar, al menos con una de ellas, en cada grupo. Para seleccionar la más adecuada en cada caso, se deben tener en cuenta las ventajas y desventajas que ofrecen, según las características de la empresa, equipo y los tipos de proyecto que se realizan. Es importante resaltar que algunas herramientas son libres total o parcialmente, mientras otras ofrecen diferentes paquetes de pago. 

  • Herramientas de gestión de proyectos:

Son imprescindibles para la planificación y seguimiento del trabajo a realizar en el equipo. Sirven de guía para mantener a todo el personal productivo, enfocado en el cumplimiento de sus tareas y objetivos. Ejemplos: Atlassian Jira, Redmine, Asana, Trello, Assembla, OpenProject, Twproject.

  • Herramientas de comunicación:

Permiten la comunicación instantánea por mensajes, llamadas y videoconferencias. Ejemplos: Slack, Skype y Google Hangouts.

  • Repositorios de archivos compartidos:

Permiten la colaboración entre los diferentes miembros para aclarar dudas, y aportar elementos relevantes. Muchas herramientas de gestión de proyectos permiten estas funcionalidades, pero en caso de escoger alguna que no lo favorezca se puede complementar con otras herramientas específicas para este fin como Dropbox y Google Drive. 

  • Repositorios de control de versiones:

Permiten contar con un repositorio de documentación, por versiones, donde pueden trabajar varios miembros a la vez, manteniendo versiones independientes que luego son integradas y actualizadas. En el caso de equipos de desarrollo de software son absolutamente necesarias para mantener las versiones conjuntas del código fuente del proyecto, resultante del trabajo de los diferentes desarrolladores implicados. Ejemplos: Atlassian Bitbucket, Github, Gitlab, Subversion

Si además de equipos remotos, nos referimos a equipos de desarrollo ágil de software, debemos sumar otros grupos de herramientas, que aumentan la productividad al eliminar las tareas manuales. Cuando hablamos de desarrollo ágil, automáticamente, hablamos entonces de “pruebas unitarias”, desarrollo guiado por pruebas e integración continua. Para seleccionar las herramientas más adecuadas de estos grupos se debe tener en cuenta su compatibilidad con la arquitectura de tecnologías que trabaja el equipo. 

  • Pruebas automáticas: 

Existen herramientas con diferentes fines: gestión de pruebas, pruebas funcionales, pruebas de rendimiento. Algunas son más generales, y otras son compatibles a tecnologías específicas o tipos de desarrollo: web, móvil, escritorio, servicios web, etc. Ejemplos: Motcha, Jest, Calabash, Appium, Selenium, Soapui. 

  • Integración continua (construcción, liberación y despliegue): 

Ayuda a los desarrolladores a construir software que funciona, ya que organiza el proceso de tal forma que cuando se añade alguna función al código, esta será probada automáticamente para detectar que no rompa el funcionamiento de los elementos existentes al ser integrado. Cuando la ejecución de las pruebas automáticas es exitosa, el código del proyecto es actualizado con la versión más reciente del trabajo de todos los desarrolladores. Ejemplos: Atlassian Bamboo, Jenkins, CircleCl. 

Se debe resaltar que el empleo exitoso de todas estas herramientas, está ligado a buenas prácticas de trabajo que deben establecerse y respetarse cuidadosamente por todos los miembros del equipo.

La importancia de saber formar un equipo ¿qué debes tener en cuenta a la hora de elegir tu equipo?

Las empresas necesitan más que nunca equipos fuertes y estables, pero también versátiles y flexibles, con los que hacer frente a las exigencias del mercado. Un equipo está formado por personas, y para formar un gran equipo estas personas deben ser afines y compatibles en muchos aspectos. Al margen de los conocimientos técnicos, formación y experiencia, que evidentemente son muy importantes, también debemos tener en cuenta las necesidades emocionales y características de personalidad de cada individuo; así como el valor relativo que aporta al grupo de trabajo, o sea, debemos analizarlo como un componente fundamental dentro del ecosistema que vamos a crear. 

Un líder experto debe asegurarse de conocer muy bien a todos sus recursos. Además, debe tener en cuenta, cuando recluta o selecciona a los diferentes miembros, los elementos claves que deben ser afines o que pueden causar problemas para predecir con mayor éxito una buena compatibilidad. Esta es la clave para formar un buen equipo, un mecanismo equilibrado y dinámico, donde todos dan y reciben. Un sistema donde unos cubren las necesidades específicas de otros, aportan sus recursos para cubrir los puntos débiles de sus compañeros y potencian los puntos fuertes, creando una fuerza indestructible.

Crear un equipo no es pensar en las competencias y habilidades de cada individuo de forma independiente, sino tener en cuenta que representa esta persona dentro del grupo. 

Además de todo lo anterior, que se aplica para todo tipo de equipos, en un equipo remoto ciertos elementos toman una importancia aún más relevante dadas las características del trabajo a distancia. Esto quiere decir, que al formar un equipo remoto, se debe ser aún más cauteloso y exigente, que al formar un equipo con el que trabajaremos en el mismo recinto.

En resumen, elementos que se deben evaluar para cada miembro son: 

  • Competencias específicas según el rol a desempeñar. 
  • Habilidades de comunicación oral y escrita. 
  • Capacidad de organización, proactividad, autonomía y autogestión. 
  • Capacidad de trabajo independiente y trabajo en equipo. 
  • Disponibilidad horaria compatible con el resto del equipo, al menos de forma parcial. 
  • Flexibilidad/adaptabilidad. 
  • Compromiso, disciplina y responsabilidad. 
  • Honestidad e integridad. 
  • Capacidades técnicas para el trabajo con las herramientas de software a utilizar. 
  • Capacidad analítica y resolución de problemas. 
  • Creatividad y capacidad de innovación. 
  • Meticulosidad y orientación a detalles. 
  • Capacidad para gestionar el estrés. 
  • Potencial de crecimiento y superación. 
  • Valores personales alineados a los valores de la empresa. • Expectativas personales alineadas a las opciones ofrecidas por la empresa.

Es importante resaltar que los seres humanos buscan realizarse a través de su trabajo y por defecto, están preparados para dar lo mejor de sí, si sabemos crear las condiciones adecuadas para mantenerlos motivados. Por otro lado, para las empresas un cambio de personal implica nuevos riesgos y retrasos en el trabajo hasta que los nuevos miembros se integran completamente.

Con el trabajo freelance, donde el personal tiende a fluctuar mucho más, la idea no es solo contratar a personal que pueda solventar una necesidad temporal, sino también encontrar y mantener a buenos colaboradores, que creen lazos y aporten valor a la compañía a corto, mediano y largo plazo. La idea debe ser tener procesos de selección más rigurosos para evitar cambios de personal.

¿Cómo organizar el equipo? ¿Es importante dividirlo por tareas?

Existen varios elementos a tener en cuenta a la hora de organizar un equipo de desarrollo de software. Tres de ellos que se deben destacar son: roles, grupo de tecnologías de experticia, proyectos y tareas. 

  • Por roles: 

De forma general, cada miembro debe tener bien definido cuál es su rol y responsabilidades en el equipo, según sus capacidades y motivaciones. Esto ayuda a que sean más productivos. Al contar con las capacidades necesarias y estar motivados con el trabajo asignado, pueden realizarlo de forma eficiente. 

  • Por grupo de tecnologías de experticia: 

Los ingenieros de software, dada su formación, experiencia y preferencias personales, tienden a especializarse en grupos de lenguajes y tecnologías específicos, según el tipo de software que desarrollan durante su carrera profesional: aplicaciones web, aplicaciones móviles, aplicaciones de escritorio, etc.

Además, dentro de estos grupos, muchas veces toman un camino de herramientas propias o de herramientas libres y de código abierto. Puede que, en sus años de experiencia, hayan trabajado con una amplia gama, ya que la versatilidad para aprender nuevos lenguajes y herramientas es crucial para los ingenieros de software; no obstante, la cantidad de años que hayan trabajado en una tecnología específica es directamente proporcional al nivel de madurez que alcanzan en esta llegando a un nivel Senior. 

  • Por proyectos y tareas: 

Una tercera división, que se realiza de forma dinámica, es la creación de subequipos por cada proyecto. Se asigna al personal más capacitado, según los requerimientos y necesidades, para realizar el trabajo con la mayor calidad posible. Generalmente, se mantienen subequipos ya creados, por roles y líneas tecnológicas, que están acostumbrados a trabajar juntos, pues se conocen muy bien y son compatibles, lo cual ayuda a avanzar de forma ágil. Cuando creas un equipo eficiente con gran sinergia y empatía es mucho mejor mantenerlo unido. 

Nosotros en CodeBerry Solutions utilizamos SCRUM como método y filosofía de trabajo para lograr un desarrollo ágil y evolutivo de los proyectos que realizamos. Esto implica que la planificación y seguimiento de cada proyecto conlleve un control diario, de forma sistemática. Planificamos y damos seguimiento al trabajo por releases, sprints y tareas. Se realizan las reuniones definidas en el marco de trabajo de SCRUM y se tiene en cuenta la carga de trabajo de los recursos, los cambios que puedan surgir en los requerimientos, los problemas que se puedan presentar y los avances del proyecto. Es importante que la organización del trabajo llegue hasta el nivel modular y detallado de tareas, para que cada miembro del equipo esté bien orientado y avance, paso a paso, en función de ir cumpliendo los diferentes objetivos colectivos.

Saber más…

Si te has quedado con ganas de saber más sobre cómo trabajar con equipos en remoto, recuerda que puedes leer aquí la primera parte de este artículo creado de manos de nuestra experta freelance Juliette Espinosa.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *