¿Cómo colaborar en el equipo de JavaScript cuando no conoces Javascript?
Empecé un nuevo trabajo hace 3 meses. Durante el proceso de entrevista, me dijeron que podía elegir el idioma que quisiera usar para hacer el proyecto. Hace un par de semanas comenzamos el proyecto y me dijeron que debía usar Node.js, mecanografiado, programación impulsada por eventos y express, nada de lo cual sé.
Nunca antes había trabajado extensamente en ningún tipo de javascript , pero tengo muchos años (> 5) de experiencia en python / java, así como una pequeña experiencia en matraces. Como tengo una variedad de experiencia en programación, asumí que podría aprender sobre la marcha.
El proyecto solo tiene otro desarrollador, y él ha utilizado estas tecnologías ampliamente. ¿Cómo puedo contribuir eficazmente a este proyecto? No quiero "obligarlo" a hacer todo, pero eso es lo que está sucediendo: trato de ayudar en pequeñas formas y, a menudo, lucho por producir algo útil. Le expliqué la situación, y ahora me evita y hace todo por su cuenta. He tratado de "ponerme al día" con él, charlas breves para hablar sobre el progreso del proyecto, pero parece que lo estoy obligando a explicar todo lo que me ha hecho. Probablemente le resulte molesto.
Tenemos un equipo ágil completo de 11 personas que incluye 2 ingenieros de software (incluyéndome a mí) y un líder tecnológico. Mi jefe (con quien me entrevisté y sabe lo que sé / no sé) no está en el equipo ágil.
Solo el otro ingeniero de software sabe que no conozco las tecnologías subyacentes (el líder tecnológico no sabe lo que sé o no sé). No se lo omití intencionalmente a nadie; realmente pensé hasta hoy que podría aprender la tecnología muy rápido y no importaría (aprendí otras técnicas rápidamente antes, c # fue muy fácil para mí desde que conocía Java).
Por un lado, el enfoque más simple es : "simplemente aprenda javascript, mecanografiado, express y programación dirigida por eventos". Con optimismo, esto llevaría al menos unos meses. Sin embargo, el proyecto vence en 3 meses. Realmente no sé cuán realista es este enfoque.
Un segundo enfoque es : simplemente pregúntele al otro desarrollador cuál es la mejor manera de ayudarlo, haga lo que él dice, manténgase alejado de su camino y no lo moleste. Esto puede incluir cosas de DevOps, control de calidad, refactores de código / eliminación de olores de código, cualquier otra cosa que pueda hacer. Bueno, si sigo este enfoque, es posible que se perciba que contribuyo mínimamente al proyecto y que acabe obteniendo una mala evaluación de mi desempeño o incluso que me despidan.
Un tercer enfoque es: decirle al líder tecnológico que no conozco las tecnologías subyacentes. El mejor de los casos es que ajusta sus expectativas a la baja y me da más margen de maniobra para contribuir con lo que pueda a medida que aprendo, o podría ser colocado en otro equipo / proyecto. En el peor de los casos: me echan del equipo o incluso me despiden.
Por el momento, estoy probando una combinación de los dos primeros enfoques. ¿Es esta mi mejor ruta? ¿Hay algún enfoque que no conozca? ¿Qué enfoque debería tomar aquí?
Soy consciente de que no puedo "esconderme", ya que cualquiera que mire el repositorio de código (como el líder técnico) podría ver que en realidad no estoy contribuyendo. Y será obvio en base a lo que digo que logré o no logré durante los scrums diarios y otras puestas al día. Por otro lado, parece contraproducente "anunciar en voz alta a todos que no sé nada de esto".
Respuestas
Olvidaste el cuarto enfoque, que es todo 3. Primero hablas con tu líder de tecnología y les cuentas tus deficiencias. Les haces entender que sabes que no eres ideal en el proyecto y que estás listo para hacer lo que sea necesario para contribuir y hacer que el proyecto sea un éxito. En segundo lugar, habla con el otro desarrollador y busca la honestidad. Acepte las partes "basura" del proyecto siempre que pueda y libérelas para hacer la máxima contribución. Obtenga sus opiniones y consejos durante la revisión del código y siempre sea receptivo a los comentarios al respecto. En tercer lugar, comience a trabajar y comience a aprender. JavaScript es (IMO) un lenguaje bastante simple y con experiencia en programación, debería poder realizar la mayoría de las tareas una vez que tenga los conceptos básicos.
La honestidad y la actitud positiva son tus amigas aquí. Admita sus deficiencias en esta área y haga todo lo posible para dar cuenta de ellas, ya sea aprendiendo a convertirlas en fortalezas o quitando las tareas banales a los otros desarrolladores y haciéndolas más productivas. Una actitud positiva es de mayor ayuda en la mayoría de los equipos que las habilidades muy avanzadas. Preséntese, contribuya siempre que pueda y esté listo para aceptar comentarios y aprender.