Top 7 de señales de un programador sin experiencia
Publicado el 8 de marzo de 2021
Esta es una traducción libre de un artículo en inglés escrito por Lokajit Tikayatray, puedes leer el original en gitconnected.
La experiencia en ingeniería de software viene con la cantidad de años que llevas en la profesión. La afirmación es cierta hasta cierto punto. Sin embargo, la cantidad de años en un trabajo no te hace obtener la experiencia adecuada necesariamente.
He visto a gente comportarse como un principiante incluso después de haber trabajado durante varios años. Apenas aprenden los conceptos básicos del desarrollo de software. Su crecimiento se estanca después de un par de años iniciales, pero no entienden qué están haciendo mal.
Al mismo tiempo, he trabajado con desarrolladores con solo un par de años de experiencia que muestran un increíble potencial de crecimiento. Poseen la actitud y los conocimientos adecuados para evitar comportamientos incompetentes.
Con base en ciertos rasgos que exhiben los desarrolladores, puedes descubrir fácilmente quién tiene experiencia y quién no. Analicemos 7 señales de un programador sin experiencia que todo ingeniero de software debe conocer para evitar cometer errores similares que puedan obstaculizar el progreso de su carrera.
1. Crean pull requests extensos
¿Alguna vez ha recibido una solicitud de revisión de código con tantos cambios que no tiene ganas de revisarla? Sí, eso es precisamente lo que hacen los desarrolladores sin experiencia. Agruparán muchos cambios en un solo pull request. Además de eso, esperarán que les des prioridad a la revisión de su código.
También he visto este hábito de crear grandes pull requests en muchos desarrolladores senior. Codificarán durante días sin feedback. Cuando finalmente revises su código ya habrán construido toda la funcionalidad a su alrededor. Por lo tanto, cualquier comentario de revisión que proporciones requerirá cambios significativos.
Cuando recibo pull requests como esos, mi primera reacción es devolvérselo al desarrollador para dividirlo en PR más pequeños y lógicamente divididos. A menudo, solo pongo comentarios en el primer issue que encuentro y se los envío al desarrollador. Si me siento increíblemente generoso, les pediré programar una llamada para revisar juntos el código en vivo.
Qué puedes hacer:
- Crea pull requests más pequeños. Como buena práctica, nunca deje un día de trabajo sin registrarlo.
- Nunca registre código que no compile o rompa la compilación.
2. Escriben código espagueti
Los desarrolladores sin experiencia escriben exactamente lo contrario a un código hermoso. Su código estará enredado y esparcido por todas partes en el código fuente.
Si alguna vez intentas leer el código espagueti te perderás constantemente en él. Olvidarás dónde empezaste, qué estás buscando y qué está tratando de hacer exactamente el código.
Con experiencia, el desarrollador debe saber cómo planificar su codificación. A menos que sea una funcionalidad sencilla, primero pon tu comprensión y el flujo en un papel. Haz un ensayo para visualizarlo de un extremo a otro. Una vez que tenga claros los cambios, comienza con la implementación.
Si no sigues el proceso anterior, te costará leer tu propio código. Será difícil para usted y para todo el equipo, solucionar problemas o mejorar la pieza del rompecabezas que escribió como código.
Qué puedes hacer:
- Tenga una comprensión clara de la funcionalidad antes de comenzar a implementarla. Puede hacer tantas preguntas como desee para tener una idea clara del requerimiento.
- Mantenga su código simple y bien estructurado. Tus compañeros de equipo deberían poder leer el código y comprender el uso previsto.
3. Intentan trabajar en muchas tareas al mismo tiempo
Los desarrolladores sin experiencia no saben dónde comenzar una tarea, cómo proceder y cuándo decir que está terminada. Intentan resolver muchas cosas al mismo tiempo. No tienen ni idea de cómo dividir una tarea grande en divisiones lógicas más pequeñas para facilitar su implementación.
Si les asigna una tarea comenzarán a codificar de inmediato sin verificar siquiera si entendieron el pedido. Tampoco revisarán el progreso contigo para asegurarse de que van por buen camino. Solo se comunicarán una vez que crean que han terminado. En ese momento solo puede orar pidiendo tener una implementación precisa del requerimiento.
Otra señal de inexperiencia es que tales desarrolladores ponen sus manos en demasiadas cosas simultáneamente. Tomarán tareas de requerimientos no relacionados, se ofrecerán como voluntarios para solucionar problemas de producción y prometerán ayudar a otros en el equipo.
Al final, estos desarrolladores no entregan ninguna de las tareas comprometidas en su totalidad. Esta actitud puede ser bien intencionada la mayor parte del tiempo pero el resultado es desastroso para el equipo. Al final, el equipo pierde mucho tiempo y tiene que completar todas las tareas a contra pie.
Qué puedes hacer:
- Concéntrate en envíos pequeños. Divide tus asignaciones en porciones lógicas más pequeñas. Acláralo y luego entrega el bloque más pequeño posible de la funcionalidad.
- Toma una tarea a la vez y complétala. Comprométete con una nueva tarea solamente cuando la tarea anterior lo entregues según lo solicitado.
4. Son arrogantes
La arrogancia es un claro indicativo de un desarrollador sin experiencia. Están tan llenos de sí mismos que no comprenden lo que están haciendo mal. Les das retroalimentación sobre su código o presentación y lo tomarán como un comentario personal sobre su capacidad.
Muchos novatos muestran su arrogancia, principalmente debido a su ignorancia. Recién salieron de la universidad y aún no han entendido que el mundo profesional es completamente diferente de lo que aprenden en la universidad. Los inteligentes realmente se quedan callados y muestran un gran interés en aprender los caminos de la cultura corporativa.
No son solo los novatos, algunos desarrolladores arrogantes ya llevan varios años a sus espaldas en la industria del software. Puede deberse a algunos de sus logros profesionales o tal vez aún no han trabajado con personas más inteligentes y talentosas que ellos.
En cualquier caso, el comportamiento arrogante muestra una clara indicación de que dichos desarrolladores carecen de la experiencia adecuada. Su ego les impide aprender el enfoque correcto hacia su carrera. Al final a nadie le gusta trabajar con un miembro del equipo arrogante. Una vez que el crecimiento se ralentiza, el desarrollador arrogante culpa a otros por su fracaso.
Qué puedes hacer:
- Sé humilde en tu enfoque. La cortesía contribuye en gran medida a la construcción de una carrera exitosa en el desarrollo de software.
- Trata a todos, independientemente de la designación que tenga, con respeto. Evita discutir sobre desacuerdos.
5. No aprenden de sus errores
Siempre considero el mecanismo de retroalimentación como una de las herramientas más efectivas para un desarrollador de software. La retroalimentación nos ayuda a comprender nuestras deficiencias y cómo mejorarlas. Un desarrollador inteligente sabe cómo utilizarlos para mejorar su productividad.
Puedes identificar fácilmente a un desarrollador sin experiencia en función de su reacción a los comentarios constructivos. Nunca aceptarán ningún comentario de mejora en su desempeño. Incluso se toman a pecho los comentarios de revisión de código.
Hace muchos años teníamos un compañero de equipo que me escribió un correo electrónico extenso sobre cómo debería revisar el código. Estaba enfurecido con los comentarios de revisión que hice para su PR. Su argumento principal fue que no debería preocuparme por el estándar de codificación ya que él sabe cómo codificar. Quería que solo revisara si el código cumple con el requisito funcional.
Si el desarrollador se siente insultado por los comentarios de las revisiones es una clara señal de que no ha aprendido nada de su experiencia. Continúan trabajando año tras año con una actitud incompetente y se preguntan por qué nadie valora su contribución.
Qué puedes hacer:
- Mantén una actitud positiva hacia cada comentario. Puedes elegir cuál aceptar y cuál descartar pero haz una revisión imparcial antes de decidir descartarlo.
- Ten la mente abierta para aprender de tus errores. Nadie tiene razón todo el tiempo. Utiliza lo aprendido para mejorar tu desempeño.
6. Dedica horas del trabajo a tareas personales
Siempre hay algunos miembros del equipo a los que se los puede encontrar haciendo su trabajo personal durante el horario de oficina. Navegarán en redes sociales, explorarán los sitios de compras en línea o jugarán juegos.
Teníamos un miembro del equipo que solía negociar en el mercado de valores durante el horario de oficina. Tuvo un impacto adverso en su entrega ya que siempre se centró en cómo le estaba yendo en el día a día. Otros miembros del equipo expresaron su preocupación por este comportamiento ya que fueron ellos los que tuvieron que hacer un esfuerzo adicional para cumplir con la fecha límite.
Cuando el gerente advirtió a dicho desarrollador se arregló durante unos días pero volvió a operar. Finalmente la empresa tuvo que despedirlo debido a este comportamiento.
Este comportamiento no es ético y muestra claros signos de inexperiencia del desarrollador. Sería mejor que seas sincero con la profesión que te ayuda a ganarte la vida.
Qué puedes hacer:
- Limitar tus tareas personales durante el horario de oficina al mínimo. Siempre puedes pedir permiso al gerente si tienes que tomarte un par de horas libres para atender problemas personales inevitables.
- Puedes utilizar tus descansos para consultar las redes sociales. Lleve tu almuerzo al escritorio y realiza transacciones bursátiles durante la hora del almuerzo si lo deseas.
7. A menudo corre detrás de tecnologías mediáticas
Una señal de un desarrollador sin experiencia es cómo corren detrás de tecnologías mediáticas (hyped). Los encontrarás siempre hablando de la próxima gran novedad. Tan pronto como haya una nueva moda en el mercado, el desarrollador abandonará la anterior y se subirá al tren más reciente.
Los desarrolladores sin experiencia también dominan el arte de hacer tutoriales. Sin duda, los tutoriales son herramientas de aprendizaje útiles. Pero simplemente seguir los tutoriales sin ningún uso práctico es una pérdida de tiempo. Puede dar una falsa sensación de logro ya que la prueba real del conocimiento es usarlo en el mundo real.
Rara vez verás a éstos desarrolladores utilizando la tecnología mediática o el conocimiento adquirido de los tutoriales para implementar algo nuevo. Simplemente lo hacen para satisfacer su ego. Además, muchos desarrolladores sin experiencia caen en esta trampa debido a su miedo a perderse algo (FMO: Fear of missing out).
Qué puedes hacer:
- Dedicar tu tiempo y esfuerzo en aprender tecnologías que realmente puedas utilizar para implementar algo en tu lugar de trabajo o en tu proyecto personal.
- Utilizar lo aprendido en los tutoriales para realizar algo práctico. Aprenderás más implementando algo por tu cuenta que siguiendo cualquier tutorial.
Pensamientos finales
Los programadores sin experiencia reducen la productividad de todo el equipo debido a su ineficiencia. Su enfoque incorrecto hacia el trabajo los hacen perder la oportunidad de crecer en una carrera de software altamente gratificante.
Es aconsejable reconocer y evitar actitudes autodestructivas al inicio de tu carrera. Cuanto más te acostumbres a los comportamientos mencionados anteriormente, más difícil será salir de ellos en los últimos años de tu profesión.