Me encantan los encuentros donde la gente se junta para compartir ideas, pizza y cerveza. Ya sea con estudiantes o en comunidades de desarrollo, a menudo me piden que defina lo que significa ser Senior, Junior, o peor aún, Semi-Senior.
Voy a decirlo de una vez y listo: no me importan en absoluto; están en el último lugar de mi lista de preocupaciones. En comparación con todo lo demás en lo que podría estar pensando, estas definiciones simplemente no importan. No me importa si cambian o se mantienen iguales. Así que, es justo decir que no hay nada en lo que me preocupe menos que estas definiciones. (Igual, lo admito... me siento mal por haberte hecho pasar por todo esto! Como ya estás acá, ahora me relajo y trato de explicártelo.)
Vamos a analizar este problema desde otro punto de vista para ver si podemos enfocarnos en lo que realmente importa.
Junior, Semi-Senior y Senior, ¿realmente importa?
Podríamos pasar horas hablando de lo que un ingeniero de software debería saber, hacer, y ser responsable para estar en cada nivel. Pero, en mi opinión, una forma simple de medir el "nivel de madurez" de un ingeniero de software es viendo qué tan bien pueden manejar sus tareas diarias de manera autónoma.
¿Cómo sabemos cuándo alguien es autónomo? Fácil. Si alguien puede hacer su trabajo sin que alguien más esté constantemente mirando por encima de su hombro, es autónomo. Por lo general, están motivados, saben lo que están haciendo, y pueden manejar sus responsabilidades muy bien. Son buenos para establecer prioridades y completar las tareas a tiempo. Se ponen metas propias y trabajan duro para alcanzarlas.
¿Por qué es esto importante? Bueno, vimos que para prosperar en entornos de startups, los trabajadores necesitan un nivel de independencia que les permita adaptarse a circunstancias cambiantes, resolver problemas de manera creativa, y tomar la iniciativa cuando sea necesario. Esto es cierto para cada startup, pero para aquellas startups dependientes de la tecnología, tener desarrolladores de software autónomos es una necesidad.
Cuéntame tu rutina diaria de trabajo, y mediré tu nivel de seniority
Digamos que un desarrollador de software me da esta descripción de su trabajo:
"Normalmente, comienzo mi día revisando mi tablero de tareas. Tomo la primera tarjeta (la más importante) de la columna de Por Hacer, la muevo a la columna de En Proceso, y comienzo a trabajar en la parte de codificación. Por lo general, pregunto a otros desarrolladores sobre cómo hacer cosas a nivel de código o diseño. Apenas participo en muchas de las reuniones en línea de la empresa porque tiendo a estar muy concentrado en ocuparme de mi tablero de tareas, mantener la productividad, y completar todas las tareas asignadas para la fase actual de nuestro proyecto."
Esta descripción revela que el desarrollador en cuestión es conocido como un "cerrador de tickets": alguien que predominantemente pasa su tiempo simplemente cerrando tickets, y cuya contribución rara vez es considerada por el equipo (principalmente debido a la falta de oportunidades). Parecen ser más ejecutores que pensadores, careciendo de influencia en la toma de decisiones o la planificación estratégica. Esto podría ser debido a muchas razones: podrían tener relativamente poca experiencia, sus ideas podrían no alinearse con la dirección del equipo, o simplemente podrían no haber tenido la oportunidad de compartir sus puntos de vista.
Aun así, ser un 'cerrador de tickets' no siempre es algo malo. Esto sugiere que pueden ser confiables y son buenos resolviendo problemas o terminando tareas, y dada la oportunidad, incluso podrían convertirse en un jugador clave en las conversaciones del equipo.
Ahora, analicemos esta otra descripción:
"Por lo general, tomo los trabajos del tablero y me pongo a trabajar. Mientras lo hago, la gente a menudo hace preguntas sobre varios temas. Por lo general, tenemos una mini sesión de lluvia de ideas donde lanzo sugerencias sobre cómo resolver el desafío actual, interactuando con mis compañeros de equipo en nuestro espacio de trabajo digital. De vez en cuando, si siento que una situación es crítica o perjudicial para el negocio, me sumerjo para resolverlo, luego vuelvo a mi tarea anterior."
Esta descripción sugiere que este desarrollador es parte de un grupo al que me gusta llamar "solucionadores de problemas". Estos son desarrolladores flexibles y visionarios que son excelentes comunicadores. Pueden manejar múltiples tareas y administrar su tiempo de manera eficiente al decidir qué necesidad es más urgente e importante para el negocio.
También son buenos colaborando con su equipo, participando regularmente en conversaciones con sus colegas para solucionar problemas y compartir lo que saben. Este desarrollador en particular parece estar preparado para dar un paso adelante cuando las cosas se ponen difíciles, pero también está listo y dispuesto a ayudar a otros, actuando como un sistema de apoyo para el resto del equipo. El atributo más destacado es que pueden hacer todo esto mientras se mantienen al día con la programación.
Finalmente, revisemos esta descripción:
"Me encanta comenzar mi día escaneando la columna 'En Proceso' para ver si algo se ha quedado atascado. Si encuentro algo, tengo una charla con el desarrollador a cargo de esa tarea. Por lo general, terminamos haciendo programación en pareja hasta que lo resolvemos. Esto a menudo me lleva a identificar problemas u oportunidades que encajan con nuestra estrategia a largo plazo, así que agrego nuevas tareas a nuestra lista de pendientes. Cuando no estoy inmerso en código con otros, estoy implementando tareas básicas o decidiendo qué tareas aprovecharán mejor nuestro tiempo en la próxima iteración."
Muy bien, hablemos de este último grupo de desarrolladores al que me gusta llamar "organizador de problemas". Estos son desarrolladores que pueden identificar desafíos u oportunidades, empaquetarlos ordenadamente en una tarea detallada dentro de una herramienta de gestión de proyectos, y luego decidir si abordarlos o no. Sus elecciones están guiadas por su comprensión del negocio, los conocimientos adquiridos en reuniones estratégicas y su experiencia personal.
Pero eso no es todo lo que hacen. Recuerda, son desarrolladores de software en el fondo. Esto significa que necesitan un amplio conocimiento de diferentes lenguajes de programación, conceptos tecnológicos y métodos de desarrollo de software. No solo son hábiles escribiendo código; también tienen habilidades para diseñar sistemas de software, resolver problemas de manera independiente, crear soluciones innovadoras para problemas complejos y actualizar continuamente sus conocimientos tecnológicos para mantenerse al día. Se destacan en mantener a todos actualizados sobre el progreso y cualquier obstáculo encontrado en el camino. Además, están dedicados a proporcionar productos finales de alta calidad.
Conclusión
Para concluir, es posible que te estés preguntando qué tiene que ver todo esto con mi queja contra las etiquetas de Senior/Junior. Bueno, apuesto a que ya has hecho la conexión.
Si me presionas demasiado, puedo definir a un Junior como un cerrador de tickets, a un Semi-Senior como un solucionador de problemas y a un Senior como un organizador de problemas.
¿Por qué creo que esta definición tiene más sentido? Bueno, al comienzo de este artículo, mencioné la independencia de un desarrollador de software. Entonces, si alguien solo completa tareas y hace preguntas relacionadas con la codificación con frecuencia (cerradores de tickets), carecen de independencia en comparación con aquellos que establecen tareas en la columna de Tareas por Hacer y otros desarrolladores. Si puedes manejar problemas de manera independiente sin necesitar mucha ayuda y también tienes cierta participación en la definición de tareas (solucionadores de problemas), eres más autosuficiente; aunque aún dependas de aquellos que completan la lista de pendientes, se sabe que algunos de ellos necesitarán tu ayuda para completar esas tareas. Por último, los armadores de problemas son aquellos que no dependen de nadie más, los que pueden decirle a su jefe "Esa es una idea interesante, pero sería más efectivo usar mi tiempo en otro lugar" y no ser despedidos de inmediato. Este es el nivel más alto de autonomía.
Bình luận