Come collaborare al team javascript quando non conosci Javascript?
Ho iniziato un nuovo lavoro 3 mesi fa. Durante il processo di intervista, mi è stato detto che potevo scegliere qualunque lingua volessi usare per fare il progetto. Un paio di settimane fa abbiamo iniziato il progetto e mi è stato detto che dovevo usare Node.js, typescript, programmazione guidata dagli eventi ed express, nessuna delle cose che so.
Non ho mai lavorato a lungo in alcun tipo di javascript prima , ma ho molti anni (> 5) di esperienza con python / java e un po 'di esperienza con i fiaschi. Dato che ho una vasta esperienza di programmazione, ho pensato che avrei potuto imparare mentre procedevo.
Il progetto ha solo un altro sviluppatore e ha utilizzato ampiamente queste tecnologie. Come posso contribuire efficacemente a questo progetto? Non voglio "costringerlo" a fare tutto, ma è proprio quello che sta succedendo - cerco di aiutare in piccoli modi e spesso faccio fatica a produrre qualcosa di utile. Gli ho spiegato la situazione, e ora mi evita e fa tutto da solo. Ho provato a fare "chiacchiere" con lui, brevi chiacchierate per parlare dello stato di avanzamento del progetto, ma sembra quasi che lo stia costringendo a spiegarmi tutto quello che mi ha fatto. Probabilmente, è fastidioso per lui.
Abbiamo un team agile completo di 11 persone che include 2 ingegneri del software (incluso me stesso) e un responsabile tecnico. Il mio capo (con cui ho intervistato e sa quello che so / non so) non fa parte del team agile.
Solo l'altro ingegnere del software sa che non conosco le tecnologie sottostanti (il responsabile tecnico non sa quello che so o non so). Non l'ho omesso intenzionalmente a nessuno - fino ad oggi ho pensato sinceramente che avrei potuto imparare la tecnologia molto rapidamente e non avrebbe avuto importanza (ho imparato altre tecnologie rapidamente prima - c # è stato molto facile per me dato che conoscevo Java).
Da un lato, l'approccio più semplice è : "impara semplicemente javascript, dattiloscritto, express e programmazione guidata dagli eventi". Ottimisticamente, ciò richiederebbe almeno alcuni mesi. Tuttavia, il progetto è previsto tra 3 mesi. Davvero non so quanto sia realistico questo approccio.
Un secondo approccio è : chiedi semplicemente all'altro sviluppatore il modo migliore per aiutarlo, fai quello che dice, stai alla larga e non infastidirlo. Ciò potrebbe includere roba devops, garanzia di qualità, refactors del codice / rimozione di odori di codice, qualsiasi altra cosa io possa fare. Bene, se faccio questo approccio, potrei essere percepito come un contributo minimo al progetto e potrei finire per ricevere una recensione negativa sulle prestazioni o forse addirittura licenziato.
Un terzo approccio è: dire al responsabile tecnico che non conosco le tecnologie sottostanti. La migliore delle ipotesi è che aggiusti le sue aspettative verso il basso e mi dia più margine di manovra per contribuire con quello che posso mentre imparo, oppure potrei essere inserito in un altro team / progetto. Nel peggiore dei casi, vengo espulso dalla squadra o addirittura licenziato.
Al momento sto provando una combinazione dei primi due approcci. È questo il mio percorso migliore? C'è un approccio di cui non sono a conoscenza? Quale approccio dovrei adottare qui?
Sono consapevole che non posso "nascondermi", dal momento che chiunque guardi il repository di codice (come il responsabile tecnico) potrebbe vedere che non sto realmente contribuendo. E sarà ovvio in base a ciò che dico di aver realizzato o di non aver realizzato durante le mischie quotidiane e altri recuperi. D'altra parte, sembra controproducente "annunciare ad alta voce a tutti che non so niente di tutto questo".
Risposte
Hai dimenticato il quarto approccio che è tutto 3. Per prima cosa parli con il tuo responsabile tecnico e gli parli delle tue carenze. Gli fai capire che sai che non sei l'ideale per il progetto e che sei pronto a fare tutto ciò che devi fare per contribuire e rendere il progetto un successo. Secondo, parli con l'altro sviluppatore e vai dritto per l'onestà. Accetta le parti "schifose" del progetto dove puoi e liberale fino a fare il massimo contributo. Ottieni sia le loro opinioni che i loro consigli durante la revisione del codice e sii sempre ricettivo al feedback su di esso. Terzo, fatti avanti e inizia ad imparare. JavaScript è (IMO) un linguaggio piuttosto semplice e con un background di programmazione dovresti essere in grado di svolgere la maggior parte delle attività una volta che hai le basi.
L'onestà e un atteggiamento positivo sono i tuoi amici qui. Ammetti le tue carenze in quest'area e fai tutto il possibile per renderne conto imparando a trasformarle in punti di forza o allontanando i compiti banali dagli altri sviluppatori e rendendoli più produttivi. Un atteggiamento positivo è di grande aiuto per la maggior parte dei team rispetto a competenze altamente avanzate. Fatti vedere, contribuisci dove puoi e sii pronto ad accettare feedback e imparare.