Come dovrei introdurre un nuovo programmatore in un progetto complesso? [chiuso]

3

Abbiamo un progetto piuttosto complesso con circa 100 classi, più elementi personalizzati, ecc. Abbiamo un nuovo programmatore senior che lavorerà a questo progetto.

Come dovremmo affrontare il compito di presentare il programmatore senior al progetto? Come possiamo assicurarci che il programmatore non rotti qualche altra caratteristica mentre fissa quella attuale? Ho visto troppe situazioni simili. A volte, i nuovi bug non vengono notati immediatamente - ma appaiono mesi dopo.

Devo dirigere il programmatore dando prima compiti più piccoli e aspettando che li finiscano? O c'è una soluzione migliore?

Lo sto chiedendo perché non voglio diventare micromanager ma non voglio nemmeno creare bug sgradevoli a causa del mio cattivo approccio al nuovo programmatore.

    
posta deviDave 26.01.2014 - 20:38
fonte

3 risposte

14

We have a pretty complex project with 100 or so classes, multiple custom elements, etc. We got a new senior who will work on this project.

Questo in realtà è un piccolo progetto, a meno che le classi non siano state in grado di crescere fino a migliaia di righe di codice. Un progetto di 100 classi dovrebbe essere facilmente gestito da uno o due sviluppatori.

How can we make sure he does not break some other feature while fixing the current one?

Dopo ogni modifica, è necessario eseguire test automatici per garantire in larga misura che nessuna funzionalità sia stata interrotta. Tuttavia, ho l'impressione che tu non abbia questi test. In tal caso i bug sono quasi inevitabili, e si verificano sempre più frequentemente con l'aumentare delle dimensioni del codice. Puoi mitigarlo in qualche modo esaminando attentamente il codice prima che entri in produzione.

I have seen too many similar situation and such bugs are not noticed immediately, but sometimes months later.

Questo è il risultato di test inadeguati. Errori nella programmazione sono inevitabili. Tutto ciò che possiamo fare è ridurre la frequenza. La prima linea di difesa sono i test automatici.

Shall I direct him by first giving him smaller tasks and wait him finish them?

Dovresti farlo lavorare sulle attività con un altro sviluppatore esperto. Forse impareranno entrambi qualcosa.

... I also don't want to have nasty bugs created because of my bad approach to new guy.

I test automatici in gran parte lo impediranno. Ogni volta che viene scoperto un bug, creare un test che non riesce. Quindi correggi il bug in modo che il test passi.

    
risposta data 26.01.2014 - 21:29
fonte
2

Penso che tu possa prendere due approcci, uno potrebbe dare alla nuova persona un lavoro in cui qualcosa sarebbe isolato (ad esempio una nuova pagina / schermo) in questo modo lo sviluppatore può esplorare il progetto corrente e verificare come alcune cose erano già state fatte in passato. Mentre sta facendo questo lavoro, inizierà anche a prendere alcune decisioni relative al design del nuovo pezzo di lavoro su cui sta lavorando. Ciò può portare a domande e discussioni che possono essere utili allo sviluppatore per ottenere una maggiore comprensione del progetto e di come sono state fatte le cose. Puoi anche fare revisioni tra pari sul lavoro o fare un paio di programmazione all'inizio dell'attività.

Un altro approccio può essere quello di dare piccoli compiti relativi al supporto, come la risoluzione di piccoli bug. In questo caso sono d'accordo con kevin cline che automatizzato può essere estremamente utile per assicurarsi che tutto sia ancora ok.

    
risposta data 26.01.2014 - 23:41
fonte
0

Fagli eseguire un test pack di regressione su parti del sistema su cui lavorerà. Lo farei prima di consentire loro di apportare modifiche al codice.

Una volta che si sentono a proprio agio con il modo in cui funziona l'applicazione, procurale un bug fixing. Correzioni di bug di revisione peer per avere una buona idea sul set di abilità.

Romperà la tua domanda, ma è a questo che servono la regressione e i test unitari. Se non li hai, preparati a colpire.

    
risposta data 28.01.2014 - 09:58
fonte

Leggi altre domande sui tag