Ritorni decrescenti per gli sviluppatori aggiuntivi


10

Esiste un termine per descrivere il punto in cui l'aggiunta di più sviluppatori a un progetto software fornirà rendimenti decrescenti?

Mi rendo conto che ad un livello elevato, è più complicato che solo un certo numero di sviluppatori in cui il progetto sarà a capacità produttiva (ex / stato del progetto, qualità dello sviluppatore aggiunto), ma sto cercando di trovare un modo per collegare questo alla gestione non tecnica attraverso la ripetizione. Sto fondamentalmente cercando un termine che invochi una forte immagine mentale come "velocità terminale", ad eccezione della Legge di Brook .


2
Credo che quel punto si chiami "Adesso". Scherzi a parte, dovresti mostrare loro un grafico, tracciando il momento in cui vengono aggiunti uno / cinque / dieci nuovi sviluppatori e l'effetto che ha sulla sequenza temporale del progetto (considerando la perdita di produttività dovuta al mentoring dei membri esistenti, errori dei nuovi membri e rilavorazioni ecc ... )
Oded,

14
"Nove donne danno alla luce un bambino in un mese" è un'analogia comune usata per spiegare il problema delle risorse rispetto alla cronologia alla direzione.
dasblinkenlight,

2
@dasblinkenlight - "Ma cosa succede se le donne lavorano a turni?" (tipica risposta di gestione non tecnica).
jfrankcarr,

6
but senior management tends to view it as aggressively negativeL'agenda dei dirigenti senior nel tuo caso è probabilmente duplice: ridurre i dati di completamento del progetto con ogni mezzo possibile e controllare gli sviluppatori. Qualsiasi visione contraria alle loro nozioni preconcette sarà considerata negativa e dipendente da quanto aggressivamente si tenta di "convincerli", altrimenti ti etichetterà solo come "non un giocatore di squadra". La direzione parla per qualcuno che non può essere controllato.
maple_shaft

1
Sei (loro?) Preoccupato per - Programma, rischio o $, o una combinazione di questi. Scopri di cosa sono maggiormente preoccupati e spiega perché un numero maggiore di sviluppatori non risolverà il problema (e, per essere preso sul serio, propone una soluzione alternativa). Spesso è più sottile dei soldi puri o degli orari.
mattnz,

Risposte:


7

La tua domanda include la risposta: il punto di rendimenti decrescenti. Questo è il punto in cui l'aggiunta di più risorse costa più dell'effetto produttivo di queste risorse. Questo è un concetto economico di base, quindi il tuo management dovrebbe saperlo a memoria ...


3
Quello che hai descritto è ciò che gli economisti definiscono il punto di rendimenti negativi - dove l'aggiunta di risorse ti lascia peggio. Il punto di diminuzione dei rendimenti è dove l'aggiunta di più risorse aumenta ancora la produzione, ma di una quantità inferiore. Quindi l'aggiunta di risorse ti lascia un po 'meglio, ma meno di quanto ti aspetti.
MarkJ,

@MarkJ buon punto. Immagino di non essere necessariamente alla ricerca di rendimenti decrescenti o negativi per regola. Sto solo cercando il punto in cui il capo sviluppatore / project manager direbbe di no a più risorse. Sfortunatamente, questo non è sempre tagliato e asciutto.
smp7d,

6

" L'aggiunta di manodopera a un progetto software in ritardo lo rende in seguito. Un mese-uomo è un concetto di un'unità di lavoro proporzionale al numero di persone che lavorano moltiplicato per il tempo in cui lavorano; la legge di Brook afferma che questa relazione è un mito, e è quindi il fulcro del libro. "- Fonte: Wiki-Mythical_Man_Month .


1
"Il mio compagno di golf, che gestisce anche una società di consulenza IT, afferma di avere due programmatori" cintura nera "che sono disponibili in questo momento. Entrambi hanno un master in informatica. Dovresti essere in grado di farli entrare senza alcun problema , giusto? Forse imparerai qualcosa su come programmare meglio il tuo tempo. "
jfrankcarr,

1
@kevincline - "Vedo che non sei un giocatore di squadra. Ti sto riassegnando per mantenere la nostra app VB6 di 14 anni. Ecco una copia di Who Moved My Cheese? che puoi leggere."
jfrankcarr,

3
"Vedo che non sei un giocatore di squadra.": Ho avuto anche questo commento. La mia risposta è stata un confronto con il calcio: una buona squadra non cerca di stiparsi in 5 metri quadrati, ma cerca di occupare l'intero campo in modo che ogni giocatore possa essere più efficace; e i giocatori spesso danno la palla avanti e indietro secondo necessità. Lavorare in un team significa che i membri del team coordinano le loro attività ma lavorano su aree indipendenti e non sovrapposte del progetto. Se questo è possibile, puoi aggiungere più sviluppatori e aumentare la produttività.
Giorgio,

1
@kevin cline: forse questo è il motivo per cui alla fine diventa inutile aggiungere nuovi sviluppatori a un team. Probabilmente si dovrebbe smettere di aggiungere nuovi sviluppatori se non si riesce a trovare un'area che sia abbastanza indipendente dal resto del progetto.
Giorgio,

2
L'atteggiamento del team, le dimensioni del progetto, quanto è buona la situazione, l'esperienza dei nuovi membri, lo stato attuale dei requisiti, ecc. Sono tutti fattori importanti da considerare qui ...
NoChance

4

Condannato a ripetere

Il povero Fred Brooks è come Cassandra dell'omero Illiad . Se hai letto il libro da cui proveniva il film Troy, era lei a non interessarsi del cavallo (Trojan). Prevede accuratamente il futuro, ma nessuno le crede fino a quando non è avvenuta la previsione e non l'hanno vista da soli.

Non combattere gestione / resistenza passiva o assunzioni attente?

Il mio consiglio è che probabilmente non è un buon giorno per morire e che se il tuo manager vuole che tu assumi più personale, fallo. Suggerire alcuni parametri come ottenere qualcuno con esperienza specifica e l'uso della tecnica di screen-out rapido triplicherà i tempi di ricerca e forse raggiungerai la tua scadenza prima che arrivi il disgregatore.

Ridurre al minimo il tempo speso per candidati improbabili farà risparmiare enormi quantità di tempo. Ad esempio, ogni curriculum senza i tuoi primi tre requisiti nel primo 1/3 del curriculum viene lanciato, i candidati devono passare uno schermo del telefono di 30 minuti prima di qualsiasi intervista in loco, ignorare i reclutatori che non effettuano uno screening preliminare alle tue esigenze. Altre tecniche abbondano, assicurati che tutto ciò che usi sia efficiente ed efficace.

Controllo dell'onere dell'integrazione di New Hire

Se effettui il noleggio prima della scadenza e hai bisogno di trattare con un nuovo dipendente, risparmia tempo dalle persone che non sono sul percorso critico per essere coinvolti nella formazione. È utile che i membri del tuo team ne vedano uno, facciano uno, mostrino uno. Se hai un membro del team con esperienza medio-bassa, rafforzerà la loro comprensione dei tuoi processi, set di strumenti e base di codice per guidare un nuovo assunto in queste aree.

Si spera che tu abbia un po 'di documentazione, quindi assegnare la nuova persona a leggere la documentazione che li aiuterà a crescere è un buon investimento a breve e lungo termine. Dovrebbero essere introdotti gradualmente nei tuoi processi e il loro lavoro dovrebbe essere rivisto da persone che possono impedire loro di guidare il progetto sulle rocce con cambiamenti audaci ma dannosi.

Assegnazioni migliori e peggiori per i nuovi assunti

Se hai un progetto separato o qualche sviluppo tecnologico che possono fare per prepararsi al suo utilizzo in un progetto futuro, anche questo potrebbe essere un grande vantaggio. Imparare il tuo set di strumenti specifici, realizzare le loro build locali, test unitari, test di usabilità, documentazione e partecipazione alle revisioni sono tutti ottimi candidati per i nuovi assunti. Una nuova assunzione può avere una prospettiva nuova e può fornire preziosi commenti critici sulle cose con cui il tuo team ha imparato a convivere e che non può più vedere.

Usi meno vantaggiosi per il nuovo personale potrebbero includere riunioni di gruppo con manager e parti interessate non sviluppatrici, stima, richiesta e gestione dei requisiti (a meno che non siano esperti dopo aver lavorato presso un concorrente), brevetti e intervistare nuovi candidati o aiutare in altro modo con il personale.

Mantenere l'armonia nella squadra, impostare le aspettative future

Nuove priorità di assunzione entrano ancora in gioco. Se hai una squadra che ha attraversato le fasi di formazione, assalto, normazione, evoluzione, devi dare al nuovo assunto le tue aspettative per le sue prestazioni e le responsabilità pianificate all'interno del team. Non devi rendere il lavoro del nuovo assunto meno impegnativo rispetto agli altri ruoli nella squadra. Se la tua squadra sta spingendo in modo aggressivo verso le scadenze, il nuovo assunto dovrebbe avere modi per dimostrare che sta spingendo in modo aggressivo verso l'integrazione.


1

Non conosco un termine standard per indicare i rendimenti decrescenti sulla forza lavoro; poiché l'obiettivo è convincere le persone, prova invece a trasformare una frase:

  • "limiti di decomposibilità" potrebbero essere particolarmente rilevanti per un progetto di medie dimensioni.
  • la "barriera aerea di comunicazione" evoca la classica legge di Brook per grandi progetti.
  • "i requisiti di iterazione del design" come un modo elegante di dire "se vuoi qualcosa che non sia una schifezza, ci vorrà un po 'di tempo per farlo a metà strada".

0

Un termine ragionevolmente vicino sarebbe la "gamma di elasticità ": l'analogia con il colpire la regione di inelasticità dei prezzi, quando ridurre ulteriormente il prezzo non aumenta le vendite, dovrebbe suonare un campanello con il management.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.