16 formas de construir un mejor equipo de desarrollo

A pesar de toda la charla de los desarrolladores de estrellas de rock, todos sabemos que se necesita un equipo fuerte y coherente que trabaje en conjunto para hacer el mejor trabajo. Entonces, aquí está la pregunta: ¿Qué se necesita para establecer un gran equipo de desarrolladores que crean excelentes productos y funcionan bien en todos los departamentos?

Nos comunicamos con ejecutivos de tecnología y gerentes de ingeniería que han hecho exactamente eso y les pedimos que compartieran su sabiduría ganada con tanto esfuerzo en la creación de equipos.

Desde encontrar la mejor opción para su próxima contratación hasta mantener a su equipo fresco y motivado, los siguientes consejos colectivos harán que su equipo codifique lo mejor posible.

1. Capacite a sus ingenieros

Los equipos de ingenieros a menudo pueden encontrarse en desacuerdo con la administración, el desarrollo comercial o el marketing en cualquier proyecto dado, a menudo porque son tratados como tomadores de pedidos en lugar de colaboradores. Para obtener lo mejor de sus desarrolladores, permítales ser escuchados y opinar en lo que trabajan.

En el sitio de bienes raíces en línea Trulia, los equipos de administración y desarrollo se reúnen trimestralmente para planificar y resolver problemas, dice Jeff McConathy, vicepresidente de ingeniería para servicios al consumidor.

“El proceso está impulsado por los empleados”, dice McConathy, “con equipos responsables de crear sus propias prioridades y hojas de ruta y presentarlas a la alta dirección y a los líderes de la empresa. Cada equipo también comparte sus éxitos y [lo que han aprendido] durante el último trimestre. Esto ayuda a cada equipo a determinar sus planes y priorizar proyectos, y permite ... que el equipo de gestión haga preguntas y se asegure de que cada grupo esté preparado para el éxito y avanzar en la dirección correcta para la empresa ".

Las medidas de empoderamiento de los empleados también pueden garantizar el compromiso y ayudar a retener el mejor talento de los desarrolladores.

“Al equipo se le debe permitir determinar su propia hoja de ruta profesional y qué tecnologías son las más adecuadas para tareas específicas, mientras que al mismo tiempo debe ser responsable de sus decisiones”, dice McConathy. “Pida a los equipos que se centren en objetivos específicos de alto nivel, luego déjelos correr con ideas y ejecución. Esto es un verdadero empoderamiento y, al final del día, a todos nos gusta trabajar en un entorno en el que podemos marcar la diferencia y aprender cosas nuevas ".

2. Recuerda tus raíces

Con demasiada frecuencia, los directores de ingeniería se ven alejados de su primer amor: escribir código. Pero los problemas de enfatizar demasiado el aspecto de "administración" del perfil de trabajo de un gerente de desarrollo son más profundos.

Sam Lambert, director senior de infraestructura de GitHub, sostiene que las empresas que ven a los gerentes e ingenieros de manera diferente están destinadas a tener un desempeño inferior.

“Las empresas necesitan posicionar a los gerentes como sólidos mentores técnicos para sus equipos”, dice Lambert. De esa manera, los gerentes de ingeniería "pueden brindar orientación sobre el código y los proyectos, ayudarlos a superar los desafíos técnicos y utilizar sus experiencias personales para multiplicar la efectividad de su grupo".

La capacitación es una gran oportunidad para reunir a los gerentes y miembros del equipo en el mismo barco. En Booz Allen Hamilton, el director Dan Tucker recibe ayuda de un equipo de entrenadores ágiles, que entrenan y entrena a equipos y gerentes.

“Como regla, los gerentes pasan por estas experiencias con sus equipos”, dice Tucker. "Esto ayuda a establecer un nivel en un lenguaje común, trabajar a través de la resistencia y la confusión, y diseñar el viaje por delante".

McConathy de Trulia también recomienda una cultura centrada en los empleados y una puerta abierta, incluso frente a los deberes comerciales. "Cancelé reuniones con nuestro presidente para tomar un café con un nuevo empleado o alguien que intenta resolver un problema", dice McConathy.

3. Aumentar la visibilidad empresarial

Dar a sus desarrolladores una mayor visibilidad del negocio es otra forma de garantizar que sus equipos técnicos puedan aportar una comprensión más profunda para lograr los objetivos comerciales. Por eso, Larry Gadea, CEO de Envoy, predica la transparencia.

“Aparte de la información privada de los empleados y los datos de los clientes, permitimos que los empleados vean todo sobre el negocio”, dice Gadea. "Esto incluye actualizaciones para inversores, diapositivas de reuniones de la junta, finanzas actualizadas, incluidos saldos de cuentas bancarias, calendarios sin editar, etc."

Bridget Frey, directora de tecnología de Redfin, está de acuerdo en que la exposición a las actividades comerciales centrales de la empresa es importante para ayudar a los desarrolladores a obtener información valiosa.

“Nuestros ingenieros siguen a nuestros agentes de bienes raíces, aprendiendo lo que es llevar a un cliente de gira o negociar el precio de compra de una casa”, dice Frey.

4. Derriba las paredes

Si sus proyectos no resuelven los problemas que se supone que deben resolver, puede ser una cuestión de barreras que deben derribarse.

Amanda Whaley, directora de experiencia de desarrollo en Cisco, ataca los silos apuntando a dos áreas: cultural y tecnológica.

“En el aspecto cultural, invertimos energía en la construcción de relaciones en toda la empresa”, dice Whaley. "Un ejemplo es el patrocinio de días de hackathon y no conferencia interna, en los que los miembros del equipo de muchas organizaciones pueden trabajar juntos en un taller y crear conexiones que luego pueden usarse para facilitar la colaboración"

“En el lado de la tecnología, valoramos una cultura de API primero”, agrega Whaley. “Esto anima a los equipos de desarrollo a crear API para que sea fácil para otros equipos crear integraciones y aprovechar los proyectos de los demás”.

5. Sepa cuándo hacer entrenamiento cruzado y cuándo especializarse

Cambiar roles a corto plazo puede formar un equipo mejor capacitado para manejar problemas inesperados sobre la marcha. Aquí, el entrenamiento cruzado puede ser esencial para aprovechar al máximo a su equipo.

Frey, de Redfin, dice que la compañía utiliza ampliamente el entrenamiento cruzado. "Dentro de la ingeniería, la mayoría de nuestros ingenieros trabajan con múltiples tecnologías y realizamos una serie de clases de capacitación en ingeniería que están abiertas a todos".

Pero puede haber un límite superior en el entrenamiento cruzado donde los retornos ya no justifican sacar a los especialistas de su dominio para aumentar la versatilidad. John Paliotta, cofundador y CTO de Vector Software, dice que, si bien es importante, la capacitación cruzada puede ir demasiado lejos.

“Para un grupo de desarrollo, claramente desea redundancia para que varios desarrolladores puedan trabajar en la misma área del producto, pero también desea que cada desarrollador tenga una especialización profunda”, dice Paliotta. "La especialización da como resultado enormes ganancias de productividad en comparación con tener un equipo de generalistas".

6. Mézclalo

Otra forma de facilitar la cohesión y derribar barreras es exponer a los miembros del equipo a colegas técnicos con los que no suelen interactuar en sus tareas diarias.

Zubin Irani, fundador y CEO de cPrime, enfatiza la necesidad de mezclarlo: “En nuestra última reunión de todos, en lugar de dividirnos en nuestros equipos habituales, en realidad mezclamos diferentes equipos para que pudieran hablar sobre problemas entre equipos, y juntos propongan soluciones sobre cómo mejorar las cosas ”, dice Irani. “Por ejemplo, nuestro equipo móvil, nuestro equipo de comercio electrónico y nuestro equipo de API se reunieron con el objetivo de hablar sobre lo que funciona bien y lo que no entre los equipos, luego dedicaron tiempo a buscar formas de mejorar donde tenían desafíos. "

Usha Parsa, directora de producto de Yahoo Cloud Services, dice que la polinización cruzada entre equipos se trata de crear objetivos comunes.

"Creemos en un enfoque ágil ... a través de diferentes límites de informes que se unen para la ejecución hacia un objetivo común", dice Parsa. “Los equipos modulares comparten un objetivo común. Los equipos tienen reuniones diarias individuales para la eficiencia, pero los equipos también se reúnen en un breve 'Scrum of Scrums' varias veces durante la semana para compartir el progreso y cuando necesitan ayuda mutua ".

7. Ir a funciones cruzadas

A veces, la mejor manera de aprovechar al máximo su equipo de desarrollo es dividirlos y agruparlos en equipos multifuncionales que agrupan el talento de varias facetas del negocio. Esto es especialmente efectivo si encuentra proyectos obstaculizados por silos departamentales.

Nic Grange, director de tecnología de Retriever Communications, dice que la creación de grupos en función de los resultados, en lugar de la función, ayuda a reducir los problemas que se encuentran en los silos. Todo se reduce a cómo está estructurado su negocio.

“La creación de una estructura de equipos multifuncionales puede ayudar a reducir el impacto de los silos”, dice Grange. “Parte de la información seguirá almacenada en silos dentro del equipo multifuncional, pero al menos tienen toda la información que necesitan para ofrecer sus resultados comerciales”.

8. Sal de la oficina

¿Qué hay de las formas de mantener a los miembros del equipo trabajando bien juntos? ¿Cómo mantiene a un grupo sintiéndose motivado, a gusto con los demás y, lo que es más importante, no agotado?

Eden Chen, director ejecutivo y fundador de Fishermen Labs, dice que su empresa se escapa, muy lejos, de su oficina en Los Ángeles cada año durante dos semanas.

"Estamos mirando a Sydney, Madrid o Budapest este año", dice Chen. “Podemos trabajar allí y aun así completar proyectos durante este período de dos semanas, pero esto es enorme para la formación de equipos, para hablar de las ineficiencias de los procesos y lograr que los múltiples equipos estén en la misma página: negocios, gestión de proyectos, diseño , y desarrollo. También hacemos una reunión al mes en la que salimos y hacemos algo divertido ".

9. Celebre el éxito

Otra forma de evitar el agotamiento y aumentar la moral es tomarse el tiempo para darse una palmadita en la espalda. Aquí, Artur Seidel, vicepresidente de Elektrobit, aconseja celebrar los éxitos de inmediato.

“Siempre organizamos una fiesta de envío que celebra un lanzamiento importante para un cliente”, dice Seidel.

Recuerda un proyecto con un plazo ajustado que lo llevó a trabajar durante las vacaciones.

“Terminamos el 29 de diciembre y lo celebramos con un día de motos de nieve en la naturaleza canadiense… y luego volamos a casa”, dice Seidel. "Lo que podría haber sido un verdadero lastre se convirtió en un recuerdo positivo y un vínculo de equipo".

10. Retribuir y vincular

Seamos realistas, no todo el mundo puede encontrar pasión al abordar los informes de errores en la búsqueda de objetivos comerciales todo el tiempo . Algunos desarrolladores esperan utilizar sus habilidades para resolver problemas más urgentes fuera del lugar de trabajo, si solo tuvieran tiempo.

¿Por qué no correr con ese instinto y proporcionar una valiosa actualización para el alma y la mente de sus ingenieros?

En Cisco, Whaley dice que la empresa “anima a los empleados a ofrecer su tiempo como voluntarios para ayudar a su comunidad o apoyar una causa global. Estas oportunidades de voluntariado son una forma de retribuir y de pasar tiempo juntos como equipo ".