Cómo reconocer a los desarrolladores senior

Son la solución al problema con más frecuencia que la causa.

Dejando a un lado las frases ingeniosas, algunas cosas que asociaría con el término “desarrollador senior”:

  • Habilidad y experiencia, lo cual es evidente. Tienen un fuerte conocimiento técnico y una gran experiencia técnica. Elige cualquiera de los dos.
  • Habilidades técnicas “más grandes”. Ser capaz de diseñar soluciones y arquitecturas que se mantendrán en el desarrollo futuro, pero que también harán el trabajo cuando sea necesario. Al menos una familiaridad pasajera con el mundo más amplio de tecnologías y conceptos que no utilizan activamente.
  • Liderando desde lo anterior: saben lo que no saben. Tienen una buena comprensión de los límites de su conocimiento, y al menos una idea general de la naturaleza de lo que está más allá de esos límites, y cuáles son sus límites finales. No tiene que saberlo todo de manera espontánea, pero debe tener un conocimiento bastante bueno de lo que no sabe y tener una buena idea de cómo llenar los vacíos a medida que surgen.
  • Comprensión, comprensión y habilidades de pensamiento crítico. Entienden lo que están haciendo y por qué lo están haciendo. Esto puede parecer obvio, pero no sería inusual (o necesariamente algo malo, si se administra) que un desarrollador junior no entienda completamente alguna pieza de código en la que están trabajando, por qué funcionó alguna solución o qué son se supone que lo está logrando. Un desarrollador senior, no tanto.
  • Juicio. Pueden evaluar con precisión razonable si algo es una buena idea, producir buenas estimaciones para el trabajo, evaluar la gravedad de los problemas, anticipar problemas, etc.
  • Cuadro grande, contexto. Son conscientes del contexto más amplio en el que operan: preocupaciones comerciales, usabilidad, horarios, recursos, diseño de productos, prioridades, mercados, relaciones con los clientes, gestión de proyectos, etc. Entienden que están intrínsecamente interconectados con todas estas cosas, y son capaces y están dispuestos a actuar sobre esa comprensión en beneficio del esfuerzo en su conjunto.
  • Habilidades blandas Todos los desarrolladores deben tener estos de todos modos, pero ahora, las habilidades de comunicación, colaboración y trabajo en equipo deben ser fuertes. Al menos algún grado de habilidades de liderazgo debe estar presente.
  • Establezca el estándar, mejore el estándar. Los desarrolladores senior se esfuerzan por mejorar el trabajo de otros desarrolladores y equipos y el suyo propio, y establecer estándares. Independientemente de la responsabilidad formal, lo hacen ante todo con el ejemplo. Enseñan, educan y orientan, nuevamente, independientemente de la responsabilidad formal.
  • Liderando desde varios de los anteriores; toman la iniciativa y la responsabilidad. Intensifican, mejoran y arreglan cosas (en un sentido amplio, ya sean procesos o código o lo que sea) sin que se lo digan o supervisen.

El término “Desarrollador Senior”, como se usa comúnmente, es solo un título de trabajo ahora. Una mejor pregunta sería “¿Qué debo buscar en un desarrollador senior?”

1. Experiencia: un desarrollador debería, bueno, ser capaz de desarrollar. Por lo general, un desarrollador sénior debería poder, con el tiempo suficiente, manejar un proyecto de extremo a extremo y estar familiarizado con la mayoría de los idiomas y plataformas involucrados, si no todos.
2. Orientación: los desarrolladores senior liderarán sus proyectos. Si no pueden guiar, orientar y capacitar a los desarrolladores junior, deberían estar entre ellos.
3. Madurez: inevitablemente enfrentarán contratiempos y fracasos en sus proyectos, y saber que pueden lidiar con eso es importante. Nunca contrataría a alguien que siento sería incapaz de superar un fracaso. Alguna experiencia con proyectos fallidos en el pasado, en cualquier capacidad, generalmente es muy útil.