Volver

Road to Hybrid Team: consejos prácticos y de seguridad para el teletrabajo. #DevSecOps

Imagen del slider

6 de enero de 2022

El teletrabajo: ¡Ah, qué alegría no tener que recorrer kilómetros para ir a la oficina, disfrutar de la comodidad del edredón hasta el último minuto en estos largos días de invierno o no tener que soportar más a ese vecino ruidoso en la oficina diáfana…


Pero el teletrabajo también supone un duro golpe de realidad para los jefes técnicos y los directivos, que deben poner en marcha, a veces con dificultad, un modelo de trabajo totalmente a distancia o híbrido.

No hemos esperado a la llegada de la COVID para empezar a utilizar herramientas de colaboración a distancia, como los servicios de mensajería instantánea (¿no nos da un poco de nostalgia a todos recordar el MSN Messenger?). Ante la gran variedad de soluciones disponibles, aquí tienes una recopilación de consejos basados en mi propia experiencia, pensados para facilitar el trabajo de los equipos de desarrollo en entornos de trabajo a distancia.

¡Repasemos, pues, las herramientas y los métodos utilizados en los últimos dos años y que os resultarán útiles en las próximas semanas!

¿Qué herramienta se puede utilizar como pizarra virtual?

Esa vieja pizarra blanca, lo primero que eché de menos por las mañanas, cuando estaba solo delante del ordenador en casa… ¿Dónde iba a anotar la información esencial del día para el equipo? Tras algunas pruebas, estas son las soluciones que he elegido, por orden de preferencia:

  • Sencillo, rápido y eficaz: Excalidraw.com
  • Más completo, pero requiere crear una cuenta: Draft.io
  • El Rolls-Royce de la colaboración, pero demasiado limitado en su versión freemium y, sobre todo, demasiado complejo para mis necesidades: Miro
  • Última opción: Microsoft Whiteboard, incluido en Teams, pero que se limita al uso colaborativo durante una reunión.

Consejos de seguridad

Un pequeño recordatorio: ¡tenga cuidado con los datos que introduce en estas herramientas, sobre todo en el modo freemium! Es importante tener en cuenta que solo se puede compartir a través de estas herramientas información no sensible y no confidencial. Para las personas que trabajan en organizaciones «sensibles», es imprescindible solicitar la autorización previa de su responsable de seguridad.
En resumen, ya sea para uso profesional o personal, el dicho sigue siendo el mismo: ¡cuando es gratis, tú eres el producto!

Una vez resuelta esta cuestión, hubo que ponerse manos a la obra con las demás tareas cotidianas, ya que se habían perdido algunos hábitos.

¿Cómo garantizar una revisión de código y una programación en pareja eficaces con equipos de desarrollo que trabajan a distancia?

En cuanto a las revisiones de código, el teletrabajo no supone necesariamente una gran novedad : cuando un desarrollador termina su tarea, crea una solicitud de fusión ( o solicitud de incorporación de cambios). La diferencia es que, en lugar de ir a ver a su compañero y sentarse con él frente al mismo ordenador para comentar la tarea, se puede hacer de forma asíncrona anotando los comentarios en una herramienta de MR como GitLab. O bien hacerlo de forma síncrona a través de un programa de mensajería instantánea. 

En cuanto a la programación en pareja , todos empezamos rápidamente compartiendo pantalla (Teams, Zoom, Google Chat o Slack).
Hay que reconocer que esto resulta bastante limitante, ya que enseguida nos apetece interactuar con el código: tomar el control del teclado y turnarnos con nuestro compañero.

Las herramientas resultan muy frustrantes: velocidad de conexión, latencias. A esto se suma una dificultad adicional, ya que esta colaboración implica que los desarrolladores dispongan de un entorno similar. En un contexto con múltiples proyectos… ¡es un auténtico quebradero de cabeza!

Afortunadamente, existen aplicaciones más eficaces y específicas para la programación en pareja:

  • Code with me para IntelliJ (sesión gratuita de 30 minutos). Para los aficionados a los productos de JetBrains, ¡es lo mejor! Pero para un uso seguro, habrá que instalar un servidor local.
  • LiveShare para Visual Studio Code (sesiones ilimitadas en la versión gratuita)
  • Floobits es compatible con bastantes entornos de desarrollo integrado (IDE) e introduce el concepto de espacio de trabajo compartido
  • ¡Drovio, una solución de programación en pareja independiente y segura!

Consejos de seguridad

En general, en lo que respecta a la seguridad, estas soluciones utilizan cifrado de extremo a extremo. La mayoría de ellas permiten gestionar los derechos de los invitados. Pero ten mucho cuidado si puedes o deseas compartir parte de tus datos con las empresas que están detrás de estos complementos. Solo las conexiones en modo punto a punto o con un servidor externo local garantizarán un nivel suficientemente alto de confidencialidad y seguridad.

Para programar con más de dos personas a la vez, lo siento, ¡pero tendrás que optar por una versión de pago!


Otra solución que permite practicar el mob programming es el uso de un IDE colaborativo en la nube .
Desde hace algunos años existen iniciativas como:

Dediquemos unos minutos al ejemplo de Gitpod para hacer un coding dojo. Solo tienes que añadir tu proyecto a un espacio de trabajo y compartirlo.
Mientras tu proyecto esté «en línea», podrás compartirlo y trabajar simultáneamente en tu código en equipo, como si se tratara de un simple documento de Google Docs.
Gitpod se encargará de compilar y ejecutar las pruebas en contenedores.  Para ello, un archivo gitpod.yml te permitirá definir los requisitos previos para ejecutar tu entorno de desarrollo.

¡Ya no hay excusas para no retomar tus sesiones de katas!

¿El diseño a distancia: un verdadero reto?

Por otra parte, nuestros proyectos suelen implicar tareas de diseño complejas que preceden a la fase de programación. También en este caso existen herramientas que te facilitarán el trabajo, en función de la naturaleza de estas tareas.

  1. En el caso de las bases de datos relacionales, un Navicat Modeler Essential con la función de uso compartido de archivos disponible en tu empresa será más que suficiente: verás los cambios casi en tiempo real desde tu lado y podrás avanzar en tus modelos junto con tus compañeros.
  2. ¿Necesitas hacer un esquema? ¿Un diagrama de flujo? Para los afortunados que tienen Visio… es muy sencillo. Para los demás, y dependiendo de la importancia de tus datos, te sugiero que utilices:
    • Whimsical, que desempeñará esta función con gran maestría.
    • Flowchart es una alternativa interesante para los diagramas de flujo, especialmente con la sintaxis que se ha introducido: https://flowchart.fun/
    • Sigue el mismo principio, pero está especializado en diagramas de secuencia: https://swimlanes.io/
  3. Cuando se forma parte de un equipo DevOps, que se encarga de implementar aplicaciones hasta el entorno de producción, también puede ser necesario compartir un terminal. Como siempre, compartir pantalla puede ser suficiente, pero seguramente hay algo más interesante… Teleconsole: te permitirá trabajar con otros usuarios en un mismo terminal SSH para realizar acciones de forma conjunta. Esto resulta muy práctico cuando necesitas la ayuda de un compañero para intervenir en una máquina virtual o un ESX.

Hay otro tema: la «gestión» de proyectos. De vez en cuando tengo la suerte de desempeñar el papel de Scrum Master. Los rituales ágiles, con algunas adaptaciones, se prestan bien al teletrabajo o a los equipos a distancia.

  • Reuniones diarias y de revisión del backlog: un panel ágil y una herramienta de videoconferencia
  • Reseña: «https://metroretro.io/»: gratis por ahora, muy intuitivo, con posibilidad de exportar los resultados.
  • Planificación del póquer:

Las herramientas de mensajería instantánea y las soluciones de trabajo a distancia no esperaron a la llegada de la COVID para imponerse. Sin embargo, hay que reconocer que su uso se ha disparado literalmente desde el primer confinamiento.

Algunos equipos han tendido, en ocasiones, a caer en una epidemia de exceso de reuniones… Por eso he vuelto a descubrir el uso del ROTI (Return on Time Invest). Esta vez no hace falta ninguna herramienta: cada uno puede encender la cámara al final de la reunión y dar su opinión sobre lo útil que le ha resultado. La retroalimentación es directa, rápida y te permite medir la relevancia de tus reuniones. Pero si te empeñas en tener una aplicación en línea, aquí tienes una.

El teletrabajo sostenible

La sucesión de confinamientos, desconfinamientos, restricciones de aforo en las oficinas y otras medidas sanitarias también ha dado lugar al concepto de equipo híbrido. En la práctica, es muy raro que todo el mundo esté al mismo tiempo en el mismo lugar. No voy a extenderme sobre las metodologías de gestión, ya que eso podría ser tema de otro artículo. Por lo tanto, les remito al trabajo del equipo de Gitlab, que lleva muchos años recopilando todas sus prácticas de trabajo a distancia: https://about.gitlab.com/company/culture/all-remote/guide/

Una auténtica mina de oro en la que puede resultar interesante buscar información según tus necesidades: contratación, incorporación, evaluación, gestión…

El instituto Gartner prevé que el 50 % de los empleados seguirá teletrabajando varios días a la semana en los próximos años. Espero, por tanto, que estas sugerencias os puedan ayudar en vuestro día a día y en esta transformación repentina, pero duradera, de nuestros entornos de trabajo. ¡No dudéis en enviar vuestros comentarios o compartir vuestras experiencias en la sección de comentarios!