Come gestisci la stima del progetto e gestisci il tempo del tuo team

3

Sto pensando a cose come:

  • designando uno sviluppatore che ha detto 6 ore della normale giornata di 7,5 ore dedicata al progetto, il resto per altre attività lavorative / aziendali (riunioni, e-mail, chiamate, ecc.), forse un dev senior è meno.
  • costruzione di un tempo di contingenza del 20% per le stime.

Quali sono i modi migliori per produrre stime rigorose e allo stesso tempo proteggere gli sviluppatori dalla gestione.

Addendum: mi è stato chiesto di aiutare il mio attuale cliente con questi tipi di problemi. Sono un team di sviluppo davvero povero, con il business che chiama tutti gli scatti, il creep di scope, gli ambienti sovrapposti, il cambiamento di priorità a un capriccio, ecc. Voglio aiutarli a migliorare.

    
posta ozz 29.03.2011 - 15:04
fonte

5 risposte

1

Un mio piccolo problema sono le scadenze arbitrarie.

Scadenza del progetto: il problema

La stima del progetto porta inevitabilmente a una data che diventa una scadenza implicita. Manca quella data, indipendentemente dalla causa, spesso si sente come un fallimento se non è del tutto definito come tale. Quando date una data stabilite le aspettative e quando quelle aspettative non vengono soddisfatte, è naturale che le persone si sentano in qualche modo ingannate o ingannate. Il morale della squadra spesso colpisce.

Scadenza del progetto: gestione smussata del team e costo

Secondo la mia esperienza, le persone vogliono date arbitrarie perché vogliono usare la gestione dei progetti come strumento per smussare gli sviluppatori delle mandrie su cosa lavorare e quanto sia difficile lavorare. Quindi, lo scenario migliore è che il team lavori a una scadenza e lo faccia presto. Lo stesso rendimento in genere si ottiene senza una scadenza.

Lo scenario peggiore è, come sa chiunque abbia mai avuto un progetto in una scadenza. Più ti avvicini a una scadenza, più scorciatoie vengono prese. La maggiore qualità del codice soffre. E generalmente più morale soffre. È idiota cercare di forzare le persone a lavorare su una data arbitraria quando si guarda al costo. Il risultato è che hai prodotto codice cattivo e fatto peggio il morale. Potresti anche avere un certo giro d'affari mentre gli sviluppatori cercano altri posti di lavoro.

Solo per ripetere:

  • Il caso migliore è lo stesso rendimento che si ottiene dal team senza una scadenza.
  • Lo scenario peggiore è un codice errato, un brutto morale e una brutta esperienza tutt'intorno.

Progetti senza scadenze: un modo migliore

Non fornisco date a meno che non ci sia una scadenza difficile. La versione deve essere allineata con una campagna di marketing, un evento particolare, ecc. Tuttavia , la domanda diventa quindi come noi (il team di sviluppo) interagire con gli altri? Come fanno a sapere quando il loro pezzo di lavoro richiesto verrà completato?

Frequent Releases: Vertical Slices and Velocity

In primo luogo teniamo traccia di tutto il lavoro svolto. Nessun lavoro è impegnato in quello non è funzionalità o una correzione di bug. Tutto è fatto come una fetta verticale. Quindi, quando una funzionalità è completata, è rilasciabile. Rilasciamo bisettimanale al momento, ma in passato abbiamo pubblicato settimanalmente. Il risultato è che tutti vedono non solo il progresso e il lavoro completato, ma percepiscono anche il senso del ritmo del lavoro. In effetti abbiamo anche una velocità settimanale (usiamo l'idea di Sprint settimanali continui), insieme a una media di 14 settimane, deviazione standard e mediana.

Elenco priorità pubblico

Secondo, abbiamo un elenco di priorità pubblico e lavoriamo solo con il lavoro con la priorità più alta. Gestisco la lista e faccio chiamate sulla priorità informata da vari fattori. Ricontrollo con il mio manager.

Quindi le persone arrivano a vedere il lavoro in relazione agli altri, e riescono a vedere ogni pezzo non appena è stato rilasciato (nella versione bisettimanale). Finora sembra funzionare, e soprattutto non ci sono date arbitrarie.

    
risposta data 29.03.2011 - 18:19
fonte
2

Le prestazioni precedenti sono il miglior predittore assumendo che tu abbia dati validi. Potrebbe non essere ancora abbastanza accurato, ma più diventa complicato raccogliere dati per ottenere accuratezza, si rischia di non catturarlo affatto.

IMHO - concentrarti su ciò che è importante è il modo migliore per gestire il tuo tempo e colpire le scadenze.

    
risposta data 29.03.2011 - 16:48
fonte
1

Questo è un buon inizio @James, ma consierò che le interruzioni di amministrazione non arrivano tutte in un comodo blocco di 1,5 ore, tendono a essere irrorate durante il giorno e hanno un impatto ben oltre il tempo nominale per il recupero.

Inoltre, le "ore" non sono una misura del rendimento terribilmente significativa. Un'ora passata a fissare il monitor guardando l'orologio in attesa del pranzo per far svegliare Starbucks abbastanza da avere la volontà di affrontare il bug che ti ha tenuto sveglio tutta la notte non è la stessa di un'ora passata a Starbucks a fare il debug come un pazzo mentre Manda quattro amici in cerca di aiuto con un ingannevole blocco I / O e condizioni di gara.

Mentre un margine del 20% potrebbe spiegare semplici errori e sviste, ma non per omissioni e errori importanti (e la piattaforma "trucchi!")

Infine, come suggerito da @Bill, il sito PM sarebbe un posto migliore per questa domanda.

    
risposta data 29.03.2011 - 16:44
fonte
1

A seconda delle dimensioni del / i tuo / i team / i, esistono varie metodologie di gestione del progetto che possono essere utilizzate per stabilire scadenze realistiche e raggiungibili.

Le metodologie Agile più popolari sono SCRUM e Extreme Programming (XP). Entrambi hanno le migliori pratiche e ruotano intorno a principi che sono solo di buon senso.

Il 20% è un numero che ho visto anche in passato, che in pratica è abbastanza realistico. Questo numero può essere diminuito se gli sviluppatori non hanno bisogno di passare frequentemente tra le attività.

Personalmente, l'adozione di SCRUM ha davvero aiutato il mio team a stabilire scadenze e traguardi realistici. Aiuta anche a comunicare i nostri obiettivi al resto dell'azienda. (i "non-techies")

    
risposta data 29.03.2011 - 18:35
fonte
0

L'addendum è una bestia diversa dall'OP. Ora stai parlando di come educare la gestione su come funziona lo sviluppo del software, e cosa è stato riconosciuto come l'impostazione di fallimenti, come scope scope. È molto diverso dall'aiutare un team ad essere bravo nella stima e nella gestione del tempo.

    
risposta data 29.03.2011 - 17:55
fonte

Leggi altre domande sui tag