Come ottenere il massimo da un team di sviluppo a livello principiante?

1

Ora mi trovo in uno scenario, con l'assistenza di non più di 8 sviluppatori di livello principiante e con il compito di sviluppare un sito web SPA ragionevolmente complesso. Deve essere sviluppato usando React (che gli sviluppatori conoscono in qualche modo - come in, possono mettere insieme il codice che funziona su piccola scala, ma è tutt'altro che perfetto e può includere problemi evidenti che lo rendono inadatto all'inclusione diretta in un soluzione di livello professionale).

Io stesso posso creare un sito web di questo tipo su uno standard ragionevolmente competente senza problemi. Dico questo non per vantarmi, ma piuttosto per delineare ulteriormente lo scenario che mi sono posto davanti. Tuttavia, in qualità di mentore, è fondamentale coinvolgere nel modo più possibile possibile questi sviluppatori nel processo di sviluppo e, quindi, rimuoverlo il più possibile.

Sto cercando una strategia per farlo e mi piacerebbe sentire le tue esperienze nella gestione di team di sviluppo di livello inferiore, e cosa hai fatto per ottenere ciò con il minor numero possibile di intoppi. Non ho provato nessuna strategia particolare per se; tuttavia, poiché questo team di sviluppo che sto frequentando si riunisce su base settimanale (o forse due volte a settimana nel migliore dei casi), ho trovato che è difficile orientarli (a breve termine, almeno) in una migliore sviluppatore di software a tutto tondo, e piuttosto sto cercando solo un modo per ottenere un prodotto ben sviluppato fuori dalla porta alla fine della giornata.

  • Qual è il mio ruolo in questo? Credo di essere il più vicino a essere il project manager? Sono il ragazzo che ha bisogno di fare in modo che tutto questo si muova, mentre allo stesso tempo mi assicuro che i miei colleghi di livello principiante partecipino il più possibile.
  • Qualcuno gestisce il progetto o no? Non mi è stata data alcuna scadenza rigorosa su questo, ma solo che dovrei provare a completarlo il prima possibile, mentre coinvolgo tutti i membri del team ( come menzionato sopra).
  • Qualcuno guida questa squadra o io? Sarei io. Sono responsabile di dire chi fa cosa e quando dovrebbero fare cosa.
  • C'è un architetto, o sono io? Sarei anche io. Non mi preoccupo di prendere decisioni su grandi quadri, e penso che sia quello che preferirei vedere me stesso: guidare le loro decisioni e la produzione complessiva per soddisfare le specifiche, mentre in qualche modo mantenere la qualità professionale quando si lavora con persone con competenze inferiori .
posta think123 24.04.2018 - 17:38
fonte

3 risposte

3

Oltre alla consulenza generale sulla gestione, direi:

  1. Ottieni i tuoi requisiti tecnici in primo luogo. Tempi di risposta, sicurezza ecc.
  2. Definisci lo stack tecnologico che utilizzerai, js framework, back-end, database
  3. Fornisci pagine di esempio
  4. Assicurati che i requisiti dell'attività siano ben definiti, l'interfaccia utente schizza i flussi e i risultati di esempio
  5. Non preoccuparti dello stile di programmazione. se funziona funziona.
  6. Mantenere le attività piccole e brevi. Lascia che le persone falliscano e passare a un'altra attività se necessario.

Se devi restituire qualcosa come non abbastanza buono, devi eseguire il backup su un requisito definito in precedenza. Preferibilmente 1 o 4

    
risposta data 24.04.2018 - 18:19
fonte
3

Il mentoring funziona al meglio quando c'è solo uno o due sviluppatori junior per fare lo snuff. Poiché la tua scadenza non è severa, dovrai gestire le aspettative dei tuoi stakeholder. Ci saranno alcune cose che dovrebbero già essere in atto, ma ancora di più visto che hai una squadra inesperta di buone dimensioni:

  • Imposta un obiettivo per aumentare la tua velocità ogni scatto. Potresti riuscire a malapena a fare una cosa al primo sprint. Ma se riesci a far capire anche a uno dei tuoi principianti cosa intendi per "fatto", puoi aumentare la quantità complessiva di lavoro nel prossimo sprint. Questo obiettivo dura solo finché non sei ragionevolmente soddisfatto della velocità del lavoro.
  • Assegna priorità alla qualità rispetto alla quantità. Ciò che distingue un principiante da un veterano è il livello di assistenza che assumono nel portare a termine il proprio lavoro. Ogni volta che la tua squadra deve ri-lavorare qualcosa, perdono tempo e si sentono frustrati. Per quanto possibile, cerca di mantenere la pressione del tempo più bassa rispetto alla pressione per fare il loro lavoro correttamente. Notate che non ho detto di rimuovere del tutto la pressione del tempo ...
  • Definizione di fatto. non solo la funzione deve funzionare, deve soddisfare gli standard di qualità che definisci. All'inizio sarà frustrante, ma molte persone imparano facendo e se necessario ripristinando
  • Focalizza la tua attenzione su quelli che la ottengono. Stabilisci la priorità del tempo di lavoro con qualcuno in base a chi sta imparando il più velocemente possibile. Quando li porti a un livello ragionevole di competenza, puoi concentrarti sulla prossima persona. Tu sei una persona ed è meglio replicare te stesso piuttosto che dividerti 8 modi.
  • Lascia che il mentee diventi un mentore. Dopo che uno dei tuoi ultimi studenti è diventato abbastanza competente per terminare un paio di compiti, fallo lavorare con qualcuno con cui non lavori ancora. Se puoi dedicare un'ora o due alla settimana per istruirli su come spiegare le cose, puoi accelerare la rapidità con cui puoi far sì che tutti si allenino.
  • Resta POSITIVO! Gli atteggiamenti positivi sono contagiosi e aiutano a motivare il team. Gli atteggiamenti negativi sono come il cancro e mangiano il morale, la produttività e la qualità. Ancora più importante, quando si rivede il lavoro di qualcuno o si aiuta qualcuno con un problema, utilizzarlo come un'opportunità per insegnare. I buoni insegnanti non rimproverano i loro studenti, insegnano come fare le cose meglio.
  • Ascolta. Non scaricare semplicemente un carico di informazioni e aspettarti che qualcuno conservi tutto ciò. Avendo guidato un certo numero di principianti, scopro che imparo tanto dai miei allievi che da me. Parte di ciò deriva dal modo in cui quella persona elabora le informazioni. La metà del lavoro è capire cosa manca al tuo studente. L'altra metà sta cercando di spiegarlo in un modo che capiranno. È piuttosto gratificante vedere lo sguardo negli occhi del tuo mentee quando finalmente comprendono ciò che stai cercando di insegnare.

Non sarà facile, ma può essere fatto. Con un po 'di fortuna, sarai in grado di trasformare 8 principianti in 8 sviluppatori competenti. E quegli sviluppatori competenti saranno in grado di aumentare la velocità del lavoro fatto al punto in cui non ci vorrà un anno per farlo. Hai detto nella tua domanda che quei principianti possono far funzionare le cose. Ora hai solo bisogno di insegnare loro cos'altro hanno bisogno di guardare e perché ti consiglia di fare le cose come fai tu.

    
risposta data 24.04.2018 - 19:05
fonte
1

Sembra che tu sia in grado di fornire un solido esempio a questi progetti. La maggior parte degli sviluppatori apprende dal codice di esempio, quindi perché non fornirlo? Potrebbe essere necessario delineare come strutturare questi tipi di progetti di sviluppo. Essere disponibile per domande e partecipare alla revisione del progetto. Non essere quel ragazzo che dice: "Non lo hanno fatto nel modo in cui gliel'ho detto".

Stai facendo da mentore, quindi assicurati di capire il tuo ruolo dalle persone che si occupano di questi nuovi sviluppatori. Il modo in cui ti avvicini a questo problema sarà limitato da ciò di cui hanno bisogno da parte di questi sviluppatori, specialmente se hanno bisogno di fargli fare qualcosa di produttivo al più presto a spese di un solido progetto.

Per quanto tu possa volere del tempo e lasciare che imparino a farlo il più possibile da soli, potresti non avere quel lusso. Se riesci a far partire il loro primo progetto su un terreno solido, sarà meglio della maggior parte dei nuovi sviluppatori.

    
risposta data 24.04.2018 - 19:49
fonte