Niveles de habilidad para profesionales IT

Niveles de habilidad para profesionales IT

 

Esta es una pregunta capital que se hacen tanto los gerentes de equipo en las compa√Ī√≠as de tecnolog√≠a digital como los responsables de captaci√≥n de recursos humanos en las empresas de reclutamiento IT, y l√≥gicamente tambi√©n los programadores. Y la respuesta fundamental es una sola: pericia, habilidad.

Los desarrolladores senior, sin que tengan que ser expertos en todo, sin duda tienen mucha m√°s habilidad para cumplir con las exigencias de su trabajo que los desarrolladores junior y que los de nivel intermedio o semi senior.

Ahora bien, ¬Ņc√≥mo saber qu√© nivel de habilidad tiene un programador a la hora de ubicarlo en una de estas tres categor√≠as?

Seguidamente, pasaremos revista a los dos factores que consideramos b√°sicos a la hora de juzgar el grado de experticia de un programador o desarrollador web, a saber:

1)    El conocimiento. El conocimiento no lo es todo, pero es un elemento importante. Un programador senior, con m√°s conocimientos que sus hom√≥logos junior y semi senior, debe conocer bien los patrones de dise√Īo, los lenguajes y los frameworks, los paradigmas de programaci√≥n, las arquitecturas y las bases de datos. Y debe saber c√≥mo trabajar en el desarrollo de software de forma aut√≥noma.

No as√≠ los desarrolladores junior, y en menor medida los semi senior, quienes a√ļn requieren de cierto acompa√Īamiento y son propensos a cometer errores por su menor experiencia.

2)    La codificaci√≥n. Otro aspecto fundamental que diferencia a los desarrolladores senior de los junior es su capacidad para la codificaci√≥n. Mientras un programador junior se contenta de poder comunicarse con las computadoras, el programador senior tiene claro que debe comunicarse con otros desarrolladores, que probablemente trabajar√°n con √©l en un futuro, e instruir a las computadoras.

Una diferencia clave entre programadores senior y junior es su comprensi√≥n que todo desarrollo de software ha de llegar en alg√ļn momento a manos de otro equipo y √©ste debe poder abrir el c√≥digo y trabajar en nuevas funciones y/o correcciones que surjan a futuro.

Por su parte, de las habilidades de codificación de los programadores de nivel medio solo diremos que son difíciles de precisar, pues éstos se encuentran en una zona intermedia de habilidad, muy probablemente más cercana a las de los programadores senior, y seguramente ya han pasado por todo el ciclo de desarrollo de software al menos una vez y han podido cometer muchos errores y aprender de los mismos.

Otros aspectos importantes que tienen que ver con la valoración de un desarrollador en términos de senior, semi senior o junior son:

1)    Su capacidad para la codificaci√≥n KISS. El programador experimentado sabe que mientras m√°s simple, directo e incluso tonto codifique, mejor (Keep it Short and Simple). El c√≥digo escrito por un desarrollador senior siempre tomar√° en cuenta a las personas que trabajar√°n con √©l a futuro, y velar√° por su capacidad de mantenimiento y escalabilidad, a diferencia del junior, quien solo est√° pensando en hacerlo funcionar para la computadora.

2)    En cuanto al nivel de supervisi√≥n, los desarrolladores junior tienen capacidad para realizar tareas simples o de bajo impacto, pero no llegan a desarrollar arquitectura de software por cuenta propia. Los semi senior, aunque cumplen tareas un poco m√°s complejas, todav√≠a no alcanzan el nivel como para dise√Īar soluciones de forma independiente y a√ļn requieren de supervisi√≥n. En cambio, los programadores senior s√≠ cuentan con la capacidad para desarrollar una aplicaci√≥n de forma completamente independiente.

3)    Otro aspecto relevante tiene que ver con la Proactividad y la capacidad para las preguntas correctas. En la medida en que un desarrollador tiene m√°s nivel, menos requerir√° que se le gu√≠e en su trabajo, que se le asignen tareas. Un programador senior asumir√° su trabajo con mayor iniciativa, buscando y generando requerimientos, haciendo las preguntas del caso para seguir con la acci√≥n correcta. Incluso llegar√° a proponer nuevas asignaciones a su superior. En cambio, el junior esperar√° que le definan su trabajo, sin mayor capacidad para hacer las preguntas correctas de forma inmediata. Su falta de experiencia ameritar√° la orientaci√≥n de otros desarrolladores m√°s experimentados.

En el caso de los desarrolladores de nivel medio, por su parte, estos deberían poder hacer las preguntas correctas siempre y cuando no se le asignen tareas altamente complicadas para las que carezcan del debido conocimiento.

¬ŅC√≥mo subir de nivel?

 Todo desarrollador aspira a mejorar de nivel. A continuaci√≥n, te diremos c√≥mo lograrlo: 

1)    Para escalar de desarrollador junior a semi senior:

  • Lo primero que tiene que hacer un junior para escalar al nivel medio es pasar por todo el ciclo de desarrollo de software al menos un par de veces.
  • Para codificar de la mejor manera, debes aprender a hacerlo de la forma m√°s simple posible (Recuerda la premisa KISS). No olvides que otra persona va a trabajar con ese c√≥digo.
  • Aprende a depurar lo que codificas, esto te dar√° una mejor comprensi√≥n de lo que est√° sucediendo en el proceso. Familiar√≠zate con las mejores pr√°cticas y aprende sobre arquitectura, rendimiento, seguridad, etc. Procura cerrar la brecha de conocimiento para llegar al niel semi-senior.

2)    Para escalar de nivel semi senior a senior:

Para alcanzar el nivel senior, debes prepárate para asumir las tareas que nadie sabe cómo solucionar. Algunos desarrolladores medios nunca escalan al nivel senior.

  • Debes concentrarte en aprender m√°s que solo hacer tareas rutinarias, y debes arriesgarte. Muchos desarrolladores senior saben qu√© esquinas se pueden acortar y cu√°les nunca se deben acortar. Ello √ļnicamente lo aprender√°s al cometer errores.
  • Tambi√©n debes conocer tu stack tecnol√≥gico. Es importante que conozcas todas las herramientas y aplicaciones disponibles en la empresa donde trabajas.
  • Y muy fundamental, debes apoyar a los desarrolladores menos experimentados. Recuerda que eres su respaldo a la hora de las dificultades, ellos esperan contar contigo cuando no puedan resolver algo.

 

Una vez Martin Fowler dijo: ‚ÄúCualquier tonto puede escribir c√≥digos que una computadora entienda. Los buenos programadores escriben c√≥digos que los humanos entienden‚ÄĚ.