Como colaborar na equipe de javascript quando você não conhece Javascript?
Comecei um novo emprego há 3 meses. Durante o processo de entrevista, me disseram que eu poderia escolher qualquer idioma que eu quisesse usar para fazer o projeto. Algumas semanas atrás, começamos o projeto e me disseram que devo usar Node.js, typescript, programação orientada a eventos e express, nenhum dos quais eu sei.
Nunca trabalhei extensivamente em qualquer tipo de javascript antes , mas tenho muitos anos (> 5) de experiência em python / java, bem como um pouco de experiência em flask. Como tenho uma grande variedade de experiência em programação, presumi que poderia aprender no decorrer do tempo.
O projeto tem apenas um outro desenvolvedor, e ele tem usado essas tecnologias extensivamente. Como posso contribuir para este projeto de forma eficaz? Não quero "obrigá-lo" a fazer tudo, mas é isso o que está acontecendo - tento ajudar de pequenas maneiras e muitas vezes me esforço para produzir algo útil. Eu expliquei a ele a situação, e ele meio que me evita agora e meio que faz tudo sozinho. Tentei conversar com ele, conversas curtas para falar sobre o andamento do projeto, mas parece que estou forçando-o a explicar tudo o que ele fez para mim. Provavelmente, é irritante para ele.
Temos uma equipe ágil completa de 11 pessoas, que inclui 2 engenheiros de software (incluindo eu) e um líder técnico. Meu chefe (com quem entrevistei e sabe o que sei / não sei) não está na equipe ágil.
Apenas o outro engenheiro de software sabe que eu não conheço as tecnologias subjacentes (o líder de tecnologia não sabe o que eu sei ou não sei). Eu não omiti isso intencionalmente para ninguém - eu realmente pensava até hoje que poderia aprender a tecnologia muito rapidamente e não faria diferença (eu aprendi outros técnicos rapidamente antes - c # foi muito fácil para mim, pois eu conhecia o java).
Por outro lado, a abordagem mais simples é : "apenas aprenda javascript, typescript, express e programação orientada a eventos". De maneira otimista, isso levaria pelo menos alguns meses. O projeto é devido dentro de 3 meses a partir de agora. Realmente não sei como essa abordagem é realista.
Uma segunda abordagem é : pergunte ao outro desenvolvedor a melhor forma de ajudá-lo, faça o que ele diz, fique fora do caminho dele e não o aborreça. Isso pode incluir coisas de devops, garantia de qualidade, refatores de código / remoção de odores de código, tudo o mais que eu puder fazer. Bem, se eu fizer essa abordagem, posso ser percebido como contribuindo minimamente para o projeto e posso acabar recebendo uma avaliação de desempenho ruim ou até mesmo ser demitido.
Uma terceira abordagem é: diga ao líder de tecnologia que não conheço as tecnologias subjacentes. O melhor cenário é que ele ajusta suas expectativas para baixo e me dá mais liberdade para contribuir com o que posso enquanto aprendo, ou poderia ser colocado em outra equipe / projeto. Pior cenário - sou expulso da equipe ou até mesmo demitido.
No momento, estou tentando uma combinação das duas primeiras abordagens. Esta é a minha melhor rota? Existe uma abordagem da qual não estou ciente? Qual abordagem devo seguir aqui?
Estou ciente de que não posso "me esconder", já que qualquer pessoa que olhar o repositório de código (como o líder de tecnologia) pode ver que não estou realmente contribuindo. E ficará óbvio com base no que digo que realizei ou não realizei durante as reuniões diárias e outras atualizações. Por outro lado, parece contraproducente "anunciar em voz alta a todos que não sei nada disso".
Respostas
Você esqueceu a quarta abordagem, que é toda 3. Primeiro você fala com seu líder de tecnologia e conta a ele sobre suas deficiências. Você os faz entender que sabe que não é o ideal no projeto e que está pronto para fazer o que for preciso para contribuir e tornar o projeto um sucesso. Em segundo lugar, você fala com o outro desenvolvedor e busca a honestidade. Aceite as partes "ruins" do projeto sempre que puder e libere-as para fazer a contribuição máxima. Obtenha suas opiniões e conselhos durante a revisão do código e esteja sempre receptivo a comentários sobre ele. Terceiro, comece a aprender. JavaScript é (IMO) uma linguagem bastante simples e com experiência em programação, você deve ser capaz de realizar a maioria das tarefas, uma vez que tenha o básico.
Honestidade e atitude positiva são seus amigos aqui. Admita suas deficiências nessa área e faça tudo que puder para considerá-las, aprendendo a transformá-las em pontos fortes ou tirando as tarefas banais dos outros desenvolvedores e tornando-os mais produtivos. Uma atitude positiva ajuda mais na maioria das equipes do que habilidades altamente avançadas. Apareça, contribua onde puder e esteja pronto para aceitar feedback e aprender.