¿Qué es un desarrollador senior y cómo puedo convertirme en uno?

Convertirse en un desarrollador sénior es algo por lo que muchos de nosotros luchamos a medida que continuamos nuestro viaje de código y construimos nuestra carrera. Pero, ¿qué significa realmente ser un desarrollador "senior"?

Lo que no es ser un Desarrollador Senior

Antes de empezar, dejemos esto fuera del camino. Contrariamente a lo que verá en más del 95% de las ofertas de trabajo en línea, un desarrollador sénior no está estrictamente correlacionado solo con la cantidad de años en su currículum.

Es cierto, la mayoría de las veces, que muchos años en el trabajo suelen traer consigo mucha experiencia. Y con algunas empresas puedes arreglártelas con eso. Pero no es la única cualidad que demuestra legítimamente que alguien está en un nivel Senior.

Este es un problema común en el mundo del software y puede generar altas expectativas con poca entrega. También puede generar conflictos dentro del equipo cuando su nuevo Desarrollador Senior 10x de 15 años se niega a trabajar con otros.

Entonces, ¿qué podemos hacer para prepararnos para ese papel?

¿Qué hace a un desarrollador sénior?

Mirando hacia atrás a través de mi carrera en los desarrolladores de mi equipo que más he admirado y respetado, realmente se reduce a cuatro cualidades:

  • Experiencia
  • Liderazgo
  • Tutoría
  • Habilidad tecnica

No es suficiente considerar a ninguno de estos como la única representación de cómo se desempeñará alguien en un equipo. Cada desarrollador es único y puede ser más fuerte con una cualidad que con otra. Pero es importante ver cómo se unen esas cualidades para determinar cómo alguien ayudará a que su equipo crezca.

Analicemos cada uno un poco.

Experiencia

La experiencia generalmente se considera como años en el trabajo y, si bien no es completamente inexacta, no cuenta toda la historia.

Así como cada desarrollador es único, también lo es su experiencia. Mientras que un desarrollador podría haber pasado cinco años en una posición intensiva en la que trabajó para resolver desafíos técnicos difíciles todos los días. Y otro podría haber estado pateando sus pies en una tienda local donde su única responsabilidad era actualizar el sitio web cada semana.

¡Y eso no es necesariamente algo malo! Cada uno de nosotros tiene su propio viaje y necesitamos equilibrar nuestras vidas para adaptarse a él. Pero no es realista decir que esos 5 años fueron iguales.

Entonces, ¿qué significa realmente la experiencia?

Reconocer patrones de trabajos anteriores

Cada desarrollador tiene una historia (ya sea que la recuerde o no) de un error aleatorio con el que tropezó durante su experiencia de desarrollo. Esto podría ser algo relacionado con Javascript, webpack o incluso su sistema operativo, ¡y simplemente no tiene ningún sentido!

Pero ya sea a través de un par o buscando en Google, lo averigua. Y tres meses después, cuando estás trabajando en otro proyecto y te encuentras con lo mismo, ni siquiera tienes que buscarlo en Google, o ya sabes qué buscar en Google. Ya sabe cuál es el problema y puede superarlo rápidamente y seguir adelante.

Este es el tipo de experiencia que marca la diferencia. Ser capaz de reconocer patrones, ya sea por un error o porque fue muy exitoso, es lo que nos ayuda a crecer a cada uno de nosotros. Estas son las experiencias que ayudan a un equipo a crecer cuando otros están estancados y usted puede sacarlos de un apuro.

Reconociendo lo que no sabes

También es importante comprender lo que no sabe. Creo que parte de lo que contribuye a mi propia lucha personal con el síndrome del impostor es que cuanto más aprendo, más me doy cuenta de que no sé.

Pero esto no debe verse como algo malo o aterrador. Esto debería ser inspirador. ¡Eso significa que su oficio en el que ha estado trabajando tiene muchas más cosas interesantes para explorar!

Desarrolladores junior:

"No tengo idea de cómo resolver este problema; nunca me pondré bueno si sigo buscando la respuesta en Google"

Desarrolladores senior:

(46 pestañas abiertas para Google y StackOverflow por un problema)

- ¿David K.? (@DavidKPiano) 29 de abril de 2020

Es importante darse cuenta de cómo esto afecta su trabajo y el resto del equipo. Por ejemplo, no ayuda a nadie si actúas como si lo supieras todo y te comprometes con una gran cantidad de trabajo. Cuando te comprometes con ese trabajo y en realidad no lo entiendes, podrías desviar tu carrera, lo que puede frustrar a todo el equipo (y al cliente).

Ya sea cuando esté planificando o durante el desarrollo, no tema pedir ayuda. ¡Sube a tomar aire y levanta las manos! El hecho de que sea el único desarrollador sénior no significa que no pueda aprender algo de un miembro del equipo junior.

Trate de observar bien dónde ha estado, qué comprende y dónde podría beneficiarse para profundizar más.

Liderazgo

Como miembro senior de un equipo, esperaría que un desarrollador tuviera una tendencia natural a liderar. Si bien esto no significa que tenga que ser un líder tecnológico real en un proyecto o tomar alguna de las decisiones finales, sí significa que debe tener un nivel básico de poder ayudar a impulsar el proyecto.

Comprender el panorama general

Si ha trabajado en proyectos con miembros del equipo, debe saber que cada proyecto o característica generalmente viene con un montón de historias para trabajar para lograrlo. Cada historia debe ser una pieza enfocada que ayude a lograr un objetivo más amplio.

Donde esto se vuelve un desafío es si nadie en el equipo comprende cómo cada una de estas historias ayuda a lograr ese objetivo más grande. Como desarrollador sénior, debería poder ver cómo encaja cada pieza en el rompecabezas y por qué la historia está escrita con los criterios de aceptación específicos. Y si no lo sabe, sabrá cómo obtener las respuestas y asegurarse de que se comuniquen al equipo.

Si no está seguro de la dirección, intente dar un paso atrás. Trate de ver dónde encaja. Ayude a llevar al equipo del proyecto a ese objetivo final.

Ayudando a dirigir a los miembros del equipo menos experimentados

Esto es algo natural en la capacidad de ayudar a guiar a los miembros de nuestro equipo que son más jóvenes o menos experimentados. Es común que los desarrolladores pierdan el enfoque en el panorama general. Pero, como acabamos de comentar, un desarrollador sénior debería poder tener continuamente una buena idea del proyecto en general y de dónde encajan las diferentes historias en la epopeya más grande.

Ayude a guiar a otros miembros de su equipo para que sigan el camino correcto. Si bien sería beneficioso para todos comprender cómo todo encaja en el panorama general, a veces tiene más sentido ayudar a una persona a enfocarse en cómo encaja su tarea específica.

Trate de reconocer esta lucha cuando trabaje con otros, ya sea animándolos a hacer más preguntas o ayudándolos a guiarlos si no están en el camino correcto mientras revisa su código.

Tutoría

A menudo es más conveniente estar atento a su trabajo y no tener que preocuparse por lo que los demás están haciendo, pero ¿eso realmente beneficia a alguien?

Ayudar a formar a otros miembros del equipo

Puede que seas el llamado desarrollador 10x, pero hacer todo tú mismo y no ayudar a los demás solo puede ralentizar al equipo en general. A menudo, te quedarás atrapado recogiendo las piezas que podrías haber atrapado fácilmente si pasas un segundo extra emparejándote con alguien más en tu equipo.

También es malo para la moral. Nadie quiere sentirse solo en un proyecto y más aún como junior. El software es un gran mundo aterrador, un poco de orientación puede ser de gran ayuda para ayudar a otros a ser más productivos y, posteriormente, fomentar un entorno más feliz y menos estresante.

Es fácil olvidar que todos fuimos miembros del equipo junior al mismo tiempo. Si bien puede dar las cosas por sentado, los conceptos pueden ser realmente difíciles de comprender para otros.

Tenga en cuenta que estamos todos juntos en esto. Celebre las victorias, ya sean grandes o pequeñas. Si alguien está luchando, busque ayuda.

El intercambio de conocimientos

Compartir conocimientos es algo con lo que luchan muchos equipos. Si bien todos tenemos la esperanza de que haya una manera de lograrlo, la mayoría de las veces simplemente no se resuelve. Entonces, ¿qué podemos hacer?

Tómese la responsabilidad de compartir lo que sabe. ¿Acabas de reelaborar la lógica empresarial central? Ofrezca 30 minutos para guiar a todos a través del código. Emparéjese y comparta la pantalla con su revisor de código si tiene dificultades para entenderlo.

Esto es algo que podemos animar a todos a hacer. Naturalmente, aprenderá más al presentar su trabajo reforzando lo que acaba de trabajar. Esto es útil tanto si eres un Senior como si es la primera vez que abres un editor de código.

Habilidad tecnica

Intencionalmente quería dejar esto hasta el final. Esto se debe a que, si bien es importante, hay más aspectos en tu viaje para convertirte en un desarrollador sénior que simplemente ser realmente bueno en algo.

Habilidad para moverse rápidamente

Como desarrollador senior, esperaría que otro desarrollador senior se volviera productivo en algo más rápido que un desarrollador junior. Si son expertos en Javascript, esperaría que comprendan los principios y patrones básicos del lenguaje.

Pero volviendo a la idea de reconocer lo que no sabes, no es razonable esperar que todos los desarrolladores senior sepan todo. No consideraría a un experto en Ruby menos como un Desarrollador Senior porque no conocen Javascript, pero espero que entiendan cómo aplicar lo que saben cuando construyen y aprenden otro idioma.

Promoción de patrones de software

La mayoría de las veces, el patrón de código que se le ocurrió no es nuevo. ¡Y eso está bien! El objetivo de crear un software excelente no es necesariamente único en cada solución.

Y debido a eso, podemos aprender del trabajo anterior al ver qué ha tenido éxito y qué tal vez no se haya revisado tan bien para encontrar patrones que funcionen para usted y su equipo.

Patrones como MVC (Model View Controller) no se hicieron populares sin razón. Los desarrolladores aprendieron del pasado y han aprendido de sus pares que han resuelto grandes desafíos de software. Con ese conocimiento, pueden aplicar las soluciones a su propio trabajo. No se trata de reinventar la rueda, se trata de resolver desafíos y hacer un buen producto.

Todos tenemos nuestros propios viajes únicos por delante

No importa lo que alguien le diga, todos tenemos nuestros propios viajes de código únicos. Esto está destinado a alentarlo e inspirarlo a convertirse en un mejor desarrollador general y comprender cómo su trabajo afecta al resto del equipo.

Si bien es posible que tenga éxito sin tener en cuenta estas cosas, podría perderse rasgos fundamentales que podrían hacer que las personas no quieran trabajar con usted desde la perspectiva de un ser humano.

Sea cual sea su viaje, tenga en cuenta estas cosas a medida que se convierta en un mejor desarrollador.

¿Qué crees que hace a un buen desarrollador sénior?

¿Crees que soy acertado o no? ¡Comparte conmigo en Twitter!

¡Sígueme para obtener más Javascript, UX y otras cosas interesantes!

  • ? Sigueme en Twitter
  • ? ️ Suscríbete a mi Youtube
  • ✉️ Suscríbete a mi boletín