Buscar

Developers: Cuál es mi nivel?

Cada búsqueda tiene como finalidad contratar a las personas para que formen parte de un equipo con todos sus pros y contras, Si lo piensa,"trainee", "junior", "semisenior" y "senior" son solo etiquetas. Pero tales etiquetas deben usarse para simplificar la imagen del mundo y aumentar la efectividad de la comunicación; son familiares tanto para las empresas como para los colegas.

Esto te permite discutir un conjunto de expectativas para un rol en particular. Pero las personas rara vez encajan perfectamente en un marco conveniente, y el desempeño de cada desarrollador en un proyecto depende de una variedad de parámetros. Por lo tanto, es casi imposible llegar a una métrica abstracta objetiva de calidad solo por estos parámetros.

Por ejemplo, una persona puede desempeñarse de manera brillante en un proyecto y reprobarlo repentinamente en el siguiente. ¿Qué esperar de ellos en el tercer proyecto? Algunos desarrolladores pueden responder de manera brillante a las preguntas técnicas más complejas, pero luego generan un código no compatible. O al contrario: un especialista puede tener dificultades para resolver problemas básicos mientras tiene una docena de proyectos completados con éxito en su currículum. Profundizar en tales matices, ayudar a las personas a utilizar sus fortalezas y compensar las debilidades es una de las tareas de la gestión. La tarea no parece tener una solución común, lo que hace que el trabajo del gerente sea interesante, aunque a veces difícil.

TRAINEE

Son perfiles que buscan su primer empleo para alcanzar el nivel junior y es fundamental contar con la guía de un mentor experimentado. Hay dos requisitos básicos para este nivel:

  1. Haber realizado alguna certificación.

  2. Comprensión de las herramientas elegidas y capacidad para utilizarlas.

El requisito de conocimientos de inglés es muy importante ya que te abre puertas a trabajar con clientes del exterior y hace un diferencial muy importante.

Por otro lado, si quieres asumir el rol de programador, la herramienta para ti es un lenguaje de programación con las herramientas de desarrollo que necesitas. Si un trainee quiere desarrollar usando .NET, pero no puede explicar qué hace el CLR, en qué se diferencia "Equals" de "==", o implementar el algoritmo más simple, entonces no tiene ninguna posibilidad. Viniendo sin conocimiento y esperando que todo se enseñe en el lugar mientras que ganar el salario no funcionará, simplemente hay demasiada competencia. Muchos candidatos han completado varios cursos profesionales, pueden responder fácilmente todas las preguntas teóricas e incluso tienen alguna experiencia personal en programación. Por supuesto, estas personas se contratan primero.

JÚNIOR

Luego de la primera experiencia como Trainee, la persona se convierte en junior. El principal requisito para ello es la capacidad de realizar tareas técnicas de forma independiente . Si hay arquitectura incorporada en el proyecto, el junior debería poder implementar la siguiente pieza de la lógica de muestra de la aplicación sin dudarlo. Sin embargo, un junior puede de vez en cuando cometer errores, no entender los matices y discutir los planes de implementación o verificar el código terminado con el líder del equipo.

Para un junior, las siguientes cualidades son importantes:

  1. El deseo de desarrollarse y aprender (especialmente de sus errores).

  2. Energía y compromiso.

  3. La capacidad de recibir críticas con calma.

Debe entenderse que las tareas que un senior puede resolver en diez minutos, un junior pueden requerir una hora cada una, y en el proceso el código tendrá que ser reescrito por completo, lo que significa gastar mucha energía extra. Es importante no tenerle miedo y buscar el equilibrio. Necesita saber cuándo intentar resolver una tarea usted mismo y cuándo dejar de colgar la cabeza contra la pared (mientras dedica el tiempo del proyecto) y pedir ayuda.

SEMI SENIOR

El principal requisito para el desarrollador Semi Senior es la capacidad de realizar las tareas que se les asignan de forma independiente . Muy parecido a lo que estaba escrito en el párrafo anterior, ¿verdad? Sin embargo, hay un matiz importante: aquí no hay palabra "técnico". Es decir, en un nuevo nivel, se deben comprender los requisitos comerciales y ser capaces de traducirlos en soluciones técnicas.

Por lo tanto:

  1. Un Semisenior entiende exactamente lo que hace la aplicación. Esto permite una comprensión más profunda de la tarea, por lo tanto, evaluarla con mayor precisión e implementarla de manera más efectiva. Si los requisitos no cubren completamente un determinado escenario, un buen desarrollador prestará atención a esto durante la etapa de planificación. Y no cuando la aplicación comienza a fallar después de cualquier acción del usuario no estándar.

  2. Un Semisenior está familiarizado con las plantillas y soluciones estándar cuando crea una aplicación en su campo, comprende por qué son necesarias y sabe cómo aplicarlas. La estandarización de soluciones es de gran importancia en el desarrollo colectivo de código, porque permite que la persona nueva entienda rápidamente qué es qué y minimiza el número de errores. Comprender la estructura de una aplicación típica hace que la tarea de construirla desde cero sea bastante trivial y permite discutir los principios de implementación correcta y distinguir el código bueno del malo.

  3. Un Semisenior entiende que un soldado no hace una batalla. Saben cómo interactuar con los miembros del equipo, por ejemplo, discutir un momento difícil con un diseñador, aclarar los requisitos incompletos con el analista de negocios, acordar alguna solución técnica importante con el arquitecto del proyecto (si existe) y, por supuesto, Poseer las herramientas adecuadas para el desarrollo colectivo.

SENIOR

Un senior es un desarrollador experimentado que ha visto mucho código, ha cometido una serie de fallas y errores y ha logrado sacar las conclusiones correctas de ellos. La tarea principal de un senior es tomar las decisiones tecnológicas correctas en el proyecto . Las "decisiones correctas" son aquellas que aportan el máximo beneficio a la empresa y minimizan los costos. Un buen senior no solo comprende lo que está desarrollando el equipo, sino que también piensa en las tareas que debe resolver la aplicación finalizada. Al desarrollar un sitio para una subasta, un senior siempre se pregunta sobre la carga máxima y trata de prever los intentos de entrada competitiva en las tablas de la base de datos. Piensan de antemano en los cuellos de botella del sistema y la posibilidad de escalarlo, recuerda vulnerabilidades y problemas provocados por el uso inadecuado de herramientas.

Un experto así hace algo asombroso: resuelven problemas incluso antes de que tengan la oportunidad de aparecer . Desde fuera se asemeja al don de la previsión. Pero si su proyecto vive de un problema a otro, y constantemente tiene que desechar y reescribir fragmentos de código, entonces estos son los síntomas de que el proyecto no recibe suficiente atención por parte de un senior.

Después de pensar un poco, podemos formular una serie de características de un desarrollador senior:

  1. La capacidad de resolver varias tareas más complejas y completarlas más rápido o mejor que un desarrollador promedio no tiene nada que ver con la antigüedad. En nuestra clasificación, la persona que hace esto se llama "Medio Fuerte".

  2. El rango superior no se puede obtener rápidamente. Es necesario adquirir una amplia experiencia y comprender qué distingue a un producto bien hecho de uno toscamente hecho, cómo se manifiesta la deuda técnica, cuánto cuesta la refactorización, qué patrones son realmente necesarios y si se necesitan niveles infinitos de abstracción. Es necesario tomar decisiones importantes por su cuenta y darles tiempo para pasar la prueba, de lo contrario no serán evaluados.

  3. Un senior requiere buenas habilidades de comunicación, porque no solo debe ofrecer la decisión correcta, sino también convencer a su cliente y al equipo de que estén de acuerdo con ellos. Si no pudo defender una buena decisión y en lugar de ella aceptó una mala, tendrá que culparse a sí mismo por ello. La opción "Te lo dije" ya no funciona en el nivel superior. Lo mismo ocurre con el equipo: no basta con saber cómo se deben hacer las cosas, también hay que ser capaz de explicarlo de forma inteligible. Entonces el equipo crece rápidamente y acumula experiencia evitando errores dolorosos.

  4. Un senior no puede prescindir de comprender el diseño de bibliotecas y marcos. Si la herramienta de desarrollo para ti es una caja negra, y compones una aplicación a partir de las piezas terminadas sin saber qué hace cada una, el producto siempre será inestable e impredecible.

Un gerente que agrega un senior al proyecto espera reducir los riesgos técnicos o al menos comenzar a comprenderlos. Rara vez hay sistemas sin un solo problema: el perfeccionismo tecnológico a menudo simplemente no es rentable para los negocios.


(Fuente Dataart) #developers #rrhh #rhactitud




49 vistas