Quanto è produttivo uno sviluppatore eccellente rispetto a uno medio? [duplicare]

11

Credo di aver letto da qualche parte che Google ha una regola empirica secondo cui uno sviluppatore eccellente è circa 300 volte più produttivo di uno medio. Qualcuno ha qualche regola empirica usata dalle grandi aziende o forse ci sono anche alcuni studi empirici su questo?

    
posta David 02.05.2011 - 23:04
fonte

6 risposte

19

Diversi studi hanno trovato risposte diverse a questa domanda, di solito nell'intervallo da 10 a 100 volte.

Quello di cui mi fido di più è il classico libro Peopleware . Hanno riferito di una serie di guerre di codifica che avevano tra programmatori di diverse società, con i programmatori nell'ambiente aziendale. Hanno trovato che il fattore di 10 differenze tra gli sviluppatori era comune. Tuttavia hanno anche scoperto che gran parte della differenza potrebbe essere attribuita all'ambiente aziendale. (Silenziose condizioni di lavoro, maggiore spazio sul pavimento, molte lavagne, ecc.) La loro domanda non ha risposto se i buoni sviluppatori gravitano attorno al migliore ambiente aziendale o se l'ambiente consente agli sviluppatori di produrre di più.

Gli esempi estremi dovrebbero essere più grandi di questo intervallo iniziale. E, naturalmente, c'è l'osservazione spesso fatta che certi compiti possono essere fatti solo da programmatori che hanno imparato certe cose. Per esempio, troverei abbastanza facile rinunciare a un problema di programmazione dinamica che la maggior parte degli sviluppatori professionali che ho visto non sarebbe mai stato in grado di capire. Questa è una tecnica che ho che loro non fanno, e probabilmente non ci penseranno mai da soli. Naturalmente molti altri programmatori hanno quella particolare tecnica, e non è più difficile per loro di quanto non sia per me ...

    
risposta data 02.05.2011 - 23:33
fonte
6

Gli studi che ho visto suggeriscono un fattore dieci tra il migliore e il peggiore (misurato dal tempo impiegato per svolgere compiti di piccola o media difficoltà) e la mia interpretazione dei dati suggerisce che potrebbe essere prudente.

Potrebbe essere che l'estremità inferiore degrada in modo sproporzionato in tempi rapidi, a causa di progetti grandi, complicati e / o innovativi. Questa è solo una speculazione, ma se si applica potrebbe portare a una differenza molto maggiore nei progetti Google.

Potrebbe essere che Google stia misurando quanti programmatori sono necessari per eseguire una determinata attività in un dato momento. Brooks ha suggerito che tre volte il numero di programmatori potrebbe fare il doppio del lavoro in un dato momento. Questo suggerisce che, a parità di 10, avresti bisogno di qualcosa come trenta 1s, e quindi potresti valutare un 10 come trenta volte più produttivo di un 1. (E, sì, questo implica grandi progetti in modo da poter far crescere grandi squadre e in esecuzione. Posso completare un progetto semplice in meno tempo di quanto ci sia necessario per presentare trenta persone tra loro.)

Nessuno di questi è in grado di darci un fattore di 300. Supponiamo che, per un dato tipo di progetto, un programmatore eccellente sia quaranta volte buono e mediocre, il che richiede che l'efficacia della mediocre si riduca di quattro volte tanto. Usando la formula "quanti programmatori" dell'ultimo paragrafo, sembrerebbe che da qualche parte vicino a trecento floundering 1 possa corrispondere a un 10 sfidato.

Questo è un sacco di speculazioni, ma spiegherebbe il numero 300. È anche possibile che sia stato riportato erroneamente o che Google stia semplicemente esagerando la differenza per qualche motivo.

    
risposta data 02.05.2011 - 23:29
fonte
5

Non capisco come si possa mettere una figura del parco giochi a un simile confronto. Ci sono troppi fattori che includono l'ambiente (fisico e di sviluppo) in cui lavorano gli ingegneri, il team con cui lavorano gli ingegneri, il tipo di problemi da risolvere ecc .... e c'è anche la questione di come la produttività è misurato.

    
risposta data 02.05.2011 - 23:52
fonte
3

È difficile da dire e basato su un sacco di termini incerti, quanto è efficiente il programmatore "medio", quanto è veloce un programmatore "eccellente"?

300 sembra un po 'alto però, andrei di più nell'intervallo 50-100 volte.

La cosa principale che penso che la gente sottovaluti con la programmazione è che non è solo l'abilità effettiva. Un eccellente programmatore avrà a disposizione librerie e strumenti. Ovviamente se devo solo immergermi nel mio grimorio per recuperare qualcosa che ho già fatto e devi passare un mese a codificarlo, sarò estremamente più efficiente.

Se ho creato strumenti per la generazione di codice in cui posso semplicemente scrivere un file di configurazione e premere un pulsante per generare un sacco di classi in cui hai un paio di giorni per programmare le classi, ovviamente sarò estremamente più efficiente.

Detto questo, non pensare mai di aver raggiunto il tuo picco come programmatore. Trovo che i programmatori siano come la legge di Moore, raddoppiano l'efficienza ogni due anni:)

Affila i tuoi signori delle seghe

    
risposta data 03.05.2011 - 00:01
fonte
-1

Non è certamente una scala lineare. Credo che un buon sviluppatore (strong OO SOLIDO) sia molto più degno del denaro rispetto agli sviluppatori medi - ma dipende da ciò di cui ha bisogno il cliente. Se il codice è probabile che stia cambiando o riusabile in futuro, allora sicuramente avrai 1 sviluppatore strong (e costoso). Se il codice è a breve termine e verrà eliminato ... prendi alcuni sviluppatori di copia e incolla / spaghetti. [13 anni di esperienza come sviluppatore OO]

    
risposta data 27.02.2013 - 21:28
fonte
-2

Milioni (centinaia di milioni di perpti) di persone giocano a calcio, ma pochissimi possono segnare un gol nella semifinale della Coppa del Mondo. Devi ricordare che gli sviluppatori eccellenti sono pochi e praticano le loro abilità mentali senza sosta, migliorando sempre, migliorandoli sempre. Infatti, nella coppa del mondo del programmatore, hanno segnato gli obiettivi su richiesta, sotto una pressione molto alta, mantenendo la calma.

- Questo Rah-Rah è stato portato a te dalla Chiesa della Programmazione. Contributi al codice Benvenuto!

    
risposta data 02.05.2011 - 23:43
fonte

Leggi altre domande sui tag