Desarrolladores: Ocho tips para gerenciar equipos remotos

awhCbhLqRceCdjcPQUnn_IMG_0249
El reclutamiento de ingenieros de software seniors a veces requiere gerenciar equipos de desarrollo que trabajan en forma remota.

La demanda de talento para producir software de ingeniería superior va por las nubes, lo que hace que el reclutamiento y mantenimiento de los desarrolladores excepcionales sea uno de los mayores desafíos de un CIO.

“Estados Unidos tiene menos del 5 por ciento de la población del mundo. Si las cualidades que hacen a alguien un gran programador se distribuyen de manera uniforme, el 95 por ciento de los grandes programadores nacen fuera de los EE.UU“, ha señalado en su blog Paul Graham, cofundador de la firma de capital semilla Y Combinator.

Esto es una buena noticia para las economías emergentes porque significa que en su país puede tener más de uno. Pero, si se extiende la opción de encarar la escasez de desarrolladores excepcionales contratándoles para trabajar a distancia puede que tenga que competir globalmente, esté donde esté.

Ciertamente puede haber problemas con este enfoque –para algunas empresas. Por ejemplo, Google empleó equipos remotos de desarrolladores de todo el mundo, pero en 2009 comenzó a consolidarlos en grupos coordinados. “Esta medida nos permite construir equipos más grandes y más eficaces, reducir los gastos generales de comunicación, y aumentar las posibilidades de futuros proyectos para los ingenieros”, explicó Alan Eustace, vicepresidente senior de ingeniería e investigación de la empresa.

¿Posible? Y efectivo

Pero correr equipos de desarrollo distribuidos y productivos no es imposible. Si es algo que su empresa está considerando, aquí hay ocho consejos para el éxito de las personas que tienen experiencia práctica.

1. Comunicación ante todo

Puede sonar a frase hecha pero no significa que no funcione. “La buena comunicación es muy importante si quieres tener éxito”, dice Matt Mullenweg, el desarrollador original de WordPress y fundador de la compañía de desarrollo Web Automattic. “Si lo haces bien, los equipos de desarrollo distribuidos pueden funcionar mejor que los que están yuxtapuestos, lo que le permite competir como Google y Oracle por hacer algo que no pueden”.

Entonces, ¿cuál es el camino correcto para los desarrolladores remotos para comunicarse con sus compañeros de equipo? Mullenweg advierte contra el uso de correo electrónico (“No es suficiente colaboración”) y tiene sugerencias específicas para las herramientas de comunicación que pueden ayudar a los desarrolladores trabajar juntos.

Se recomienda el uso de un tema de WordPress llamado P2 en lugar de correo electrónico, una plataforma llamada Slack para el equipo de mensajería y Google Hangouts para la celebración de las reuniones del equipo de desarrolladores.

2. Selección correcta de proyectos

No todos los tipos de proyectos de software se prestan para el desarrollo por un equipo remoto de desarrolladores, advierte Naresh Jain, fundador de la Comunidad de Software de la India Agile (@agileindia). “Se necesita experiencia en el campo y retroalimentación de un área de negocios, esto es óptimo para desarrollar en forma distribuida”, dice.

En los proyectos de software para bancos o compañías de seguros, por ejemplo, a menudo necesitas cerca expertos para asegurarse de que los desarrolladores entiendan lo que se necesita, señala. “Es mucho mejor si los expertos pueden entrar en una sala de conferencias y tener los desarrolladores al día con los requisitos actuales, especialmente si es probable que tres días más tarde esos requisitos hayan cambiado. Y si usted está trabajando en algo especializado como seguros médicos, usted simplemente no puede conectarse a él como desarrollador a menos que tenga experiencia trabajando en ese ambiente”, añade Jain.

3. Contrate desarrolladores que les gusta trabajar de forma remota

Esto puede sonar obvio, pero es importante, dice Mullenweg. “Todo comienza con la contratación. Es necesario filtrar a las personas que no son productivas en un entorno remoto”. Señala que muchas empresas tienen personas que trabajan en roles que se distribuyen –como periodistas en una organización de noticias o vendedores en casi cualquier organización– y esas personas están acostumbrados a trabajar de forma remota. Pero aunque algunos desarrolladores son adecuados para trabajar de esta forma remota, no significa que sea automático. “Si usted tiene un desarrollador que le gusta tener una vida social que gira en torno a su lugar de trabajo, aunque parezca ganado para trabajar en forma remota puede que no sea para ellos”, dice Mullenweg.

4. Reunirse regularmente

Las herramientas de comunicación electrónicas pueden ser eficaces, pero es muy difícil para los equipos remotos que los utilizan simular el “efecto del filtro de agua” de encuentros y conversaciones casuales con los compañeros, cree Avleen Vig, un ingeniero de operaciones en el mercado de artesanía en línea Etsy. “Nosotros lo resolvemos con que la gente venga una vez al trimestre”, dice “no puede tenerse la oportunidad productiva de las reuniones de “agua fría”, pero quizás una vez cada pocas semanas. Tratamos de tener todos esos momentos en un corto período de tiempo en que nos encontramos”. Explica que estas reuniones trimestrales también ayudan a los desarrolladores a hacer conexiones sociales entre sí y aprenden cómo les gusta interactuar: de una manera seria o una más informal.

5. ¿Gerentes remotos? 

Una persona que sea buen gerente no será necesariamente bueno para gestionar un equipo distribuído, advierte Vig. “Cuando trabajaba en la oficina solía tener un uno-a-uno con mi manager una vez a la semana durante unos 30 minutos”, dice. “Ahora que trabajo de forma remota, mi manager me llama dos o tres veces a la semana durante aproximadamente una hora. Esto puede parecer como un desaguadero de tiempo, pero no lo es, es como si hubiésemos tenido más interacciones en el pasillo. El punto es que ahora se necesita más tiempo para que me llene. Los líderes tienen que aprender nuevas habilidades”.

Naresh Jain va más allá, lo que sugiere que puede que no sea necesario tener un jefe de equipo permanente en absoluto. “Pueden ser proyectos de código abierto que no tienen una estructura de mando y control central”, dice. “Los líderes surgen y desaparecen según sea necesario. Con un equipo distribuido no tiene que tener un líder dedicado”.

6. Aproveche los husos horarios

Las “zonas de tiempo pueden ser un dolor de cabeza cuando se trata de equipos distribuidos”, dice Mullenweg. “No tratamos de poner a los desarrolladores en el mismo lugar, pero hacemos todo lo posible para mantener los equipos reparatidos en no más de ocho horas. Las diferencias de tiempo mayor pueden hacer el trabajo en equipo muy difícil”, advierte. “Pero cuando usted necesita mantener un equipo activo 24/7/365, tener el personal en diferentes zonas horarias de todo el mundo en realidad es un gran beneficio”, añade.

Eso es porque siempre es de día en algún lugar, por lo que es más fácil llenar los turnos de noche y, si los miembros del equipo están en distintos países, se asegura que todo el mundo no se está celebrando el mismo día de fiesta nacional o religiosa.

7. Haga remoto hasta el trabajo predeterminado

Muchos equipos de desarrollo distribuidos tienen un núcleo de desarrolladores que trabajan en una oficina, así como el talento que trabajan a distancia. Si ese es el caso, entonces Vig recomienda tratar a cada miembro del equipo como un trabajador a distancia“Usted tiene que indicar que todos deben utilizar el correo electrónico, mensajería instantánea y otras herramientas de comunicación y desalentar a los desarrolladores con sede en la oficina de tener discusiones“, dice. Si los trabajadores en cubículos ignoran las herramientas de comunicación de grupo los trabajadores remotos quedan excluidos de las conversaciones, rompiendo la dinámica del equipo, explica.

8. Tratar a todas las comunicaciones como asincrónicas

Este último consejo de Vig es todo acerca de cómo los desarrolladores remotos están acostumbrados a trabajar. Él dice que las herramientas de comunicación pueden ser eficaces, pero requiere un poco de ajuste con respecto a las conversaciones cara a cara con desarrolladores. “Tienes que aprender a confiar en que alguien va a responder si se le envía un mensaje. No puedes sentarse allí a la espera de una respuesta y con la sensación de quedar fuera si no recibes una respuesta inmediata”. CIO América Latina

Fuente imagen dstacada