Come includere gli sviluppatori di rookie nel tuo progetto?

9

Stiamo prendendo in considerazione l'idea di insegnare ad alcuni dipendenti che hanno zero o esperienza di programmazione di livello hobbista generale a togliermi il carico di lavoro.

Usiamo Python / Django che ha alcuni dei documenti più gentili in circolazione e una brezza da imparare.

Attualmente sono un reparto IT one man per la mia azienda e non ho abbastanza ore per sviluppare tutto ciò di cui l'azienda ha bisogno. Non siamo una società di software, ma aiuta ad avere IT in house per automatizzare attività, sviluppare funzionalità di servizio clienti, analizzare dati, ecc.

Come si integrano lentamente i rookie che lavorano sulla base di codice? Dì che hai uno stagista - cosa fanno? Sono completamente riluttante a lasciare che progettino o sviluppino il codice di base, visto che dovremo affrontare i loro errori / strani schemi di progettazione per anni. Come sviluppatore principale, sarò quello che deve aggirare il loro codice.

Il mio pensiero era di far sì che i rookies modificassero solo il codice esistente, senza mai creare funzionalità di base. Posso scaricare il lavoro su di loro con semplici compiti dopo costruisco la funzionalità stessa.

Vorremmo che i nostri dipendenti imparassero / trovassero valore nell'azienda, e in generale abbiamo le persone che "salgono di livello".

È prassi normale insegnare alle persone con una programmazione a livello generale / hobbista? In che modo il "salire di grado" in un'azienda di software lavora per programmatori di livello junior? Quando iniziano a lavorare sul codice di base?

Sto cercando di decidere se causerà più danni che aiuto, o se c'è un modo in cui possiamo usare il loro aiuto senza rischiare potenzialmente il codice del sito principale (ambienti isolati?).

    
posta Yuji Tomita 25.10.2011 - 19:02
fonte

5 risposte

4

Lavoravo in un negozio di software, dove stavamo codificando un grande progetto (tempo di accelerazione significativo).

I Rookies sono stati trattati come veterinari. Sono stati assegnati a un capo tecnico e hanno iniziato a lavorare "da soli". Lo stile dell'architettura era dettato, ma erano liberi di inventare il loro design pulito. Gli "strani schemi di progettazione" sono stati eliminati durante le revisioni (giornaliere) dei peer code.

Un errore che ho visto in un altro negozio: assumere "core" è difficile e "ui" è facile. Rookies ha avuto un tempo più semplice nel core e ha incasinato il codice di front-end dell'interfaccia utente.

Buona fortuna!

    
risposta data 25.10.2011 - 19:16
fonte
4

Se deleghi il debuttante a un ruolo inefficace, non imparerà mai nulla di sostanziale e sicuramente non ti sarà molto utile.

Permettetemi di darvi un consiglio, il mio primo lavoro IT fuori dalla scuola era in una piccola azienda manifatturiera dove stavo lavorando a software per assistere gli ingegneri delle vendite nella stesura di preventivi per vari progetti. Dovevo anche aiutare il tizio IT che da solo gestiva l'IT per l'intera azienda.

Quel ragazzo era un pasticcio stressato e distrutto, e il peggior perfezionista della micro-gestione con cui abbia mai lavorato. Dovevo alleggerire il suo carico di lavoro, ma passava quasi tutto il tempo a controllare con preoccupazione me e il mio lavoro mentre stavo spendendo lavoro (non ha quasi mai lasciato l'ufficio, penso che abbia disprezzato la sua famiglia). Se avessi commesso un solo errore, avrebbe perso completamente la testa e avrebbe iniziato a fare i capricci, "Sapevo che non avrei dovuto fidarti di te con questo, era troppo importante!" e altri rant.

Il punto che sto cercando di fare è NON essere così. Non solo renderà i debuttanti infelici e distruggerà il loro morale, brucerai la candela alle due estremità preoccupandoti del loro lavoro.

Offri loro la possibilità di mettersi alla prova, ma hanno specifiche tecniche formali, recensioni di design e revisioni del codice. Inoltre puoi testare ciò che producono per assicurarti che soddisfi i requisiti.

Penso che sarai sorpreso di quanto possano essere capaci alcuni di loro.

    
risposta data 25.10.2011 - 19:20
fonte
2

Si desidera iniziare dando loro funzionalità di piccoli pezzi discreti da implementare. Definisci l'input che prometti e l'output che ti aspetti e fagli connettere i punti. Quindi, utilizza la revisione del codice del team lead per garantire la qualità e la peer review per addestrarli a imparare gli uni dagli altri e ad insegnare loro stessi.

Ciò presuppone che si disponga di un'architettura complessiva dell'applicazione che consente di costruire unità di logica atomiche in modo disaccoppiato. In caso contrario, sei diretto verso un mondo di dolore in cui molti sviluppatori ci lavorano, questo sarebbe il caso anche con i vecchi professionisti.

Inevitabilmente avrai alcune persone che ti prenderanno cura, impareranno velocemente e si alzeranno. Assicurati di continuare a dare loro compiti che sono solo un piccolo passo oltre la loro attuale capacità. Nulla educa a qualcuno come un compito che inizia impossibile. Inevitabilmente avrai alcune persone che provano e non riescono mai ad afferrarle. Queste persone dovrebbero essere ringraziate per i loro sforzi e passate con grazia a qualcos'altro.

    
risposta data 25.10.2011 - 19:29
fonte
1

In che modo la tua azienda può permettersi di prendere tempo lontano dagli altri dipendenti, ma non assumere qualcuno con esperienza di programmazione? L'ammontare del tuo allenamento del tempo, la risoluzione dei problemi e il mantenimento della mano lungo sono costosi.

L'unica cosa che ho fatto in quest'area è insegnare alle persone come utilizzare un writer di report o forse qualche codice VBA / Macro per Excel. Di solito fornisco i set di dati per riutilizzarli. Avere a che fare con SQL è un po 'troppo lungo, ma l'ho visto fare (pagato per ottenere l'addestramento esterno). La maggior parte di queste persone erano analisti finanziari che hanno la capacità di imparare a programmare, ma forse non ci hanno messo del tempo. Provare questo con alcune persone nelle operazioni è un tiro lungo.

Assicurati di avere la persona giusta e vogliono davvero imparare a programmare. Non avrai tempo per insegnare loro tutto. Dovranno fare molto da soli.

    
risposta data 25.10.2011 - 19:22
fonte
0

@louisgab aveva ragione sulla revisione del codice. Questo sarebbe anche il mio primo passo. Una cosa fondamentale che ti aiuterà è quella di assicurarti che debbano aggiustare i propri errori se li trovi nella revisione del codice o dopo. Hanno vinto, si rendono conto che stanno facendo degli errori a meno che non debbano risolverli. Assicurati anche di spiegare perché la soluzione che hanno usato è un errore e perché quello che stai proponendo è migliore. Nei primi due wweeks sembrerà che tu abbia più lavoro a causa di avere queste altre persone, ma se fai le tue revisioni di codice e spieghi le cose e aspetti che imparino, tra qualche settimana saranno molto più utili che se tu solo fai tutto da solo Ma c'è un impegno iniziale del tuo tempo per aggiornarli che la tua gestione deve essere a conoscenza.

    
risposta data 25.10.2011 - 19:42
fonte

Leggi altre domande sui tag