La clave para un desarrollo de software eficaz es la colaboración.
Ningún grupo de personas puede lograr tanto como un equipo que es capaz de trabajar realmente en conjunto.
Esto significa aprender a navegar por diferentes tipos de personalidad, comprender sus propias fortalezas (y debilidades) personales y dejar de lado los desacuerdos para trabajar hacia un objetivo común.
Pero para hacer eso, necesitas tener una idea de los tipos de personas con las que trabajas. Necesitas empatía por sus experiencias y conocimiento práctico de cómo encajan en la dinámica general del equipo.
En el mundo del desarrollo de software, hay algunos tipos comunes de desarrolladores con los que es casi seguro que se encontrará (si aún no lo ha hecho). Si bien ningún individuo es una caricatura en realidad, comprender los pensamientos y las motivaciones de los miembros de tu equipo puede ayudarte a aprender a trabajar juntos de manera más efectiva.
Para los gerentes de ingeniería, también es fundamental identificar las fortalezas, habilidades y tendencias relativas de los miembros de su equipo. Esto le permite administrar de manera más efectiva a las personas y también pensar estratégicamente sobre cómo poner a las personas en una posición para tener éxito.
Veamos algunos de los tipos de ingenieros más comunes y qué funciones son las más adecuadas para desempeñar como parte de tu equipo.
Al profundizar en cada uno de estos arquetipos de desarrolladores, podemos obtener una sólida comprensión del papel que son los más adecuados para desempeñar dentro del equipo.
El Asistente o el conocimiento veterano del equipo es probablemente el más adecuado para liderar proyectos básicos y proporcionar orientación a los jóvenes desarrolladores. Aunque por lo general son muy talentosos y conocedores, es probable que sus años de experiencia los lleven a prácticas de larga data y eviten el cambio o la «innovación».
En el otro extremo del espectro, es probable que el Optimizador Infinito esté en constante búsqueda de la forma más nueva y mejor de hacer las cosas. Estos descubrimientos pueden ayudar al equipo a ser más eficiente y efectivo, pero el impulso por la mejora continua puede hacerlos menos confiables en el ínterin.
Es probable que la mayoría del equipo de desarrollo esté formado por Programadores Diligentes. Estos ingenieros son confiables y consistentes, pero es poco probable que introduzcan nuevas ideas o hagan un esfuerzo adicional para asegurarse de que el proyecto sea un éxito.
Los desarrolladores conocidos como Los Superhéroes contrastan con los Codificadores Diligentes en que se caracterizan por intensas explosiones de productividad. Desafortunadamente, nadie puede mantener la producción a nivel de superhéroe indefinidamente, lo que significa que es importante administrar su tiempo y energía. La clave es desplegar sus tendencias extremas solo en un punto crítico cuando es más necesario y es menos probable que ponga en peligro la calidad y la consistencia del trabajo del equipo.
Algunos desarrolladores funcionan mejor de forma aislada y sin mucha supervisión o administración. Consideramos que estos desarrolladores son Los Artistas Aislados. A menudo se asocian con el dominio a nivel de genio, pero pueden pensar demasiado o complicar proyectos que no requieren un pensamiento intenso y centrado.
La mayoría de los equipos confían en ciertos desarrolladores que tienen una capacidad asombrosa para encontrar la solución perfecta y el momento exacto: El Embrague. Estos desarrolladores tienden a ser increíblemente confiables en el momento de la crisis, pero solo pueden prosperar realmente bajo un alto nivel de presión. Al igual que los superhéroes, es fundamental que participen en los proyectos en los que pueden aportar más valor.
Por último, tenemos desarrolladores que se consideran el Dolor de cabeza. Por lo general, estos son ingenieros junior que a veces pueden cometer errores o ralentizar los proyectos. Pero, no todo está perdido. Con la administración y la orientación adecuadas, los desarrolladores que comienzan como problemáticos a menudo pueden mejorar y crecer para convertirse en miembros críticos y confiables del equipo.
Ninguno de estos arquetipos es necesariamente «mejor». De hecho, la mayoría de los equipos consistirán, y probablemente deberían, en una mezcla bastante uniforme en todos los ámbitos. Esto significa que los equipos tendrán desarrolladores que ofrecerán una gama de fortalezas y debilidades complementarias que se pueden unir mediante un liderazgo efectivo.
La clave es comprender los estilos y hábitos individuales de cada desarrollador para que sus contribuciones se puedan maximizar y el equipo, en su conjunto, pueda hacer el mejor trabajo posible.
Los mejores gerentes saben y entienden esto.
En lugar de imponer expectativas estrictas y unilaterales a cada tipo de desarrollador, un gran líder evaluará a cada persona como individuo para determinar qué condiciones necesitan para prosperar.
Con las personas adecuadas en los roles adecuados, todos podrán desempeñarse mejor.