3 tips que incrementaran la productividad del equipo de desarrollo

Ya sea una startup, una corporación o una consultora, el equipo de desarrollo es un pie fundamental para la creación y mantenimiento del software. Es un trabajo muy complejo de llevar adelante ya que requiere mucha capacidad de concentración y razonamiento, y a su vez es muy sencillo quemarse rápidamente (y créanme… es muy difícil volver atrás). Por eso es fundamental que nuestro chapter de programadores trabaje en un entorno sosegado y con ciertas condiciones básicas para el correcto funcionamiento del equipo. Podemos ver las medidas que toman empresas de primera, como FANG, para que sus empleados se sientan en un ambiente cómodo, o — sin irnos hasta Sillicon Valley — se pueden observar empresas como Mercadolibre, que en los últimos años cambió radicalmente su cultura de trabajo. Pero no hace falta tener un ping-pong o la última playstation para lograr un buen entorno laboral, sino que es mucho más simple que eso. Con 3 simples pasos podemos incrementar notablemente el rendimiento del equipo sin generar de manera innecesaria un gasto adicional.

Conversaciones asincrónicas

En la gran mayoría de organizaciones, una de las problemáticas principales más difícil de identificar y mitigar es el exceso de reuniones. Para que un equipo de programadores logre sus objetivos necesita estar 100% enfocado en la tarea que está realizando, y así entrar en un estado de concentración pura llamado “flow state”, donde se logran los picos máximos de productividad. Para llegar es necesario que el entorno acompañe y no toquen el hombro por cualquier cuestión que surja, ya que es muy complicado volver al lugar donde se dejó. Vamos con un ejemplo claro. ¿Recordás cuando, en el instituto o en la facultad, estabas intentando resolver un problema de matemática en clase y te interrumpían? Costaba bastante volver a entender dónde te quedaste y cómo ibas a seguir. Ahora imaginate estar intentando resolver ese problema pero, además de ser interrumpido, tenés tres de las cuatro horas de clase ocupadas por reuniones. Suena difícil poder resolver varios de esos problemas en la clase, ¿verdad? Bueno… eso es lo que le sucede exactamente a los desarrolladores. Evitemos reuniones innecesarias. Intentemos comunicarnos de una forma asincrónica la mayor parte del tiempo utilizando herramientas como Slack, Loom, Notion, mails, y como última instancia una llamada. Apoyemos propuestas que generen esta cultura: como no meetings fridays, donde los viernes de cada semana el calendario de los equipos esté 100% libre. Es entendible que a veces las necesidades de producto parecieran necesitar ser resueltas en el momento, pero aprendamos a detectar y separar lo que es un pedido urgente de una pregunta que puede esperar algunas horas. Los beneficios de aplicar estos métodos son tan inmediatos que se van a sorprender con los cambios generados.

Documentación

Documentar es un pilar fundamental en cualquier empresa, y una de las prácticas más complicadas de mantener en el tiempo. Sirve tanto para recordar flujos complejos y transmitirlo de una forma adecuada a otros sectores, como para realizar el onboarding de nuevos miembros del equipo. Por eso es necesario establecer hábitos y reglas desde el principio para no perder la costumbre. Se pueden usar diversas herramientas como Notion 😍, Coda, Teams o alguna del ecosistema que esté utilizando la empresa donde te encuentres. A su vez, esta documentación va a permitir que le sea mucho más sencillo a otras células (o devs) continuar con el trabajo que comenzó otro equipo, y ¿saben qué significa esto? ¡SÍ! menos reuniones y más focus 😜. La falta de plasmar esta información en lugares donde todos tengan acceso se ve reflejada en mucha perdida de tiempo al tener que recapitular decisiones que fueron tomadas hace varios sprints, y en consecuencia se genera una necesidad de respuesta inmediata cuando surgen consultas acerca de temas que se podrían haber documentado. Básicamente, lo que intento decir es …

Automatizar tareas 🤖

A la hora de desarrollar, es muy común que muchos de los procesos que se realizan se repitan constantemente. Un proceso tan simple como crear un componente, que suele tomarnos solo unos minutos, puede convertirse en una tarea tediosa cuando debe realizarse múltiples veces por cada tarea que nos asignan. Y si esto lo llevamos a minutos diarios, nos sorprendería la cantidad de tiempo que perdemos solamente creando la estructura de estos mismos. Este es un solo ejemplo de muchos, y si hacemos la sumatoria total … 💀. Existe una simple, pero sumamente interesante solución: la automatización. Automatizar este tipo de tareas ahorra a los desarrolladores incontables horas de trabajo. Siguiendo el ejemplo anterior, con tan sólo tomarnos algunas horas para crear un simple script que cree la estructura de las carpetas y asigne el código necesario a los archivos, ya resolvemos el problema para los integrantes de todos los equipos. Si esto lo extrapolamos a algo más complejo, podemos terminar automatizando los tests de diferentes features de la aplicación para que el programador, al desarrollar una tarea compleja, pueda correr los tests automatizados sin perder tiempo en realizar una y otra vez las mismas acciones. En conclusión, siguiendo estos simples cambios es muy sencillo aumentar la conformidad y productividad de los diferentes equipos (especialmente el de desarrolladores). Contratar DJs o realizar eventos caros puede servir durante algunos meses, pero si el ambiente no acompaña al trabajo, tarde o temprano ni los almuerzos gratuitos bastarán. Aprendamos a escuchar lo que realmente se está pidiendo. Comencemos haciendo bien las bases, para luego agregar todo lo demás.