Domanda:
C'è un motivo aziendale per cui i programmatori devono fare formazione?
user1069816
2013-10-28 21:47:54 UTC
view on stackexchange narkive permalink

I programmatori della mia azienda si sono lamentati di non ricevere alcuna formazione. Ho suggerito alla direzione della mia azienda che tutti i programmatori si siedessero con un programmatore senior per discutere le loro esigenze di formazione. Se fosse stata identificata una formazione, al programmatore sarebbe stato concesso un paio di ore di lavoro alla settimana per studiare (ad esempio leggendo un libro, facendo un piccolo progetto in una nuova tecnologia, ecc.).

la risposta che ho ricevuto è stata che un programmatore doveva "imparare sul lavoro" e la direzione non voleva vedere i programmatori seduti a leggere quando c'era del lavoro da fare.

Hanno detto che se un programmatore non aveva progetti da fare lavorarci sopra potrebbero fare formazione, ma questo accade molto raramente. L'azienda è felice di acquistare libri e pagare gli esami se i dipendenti desiderano studiare nel loro tempo libero.

Mi piacerebbe pensare che i programmatori istruiti scrivano codice più gestibile, con meno bug che farebbero risparmiare denaro all'azienda a lungo termine. Ad esempio, comprendendo i principi OO non ci ritroveremmo con classi con migliaia di LOC in un paio di metodi che sono difficili da mantenere.

Qualcuno ha trovato ragioni commerciali per i programmatori per fare formazione?

Tutto quello che ho da offrire è un'esperienza di vita reale: nessuna prova concreta farà cambiare idea a un manager sulla formazione. Se sono convinti che tagliare l'albero successivo ora sia una priorità più alta che affilare la tua ascia già consumata ... Diciamo solo che questo è rilevante, sostituisci l'attrezzatura con la formazione: http://workplace.stackexchange.com/questions/15290/ perché-le-aziende-ignorano-gli-investimenti-in-attrezzature-per-la-produttività
Siamo un negozio Microsoft, quindi c'è un libro prodotto dalla Microsoft Press per ogni tecnologia che utilizziamo, che penso sarebbe un buon punto di partenza. Tuttavia penso che sarebbe anche utile per i programmatori saperne di più sulla programmazione in generale, come Design Patterns, Test Driven Design, principi OO e simili.
Leggere libri è imparare, c'è un modo approvato per imparare sul lavoro diverso dalla lettura? Mi sembra contraddittorio.
Questa domanda sembra essere fuori tema perché: mentre il problema è reale, la domanda culmina in una richiesta di una risorsa (cioè prove), che è fuori tema.
Abbastanza correlato [Dilbert: mantenere bassi i costi di formazione] (http://dilbert.com/strips/comic/2012-06-10/)
Non credo che ci sarà un cambiamento a meno che la direzione non lasci andare il loro modo di pensare i programmatori come pure "scimmie del codice". Uno spazio di lavoro ideale consentirebbe probabilmente un giorno alla settimana di lavorare su qualcosa di tua scelta ma comunque qualcosa di significativo per il lavoro. Esempio: forse per imparare a padroneggiare i tuoi indici SQL ci vorrebbe un giorno, ma farebbe sembrare il tuo sito web o la tua applicazione molto più veloce per gli anni a venire. Google e molti altri lo utilizzano.
La mia esperienza con i datori di lavoro è che _sono_ disposti a fornire assistenza finanziaria per farti ottenere certificazioni e corsi. Il mio datore di lavoro attuale e quello precedente hanno entrambi pagato per le certificazioni Zend PHP e Google Analytics, * tuttavia * queste sono state entrambe studiate e sedute ai miei tempi. Il problema nasce quando si studia in azienda quando ci sono progetti in corso. Mi piacerebbe essere in una posizione in cui il mio datore di lavoro apprezza veramente la formazione, ma sono al mio quarto lavoro di sviluppo e non l'ho ancora trovato.
@Renan Non ho alcun problema con "tagliare l'albero successivo ora è una priorità più alta che affilare la tua ascia già consumata", vorrei solo che ci fosse un piano per affilare ogni ascia ogni X numero di alberi, non solo arare attraverso la foresta fino al gli assi si annoiano e vanno alla ricerca di nuovi lavori.
Che cultura è questa?
Cinque risposte:
Kate Gregory
2013-10-28 22:36:32 UTC
view on stackexchange narkive permalink

SE hai intenzione di sostenere la formazione, non chiedere tempo per leggere libri o lavorare su piccoli progetti. Quelle sono in effetti cose che puoi fare sul lavoro. Quando hai bisogno di scrivere del codice per fare X in un grande progetto, puoi leggere di X in un libro (o online) e fare una piccola dimostrazione di concetto (o spike, se preferisci) che fa X per familiarizzare con prima di integrarlo nel grande progetto.

Ciò che devi sostenere è una formazione effettiva. Partecipare a corsi (online, video o di persona), partecipare a conferenze, quel genere di cose. Imparare cose che non sapevi nemmeno esistessero. Essere guidati attraverso un percorso dal "mai sentito parlare" al "so come posso usarlo al lavoro" e poi farlo. La componente più costosa di questo è il tempo - giorni interi o addirittura settimane sottratti alla fatturazione - e questo è anche il più prezioso.

Prometto a tutti i miei dipendenti due settimane all'anno di formazione, ma deve essere pezzi grossi segnalabili e tracciabili. Non mezza giornata qui e due ore là. Se gli sviluppatori vogliono utilizzare la formazione online al proprio ritmo come Pluralsight (disclaimer: per chi scrivo corsi), allora dovrebbe essere abbastanza intenso. Ad esempio, completare un corso di 7 ore in meno di una settimana. Quel livello di concentrazione è la chiave per imparare davvero piuttosto che stare seduti a metà ascoltando.

Perché spendo questo tipo di denaro (due settimane di fatturazione all'anno, più le spese?) Perché il mio personale migliora, molto meglio, come risultato. Diventano anche più felici e meno propensi a passare a un altro datore di lavoro. La parte più difficile per me è stata ricordare di fare lo stesso per me stesso, ma nel 2013 ho frequentato sia ACCU ad aprile che GoingNative a settembre usando lo stesso ragionamento che applico a tutti gli altri e sono così felice di averlo fatto. Ho imparato che le cose che pensavo di poter ignorare erano effettivamente rilevanti e importanti (e come farle). Ho rafforzato le relazioni e ne ho create di nuove. Sono meglio nel mio ruolo per quelle due settimane di distanza e lo farò di nuovo l'anno prossimo.

Penso che sia fantastico. Hai numeri che puoi condividere per dimostrare come migliorano o come il tuo tasso di fidelizzazione è più alto? Non lo chiedo per me stesso, ma perché la prima domanda dei miei manager sarà: quanto meglio, quanto più in alto?
Siamo troppo piccoli (dimensioni massime 11 persone, meno ora) perché i numeri che fornisco siano significativi. Ho avuto anni difficili in cui abbiamo risparmiato sull'allenamento e dopo averlo ripristinato ho deciso di non lesinarlo mai più. Ma non posso mettere i numeri.
wow vorrei unirmi alla tua squadra ogni giorno!
Sono d'accordo, dimentica i libri. La maggior parte degli sviluppatori legge libri per il gusto di farlo (almeno quelli buoni che conosco). La formazione significa che ottieni una vera lezione o conferenza, altrimenti è solo "tempo libero". Considero l'invio di sviluppatori a corsi di formazione / conferenze poiché un'azienda ha fornito un vantaggio che è ancora un altro punto di dati da considerare quando si esaminano i pacchetti di compensazione PRIMA di accettare un lavoro. Le aziende che vogliono mantenere i dipendenti forniranno il vantaggio. Se la conservazione è un problema, questo potrebbe influenzare la gestione poiché probabilmente puoi "vendere" gli sviluppatori che stanno lasciando perché le loro capacità stanno diventando obsolete.
@Dunk Questa purtroppo non è la mia esperienza. In aziende molto impegnate avere tempo per affilare la tua ascia è un vantaggio e qualcosa che spesso deve essere fatto nel tuo tempo libero. Alcuni programmatori sono comprensibilmente riluttanti a farlo a causa di impegni familiari, ecc., Quindi la formazione formale sarebbe davvero l'unico modo.
-1
.... E sì, sembra sempre il momento sbagliato per andare perché siamo sempre così occupati. Ma indovina un po ', la compagnia riesce sempre a sopravvivere comunque. Per me, ho 3 non negoziabili, ferie extra, tempo flessibile e una formazione / conferenza una volta all'anno. Vorrei aggiungere che sono diventato un guru nella mia particolare area di competenza grazie a una conferenza a cui ho partecipato, che mi ha aperto un nuovo mondo.
Robbie Dee
2013-10-28 22:27:38 UTC
view on stackexchange narkive permalink

Il carico di lavoro attuale purtroppo sarà sempre la priorità. L'ideale potrebbe sembrare che l'allenamento avvenga quando non c'è niente da fare, ma questo presenta ovvi problemi. I programmatori che non sono impegnati si allenano mentre quelli che hanno la neve per il lavoro lo perdono.

Considera anche se un programmatore inattivo che si allena da solo è addirittura desiderabile. È preferibile che l'addestramento avvenga tenendo conto di un progetto piuttosto che di una sorta di approccio sparatutto in cui stai provando varie tecnologie senza sapere quali potrebbero essere utili in futuro.

È una vendita difficile: la direzione vuole sapere quali vantaggi tangibili ci sono per i progetti che non sono ancora stati realizzati! Un'idea migliore potrebbe essere quella di esaminare i progetti e i problemi passati e poi dare un'occhiata a come le nuove tecnologie potrebbero aver aiutato.

In realtà, penso che tu abbia sbagliato modo. I programmatori che sanno quello che stanno facendo non rimangono sotto la neve (in effetti la maggior parte dei posti ha difficoltà a mantenerli al lavoro), mentre i programmatori che stanno lottando anche per _seguire_ il lavoro non avranno mai tempo per la formazione.
Ciò sarebbe ovviamente vero se il lavoro fosse assegnato in modo uniforme, ma c'è un vecchio detto: "Se vuoi che qualcosa venga fatto, dallo a una persona impegnata". Questo ovviamente è per l'esatto motivo che hai delineato: non vengono mai innevati (poiché hanno eccellenti capacità di pianificazione ed esecuzione delle attività).
@Amy:I immagino che dipenda dalle dimensioni dell'azienda. Perché nella mia esperienza, ogni progetto vuole i buoni sviluppatori e c'è sempre un tiro alla fune in corso per cui il progetto ottiene le brave persone. Non ce ne sono mai abbastanza per andare in giro. Nel frattempo, le persone meno qualificate tendono a trovare una discreta quantità di tempo di inattività tra gli incarichi perché nessuno vuole prenderli perché sperano di ottenere il buon sviluppatore.
Nelle organizzazioni che non apprezzano la formazione, spesso non conoscono le brave persone da quelle meno qualificate.
@AmyBlankenship Non sono sicuro di seguirti. Potresti approfondire questo punto?
C'è molto da fare per riconoscere sviluppatori esperti: non è solo chi può hackerare qualcosa insieme che funziona in questo momento, ma anche chi può costruire qualcosa che possa resistere alla prova del tempo (flessibilità, manutenibilità). Le organizzazioni che hanno le teste abbastanza insieme per vedere quel genere di cose nel lungo periodo tendono anche a notare cose come l'impatto di qualunque formazione accada e / o essere composte da persone che hanno ricevuto formazione o semplicemente si allenano da sole.
@AmyBlankenship Ah, OK. Penso che ciò indicherebbe piuttosto un problema con i manager che non sono abbastanza astuti piuttosto che una relazione causale tra la mancanza di formazione e buoni sviluppatori non riconosciuti allora.
Penso che ci sia sicuramente una relazione causale tra manager non astuti e manager che non riconoscono il valore della formazione :).
FrustratedWithFormsDesigner
2013-10-28 22:40:48 UTC
view on stackexchange narkive permalink

Esistono diversi tipi di formazione e diversi modi per offrirla.

Se hai bisogno di formazione per uno strumento specifico che il tuo team sta utilizzando o vorresti utilizzare, dovrai dimostrare che:

  1. Questo strumento / la tecnologia renderà l'intero team più efficiente e meno costoso e porterà vantaggi all'intera azienda in modo diretto o indiretto.
  2. Imparare lo strumento / la tecnologia non è banale.
  3. Gli sviluppatori ne trarrebbero vantaggio dalla formazione formale in quanto ridurrebbe gli errori introdotti durante l'apprendimento sul lavoro.

Ciò potrebbe non essere applicabile a tutti i nuovi strumenti o tecnologie, ma se la formazione formale riduce la curva di apprendimento e i possibili errori che potrebbero essere introdotto dall'approccio per tentativi ed errori spesso trovato quando qualcuno impara solo bit e pezzi quando ne ha bisogno, questo potrebbe essere un argomento forte.


Se desideri una formazione più generale, come "best practice per le applicazioni web JavaEE" o "test di unità efficaci", potresti avere più difficoltà con questo. Potresti provare un approccio meno formale, come organizzare seminari "pranza e impara" in cui gli sviluppatori ascoltano un discorso / dimostrazione durante l'ora di pranzo tenuto da uno dei loro coetanei esperto (o almeno più di chiunque altro) in il soggetto.

Questo approccio potrebbe non insegnare tanto, ma la natura informale rende più facile l'organizzazione e se la direzione è disposta a comprare la pizza e lasciare che gli sviluppatori organizzino i propri colloqui di formazione, può comunque essere efficace. Anche la direzione potrebbe apprezzare questo approccio poiché viene eseguito durante il pranzo, quindi non perdono davvero tempo di lavoro, anche se dovrebbero essere gentili e primavera per il pranzo. Inoltre, direi che è importante non rendere obbligatorie queste sessioni, ma cercare di convincere le persone a partecipare volontariamente. Offri incentivi come un quiz con premi (pizza extra o qualcosa del genere - non deve essere troppo affascinante, ma dovrebbe essere divertente).


Infine, c'è la formazione per argomenti legati al business che potrebbero essere utili ai programmatori. Ad esempio, una compagnia di assicurazioni o una banca potrebbe volere che i suoi programmatori seguano alcune sessioni di formazione di base sul lato aziendale di ciò che fa la compagnia. Questo di solito viene fatto per rendere più facile per il programmatore comprendere i requisiti aziendali e interagire con altre persone (analisti aziendali, tester, utenti finali) quando si discutono aspetti non tecnici del sistema. Di solito questo sarebbe fatto se ci si aspetta che i programmatori comprendano più delle basi assolute dell'area tematica in cui stanno programmando.

Telastyn
2013-10-28 22:24:46 UTC
view on stackexchange narkive permalink

Non è una prova ma:

Dovresti chiedere alla direzione se pensano che falegnami / idraulici / elettricisti dovrebbero "imparare sul lavoro" mentre costruiscono la loro casa, o se gli ingegneri aerospaziali dovrebbero provare una nuova tecnica quando costruiscono il loro aereo.

Oppure potresti chiedere come dovrebbero innovare i programmatori quando sono in media X anni indietro rispetto allo stato dell'arte. "Voglio dire X anni fa, non c'erano iPhone / Facebook / Internet!" "Guarda il concorrente Y, pensi che abbiano imparato a realizzare il [nuovo prodotto Z] sul lavoro?"

"Oppure potresti chiedere come dovrebbero innovare i programmatori quando sono in media X anni indietro rispetto allo stato dell'arte." Attento quando lo dici. Un cattivo manager può rispondere licenziandoti e assumendo qualcuno che è indietro di 0 anni rispetto allo stato dell'arte. Conosco due aziende in cui licenziare molte persone e assumerne di nuove ogni tre o quattro anni fa parte dei loro processi aziendali. Così come "per mantenere la conoscenza fresca".
@Renan - Le aziende sono libere di farlo. Il PO sarebbe ben servito a sapere che questo è il loro piano il prima possibile.
Bill K
2013-10-29 02:06:37 UTC
view on stackexchange narkive permalink

Diffido dei programmatori che affermano di aver bisogno di essere "addestrati" per fare qualcosa - dovresti essere in grado di ricercare e risolvere praticamente qualsiasi problema - questo è il tuo lavoro.

Inoltre, sono ancora PIÙ diffidente nei confronti del management che non riconosce il fatto che esporre gli ingegneri a concetti, linguaggi, biblioteche, modelli e comunità li mantiene freschi, curiosi, felici e produttivi.

Se la gestione davvero ha bisogno di un motivo di lavoro, potrebbero guardare alcune grandi aziende di successo (Google, Microsoft, Amazon, ...) e considerare quanto spendono per questo tipo di attività e perché.

La tua risposta non risponde davvero alla domanda. Penso che sarebbe stato meglio come commento.
Se un programmatore ha un certo modo di fare qualcosa, tende ad essere il modo in cui lo fa a meno che non sia attivamente impegnato nell'addestramento.
-1
@Dunk In realtà no, ho dovuto ricercare un bel po 'di cose difficili. Ho fatto della programmazione in assembly (driver), ho lavorato con un bel po 'di linguaggi, programmato Windows in C nella 3.0 (folle all'epoca - follia basata su macro!) - Guarda le mie domande e risposte SO, se vuoi. Non ho mai avuto bisogno di un corso ma alcuni sono stati utili lo ammetto. Ho visto solo pochi ingegneri dire che "avevano bisogno" di una lezione per fare qualcosa di nuovo e ogni volta era qualcosa di ridicolmente semplice. Per cosa avevi bisogno di lezioni? (Sarebbe un thread interessante)
@Bill:Yes puoi imparare da solo. Tuttavia, le persone sagge capiscono che possono imparare nel modo "giusto" E più rapidamente da persone che hanno già esperienza nel fare ciò che stai cercando di imparare.
Preferisco le conferenze alla formazione perché le conferenze mi espongono a più nuovi argomenti di cui non sarei a conoscenza. Incontro anche molte persone dai cui scritti imparo. Mi piace vantarmi di aver pranzato con Grady Booch e James Rumbaugh (ai tempi) ma quei nomi significano poco per i neofiti di oggi. Per quanto riguarda le lezioni, appena fuori dalla mia testa, imparare a usare gli strumenti nel modo in cui il venditore li intendeva utilizzare è raramente uno spreco. Come creare pacchetti di supporto per schede. Gestione di progetto. Abilità di presentazione. Gestione della configurazione (oltre le basi) ...
... Scrittura di proposte. Scrittura dei requisiti. Ovviamente avrei potuto imparare (o pensare di aver appreso queste abilità) da solo con un sacco di colpi duri nella curva di apprendimento e probabilmente ancora non avrei conosciuto i modi "giusti" o efficienti. Invece, l'allenamento ha accorciato la curva di apprendimento e mi ha introdotto presto alle buone abitudini. Credo che questi corsi mi abbiano permesso di fornire prodotti di qualità superiore al mio datore di lavoro. Immagino che non ci sia modo di sapere se questa affermazione è vera o no, a parte testimoniare aneddoticamente ciò che fanno gli altri che non ricevono la formazione.
Pensando a questo forse non sono stato molto chiaro. Capisco che le classi di dominio potrebbero essere estremamente utili o addirittura necessarie, ad esempio se non conosci il calcolo e ti è stato detto di implementare una soluzione che lo richiede. Stavo parlando di classi relative alla programmazione (linguaggi, strumenti, librerie, piattaforme, modelli, ...) e non sto dicendo che non sono utili, ma semplicemente non necessarie (e solo che metterei in dubbio qualsiasi programmatore che abbia detto non potrebbe fare il suo lavoro senza uno)
Inoltre, se hai letto oltre il primo paragrafo del mio post, non siamo affatto d'accordo?


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...