Comment collaborer sur une équipe javascript lorsque vous ne connaissez pas Javascript?
J'ai commencé un nouvel emploi il y a 3 mois. Au cours du processus d'entrevue, on m'a dit que je pouvais choisir la langue que je voulais utiliser pour faire le projet. Il y a quelques semaines, nous avons commencé le projet et on m'a dit que je devais utiliser Node.js, dactylographié, programmation événementielle et express, dont je ne connais rien.
Je n'ai jamais beaucoup travaillé dans aucune saveur de javascript auparavant , mais j'ai de nombreuses années (> 5) d'expérience python / java ainsi qu'une petite expérience de flask. Comme j'ai une grande variété d'expérience en programmation, j'ai supposé que je pouvais simplement apprendre au fur et à mesure.
Le projet n'a qu'un seul autre développeur, et il a largement utilisé ces technologies. Comment puis-je contribuer efficacement à ce projet? Je ne veux pas "lui faire" tout faire, mais c'est en quelque sorte ce qui se passe - j'essaie d'aider de petites manières et j'ai souvent du mal à produire quelque chose d'utile. Je lui ai expliqué la situation, et il m'évite en quelque sorte maintenant et fait tout de lui-même. J'ai essayé de faire du «rattrapage» avec lui, de courtes petites discussions pour parler de l'avancement du projet, mais j'ai l'impression de le forcer à m'expliquer tout ce qu'il m'a fait. Probablement, c'est ennuyeux pour lui.
Nous avons une équipe agile complète de 11 personnes qui comprend 2 ingénieurs logiciels (dont moi-même) et un responsable technique. Mon patron (avec qui j'ai interviewé et sait ce que je sais / ne sais pas) ne fait pas partie de l'équipe agile.
Seul l'autre ingénieur logiciel sait que je ne connais pas les technologies sous-jacentes (le responsable technique ne sait pas ce que je sais ou ne sais pas). Je n'ai intentionnellement omis cela à personne - j'ai vraiment pensé jusqu'à aujourd'hui que je pourrais apprendre la technologie très rapidement et cela n'aurait pas d'importance (j'ai appris d'autres technologies rapidement auparavant - c # était très facile pour moi depuis que je connaissais java).
D'une part, l'approche la plus simple est : "il suffit d'apprendre la programmation javascript, dactylographiée, express et événementielle". D'un point de vue optimiste, cela prendrait au moins quelques mois. Le projet est dû dans 3 mois à partir de maintenant. Je ne sais vraiment pas à quel point cette approche est réaliste.
Une deuxième approche est la suivante : demandez simplement à l'autre développeur comment l'aider au mieux, faites ce qu'il dit, restez en dehors de son chemin et ne l'ennuyez pas. Cela peut inclure des choses devops, l'assurance qualité, les refacteurs de code / la suppression des odeurs de code, tout ce que je peux faire d'autre. Eh bien, si je fais cette approche, alors je peux être perçu comme contribuant de manière minimale au projet, et je peux finir par obtenir une mauvaise évaluation des performances ou peut-être même être renvoyé.
Une troisième approche est la suivante: dites au responsable technique que je ne connais pas les technologies sous-jacentes. Dans le meilleur des cas, il ajuste ses attentes à la baisse et me donne plus de latitude pour contribuer ce que je peux au fur et à mesure que j'apprends, ou je pourrais être placé dans une autre équipe / projet. Dans le pire des cas, je suis viré de l'équipe ou même viré.
Pour le moment, j'essaye une combinaison des deux premières approches. Est-ce mon meilleur itinéraire? Y a-t-il une approche dont je ne suis pas au courant? Quelle approche dois-je adopter ici?
Je suis conscient que je ne peux pas "me cacher", car quiconque regarde le référentiel de code (comme le responsable technique) peut voir que je ne contribue pas vraiment. Et ce sera évident sur la base de ce que je dis que j'ai accompli ou pas lors des mêlées quotidiennes et autres rattrapages. D'un autre côté, il semble contre-productif "d'annoncer à tout le monde que je ne connais rien de tout cela".
Réponses
Vous avez oublié la quatrième approche qui est la 3. Tout d'abord, vous parlez à votre responsable technique et parlez-lui de vos lacunes. Vous leur faites comprendre que vous savez que vous n'êtes pas idéal sur le projet et que vous êtes prêt à faire tout ce que vous devez faire pour contribuer et faire du projet un succès. Deuxièmement, vous parlez à l'autre développeur et allez directement pour l'honnêteté. Acceptez les parties "merdiques" du projet partout où vous le pouvez, et libérez-les pour faire une contribution maximale. Obtenez leurs opinions et conseils lors de la révision du code et soyez toujours réceptif aux commentaires à ce sujet. Troisièmement, craquez et commencez à apprendre. JavaScript est (IMO) un langage assez simple et avec une formation en programmation, vous devriez être en mesure d'accomplir la plupart des tâches une fois que vous avez les bases.
L'honnêteté et une attitude positive sont vos amis ici. Admettez vos lacunes dans ce domaine et faites tout votre possible pour en tenir compte, soit en apprenant à les transformer en forces, soit en éloignant les tâches banales des autres développeurs et en les rendant plus productifs. Une attitude positive est une aide plus importante pour la plupart des équipes que des compétences très avancées. Présentez-vous, contribuez partout où vous le pouvez et soyez prêt à accepter les commentaires et à apprendre.