Quanto è meglio coinvolgere lo sviluppatore junior nella progettazione di un'applicazione da zero? [chiuso]

9

Siamo un team di 3 sviluppatori (2 sviluppatori esperti e un junior).

Abbiamo appena iniziato un nuovo progetto. Abbiamo progettato l'applicazione, concentrato gli sforzi sulla scelta dell'architettura giusta e ora stiamo ponendo le prime linee di codice. Ne stiamo scrivendo il nucleo, quale sarà il fondamento dell'intera applicazione.

Anche questa non è una facile applicazione. Requisiti di prestazioni rigide, modello di entità complessa, distribuito in modo massiccio ecc.

Siamo tutti fuori dalla nostra zona di comfort, specialmente i junior. Non ha l'esperienza per creare un buon design in anticipo. Questo non è un problema, però, perché io e gli altri sviluppatori siamo lì per aiutare e entrambi crediamo nel mentoring e nella costruzione di team, ma ... non sappiamo esattamente quale sarebbe il modo migliore per farlo, in modo da ottenere un'esperienza piacevole e impara la massima quantità di abilità.

Entrambi ci siamo resi conto che non avevamo un junior su nuovi progetti, solo su quelli esistenti dove era più facile per i junior perché aveva un'intera base di codice da cui imparare e ispirare. Ma per questa app non abbiamo quasi alcun codice. Abbiamo appena iniziato.

Stavamo pensando ad alcuni approcci:

  • fagli provare da solo per un paio di giorni, poi intervieni e rifatti il codice insieme a lui, guidalo nella direzione giusta e ripeti = > Potrebbe non essere un'esperienza divertente per lui dal momento che evidenzieremo i suoi errori su ogni refactore;
  • fagli associare la programmazione a uno di noi = > potrebbe diventare solo un "astante" e essere d'accordo con tutto ciò che facciamo, senza in realtà imparare molto o digerire gran parte delle informazioni;
  • costruiscici lo scheletro di ogni modulo, con un design solido e poi dargli il modulo per aggiungere i pezzi mancanti = > potrebbe non essere divertente da prendere dopo di noi e c'è il rischio che presta attenzione solo a riempire le lacune e non all'intero design.

Come possiamo coinvolgerlo nel design in modo che non si senta lasciato in qualche modo fuori da esso e in modo che impari molto dall'esperienza e acquisisca sufficiente sicurezza per provarlo da solo?

    
posta Meme 06.09.2014 - 21:51
fonte

3 risposte

12

Raccomando le seguenti linee guida:

  • Coinvolgi lo sviluppatore junior nelle riunioni di progettazione e sollecita il suo contributo. Questo gli farà riflettere sul quadro generale, anche se non è pronto a fare da solo il design di alto livello.
  • Prova ad isolare e definire chiaramente un modulo dell'applicazione da assegnare allo sviluppatore junior. Descrivere per iscritto quali sono gli input / output e gli altri requisiti del modulo. Evita di assegnargli un modulo che non può essere facilmente testato o che può essere testato solo se integrato con altri moduli ancora da scrivere.
  • Forse lo sviluppatore junior potrebbe aiutare in modi diversi dalla codifica dell'applicazione principale. Ad esempio, potrebbe scrivere il codice di prova. Lungi dall'essere un lavoro umile, scrivere buoni script di test fornisce un valido contributo al progetto e offre allo sviluppatore junior una solida conoscenza del progetto.
risposta data 06.09.2014 - 22:00
fonte
1

Penso che dipenda da quale area vuoi che lo sviluppatore junior migliori. Quando ero (molto) junior mi davano API che avevo bisogno di costruire una cosa particolare confinata, come:

  • questa funzione fornisce N numero di persone dalla tabella del personale
  • questa funzione fornisce statistiche sul personale in base all'ID del personale

- >

Attività: crea una pagina con un elenco di persone che mostra le sue statistiche quando si fa clic su un record personale. Ecco una semplice pagina di esempio creata precedentemente nel progetto.

L'aspetto più importante dell'attività data è essere risolvibile solo da quelle risorse e non richiede alcuna modifica al loro interno.

    
risposta data 06.09.2014 - 22:13
fonte
0

Tutti e 3 i modi mi sembrano buoni. Effettivamente provare 10 diversi modi agili allo stesso tempo dovrebbe darti presto dei buoni risultati, almeno saprai in che modo funziona e quale no (quale funzionerà meglio dipende molto dalle personalità dei giocatori).

Il problema della programmazione della coppia non si verifica se si mantiene il processo con i cappelli di battitura / pensiero che cambiano ogni 10 minuti (o giù di lì), nessuna eccezione, seguendo il processo originariamente descritto da Kent Beck (non ricordo dove )

Per quanto riguarda il coinvolgimento di altre persone nel design, ciò che abbiamo trovato utile è che, durante la fase di progettazione, vengono creati alcuni documenti di progettazione (con alcuni modelli UML). Le altre persone (i tuoi bambini) possono quindi provare a leggerle, esaminarle, fare l'avvocato del diavolo. Questo ruolo di una terza parte indipendente e indipendente può essere in realtà molto utile, ad es. per i test esplorativi - link

    
risposta data 07.09.2014 - 18:47
fonte