Come gestire / organizzare quando devi eseguire più task su più progetti 1 man? [chiuso]

6

Siamo un team di sviluppatori che lavorano su più piccoli progetti: uno sviluppatore potrebbe avere 3 o più progetti di 1 uomo su cui lavorare e continuare a muoversi. Può sembrare che il tuo tempo sia piuttosto frammentato e amp; interrotto spostandosi da un progetto all'altro. A volte frustrante, stressante e amp; travolgente. In un mondo ideale non sarebbe così, ma sembra essere molto comune. Quando sei in una configurazione in cui non può essere evitato, come fai a sfruttarla al meglio?

Sto cercando idee / suggerimenti / metodi che ti aiuteranno ad aumentare la produttività & ridurre lo stress specificamente negli ambienti multi-tasking. DOs e DON'Ts ecc. Quali limiti, limiti dovrebbero essere in atto? Quali metodologie di sviluppo saranno & non funzionerà? Cosa sai che funziona?

C'è un buon modo per organizzare questo tipo di ambiente per essere il massimo della produttività?

    
posta GBH 21.08.2012 - 19:08
fonte

3 risposte

6

Esiste una serie di fattori da considerare come le date di scadenza dei progetti, la visibilità della gestione, l'impatto sul business, ecc.

Generalmente, ho lavorato efficacemente con alcune regole che ho usato:

  • Scomposizione per funzionalità / bug li chiameremo attività. Ciò implica che stai utilizzando un meccanismo di tracciamento delle attività, che devi a causa del passaggio da un progetto all'altro. Devi sapere dove ti trovavi e dove stavi andando non appena sei arrivato al progetto per ridurre al minimo l'overhead dell'interruttore di contesto il più possibile.
  • Ovviamente, esegui i tuoi compiti in ordine di priorità per progetto.
  • Lavora a completamento. Anche se un'attività prioritaria 1 per il progetto A richiede normalmente più tempo dell'allocazione per progetto, fallo comunque. Dovrai ri-capire cosa stavi cercando di fare quando tornerai al progetto se parti presto.
  • Se disponi di compiti assegnati dalla direzione, crea una coda di priorità e rendila disponibile. Se è solo una lavagna, dì alla direzione che tutte le attività che ti vengono date vanno in fondo alla pila. Se lo vogliono in cima, devono vedere le attività che stanno anticipando / interrompendo.
  • Assegna una quantità di tempo per progetto. Se è un giorno, una mezza giornata, una settimana, qualsiasi cosa abbia senso per il proprio ambiente e provare ad attenervisi (ad eccezione delle attività di finitura come menzionato sopra). Se riesci ad adattare 2 compiti in una mattinata per il Progetto A, allora fallo. Non dividere troppo i progetti. Come in precedenza, se ti viene assegnato un compito per il Progetto B e ora sei sul Progetto A, puoi dire qualcosa del tipo: "Bene, sono a Progetto B domani mattina, e darò un'occhiata prima a questo cosa al mattino. "
  • Anche se fai lo stesso progetto back-to-back, tienilo in testa che hai 2 sessioni di lavoro (periodi di tempo per lavorare su un progetto) che stai allocando per 1 progetto.
  • Suddividi le sessioni utilizzando separatori efficaci: fine giornata, pranzo, pausa caffè. Qualunque cosa in cui la tua mente smette di funzionare al 100%. Il context-switch sarà naturale e dovresti farlo comunque anche se non hai cambiato progetto.

L'obiettivo è avere un programma chiaramente definito per gestire stravaganti quantità di lavoro / progetti. Se segui il programma come:

        Mon Tues Wed Thurs Fri
Morn    A   B    A   B     A
Aft     A   C    C   C     C

... allora le tue metriche saranno più accurate e prevedibili. Se si utilizzano grafici di burn-down per le date di sviluppo / consegna, saranno più precisi e prevedibili. Potrebbe volerci del tempo per creare un programma che tenga conto della disponibilità di alcuni gestori, QA, altri sviluppatori, risorse software / hardware, qualunque cosa, ma una volta che ne hai uno, sarà come sempre normale e non otterrai così agitato.

    
risposta data 21.08.2012 - 19:28
fonte
1

La mia risposta iniziale è che se hai una squadra, perché lavori come non lo fai?

Certamente, potrebbe esserci un motivo, ma non sono sicuro che sia stato dichiarato.

Fattori limitanti

Il mio suggerimento è che organizziate il lavoro per mettere in campo tanto prodotto quanto prima e con il massimo margine di profitto possibile. Il modo in cui lo fai può dipendere dal modello di business e da una serie di fattori, tra cui alcuni che limitano ciò che puoi fare.

  • Reattività: possiamo fare un progetto fino a quando non viene completato? O abbiamo bisogno di trascorrere del tempo con le parti interessate per ogni progetto in un modo che mostra che rispondiamo ai loro bisogni?
  • Focus: possiamo accelerare alla massima velocità su un compito solo se abbiamo blocchi di tempo per concentrarci sul lavoro.
  • Comunicazione / consultazione: abbiamo bisogno di comunicare presto e spesso, magari di consultarci sulle decisioni, introducendo così dei ritardi nel lavoro? Qual è il minimo che dobbiamo fare per utilizzare i prototipi e il round robin passando da un progetto all'altro per soddisfare le nostre esigenze in questa categoria?
  • Divisione del lavoro: una persona fa diversi tipi di lavoro? Potremmo suddividere i progetti in modo tale che un lavoro ripetitivo dello stesso tipo venga fatto da qualcuno che costruisce competenze molto più velocemente perché ne fanno di più?
  • Capitale / flusso di cassa: veniamo pagati alla fine, quando raggiungiamo le pietre miliari, o per tempo e materiali? Lavorare più progetti in parallelo ci dà pagamenti multipli o semplicemente ritardare i progetti che potrebbero essere completati in serie?
  • Concorrenza: il mercato del nostro prodotto è tale che l'ingresso anticipato ci permetterebbe di vendere di più perché avremmo meno concorrenti?
  • Adozione: se arriviamo presto, il mercato è troppo immaturo per noi per avere forti vendite fino a quando il mercato non inizierà ad adottare il nostro prodotto? C'è un vantaggio nell'attesa che qualcun altro sia il pioniere?
  • Flusso di entrate: veniamo pagati una volta al completamento oppure il completamento del progetto consente la vendita di un prodotto in quantità costante o crescente? Sono previsti costi di manutenzione o di abbonamento che il cliente pagherà a noi una volta che il prodotto è stato messo in vendita?

Alcuni scenari ipotetici

Se addebiti tempo e materiali, ma ti vengono pagati solo alla fine, il tuo fattore limitante è la durata del progetto. Se hai quattro progetti, se assegni a ognuno un posto di lavoro, esegui i lavori in sequenza dal più breve al più lungo. Hai il profitto dal primo lavoro di ridurre le risorse prese in prestito per il secondo lavoro, o di assumere più aiuto per finire il secondo lavoro più velocemente.

Se realizzi un prodotto che una volta completato crea un mercato con vendite costanti o in aumento ogni mese, hai un aumento delle entrate composto con ogni progetto completato. Se segui un approccio rigorosamente round robin, questo accadrà più tardi, piuttosto che prima.

Se si assegna la priorità al lavoro di durata più lunga, ogni altro lavoro attenderà e i piccoli lavori inizieranno ad avere la durata più lunga, il che rappresenta un problema particolare agli occhi di quei clienti.

Se stai vendendo qualcosa per cui essere il primo a commercializzare entrate di pesi a tuo favore, puoi permetterti di sacrificare qualcosa per essere precoce.

Se lavori solo con la massima priorità, potresti avere un cliente felice e i restanti clienti infelici o andare altrove.

Un esempio ingenuo

Molti anni fa, ho lavorato in un'azienda in cui era considerato efficiente e in grado di far sì che ciascuno dei quattro sviluppatori di software lavorasse come lead nel proprio progetto, che in genere richiedeva da nove a dodici mesi ciascuno. Questo è durato un paio d'anni, abbiamo aggiunto un po 'più di persone che organizzano allo stesso modo. Quindi, abbiamo avuto un progetto più grande e abbiamo creato una squadra di quattro persone. Con il team abbiamo intrapreso un progetto molto più ampio, e quando è uscito circa 12 mesi dopo, abbiamo avuto l'anno migliore nella storia dell'azienda.

Poco dopo, un collega ed io abbiamo avuto una conversazione sull'idea che i nostri progetti futuri avrebbero potuto guadagnare di più se avessimo smesso di fare l'unico progetto per persona all'anno. Ecco uno schizzo:

Method 1: Project per developer
Four developers, four projects of 12 months duration, that sell 500K/quarter.

                           Project 1    Project 2   Project 3   Project 4   Total
Q1:     
Labor (man months):        3            3           3           3           12
Net Income:                0            0           0           0           0   

Q2:     
Labor (man months):        3            3           3           3           12
Net Income:                0            0           0           0           0   

Q3:     
Labor (man months):        3            3           3           3           12
Net Income:                0            0           0           0           0   

Q4:     
Labor (man months):        3            3           3           3           12
Net Income:                0            0           0           0           0   

Q5:     
Labor (man months):        0            0           0           0           0
Net Income:                500K         500K        500K        500K        2000K

Y1 Income: $0
Total Income for 15 months: $2000K


Method 2: Four developers working as a team.
Four developers, four projects of 12 months duration, that sell 500K/quarter.

                           Project 1    Project 2   Project 3   Project 4   Total
Q1:     
Labor (man months):        12           0           0           0           12
Net Income:                0            0           0           0           0   

Q2:     
Labor (man months):        0            12          0           0           12
Net Income:                500K         0           0           0           500K   

Q3:     
Labor (man months):        0            0           12          0           12
Net Income:                500K         500K        0           0           1000

Q4:     
Labor (man months):        3            3           3           3           12
Net Income:                500K         500K        500K        0           1500K   

Q5:     
Labor (man months):        0            0           0           0           0
Net Income:                500K         500K        500K        500K        2000K


Y1 Income: $3000
Total Income for 15 months: $5000K

Questo esempio è più semplice di qualsiasi ambiente di lavoro reale. Ma si spera che illustri che se siamo in multitasking, stiamo ritardando e riducendo i nostri guadagni rispetto al focus singolo e al lavoro di gruppo.

    
risposta data 24.08.2012 - 08:15
fonte
0

Ciò che SnOrfus suggerisce funzionerà bene con progetti più piccoli e ben definiti se sei disciplinato. Con progetti più grandi e più esplorativi, il multitasking dei programmatori è in gran parte un mito gestionale. Joel Spolsky afferma che non consente mai alle persone di lavorare su più di una cosa alla volta . Quanto più cambi i progetti, tanto meno realizzi.

Avevo un capo che insisteva sul fatto che io "multitask". La mia strategia era sempre quella di dare la priorità a tutti i progetti e fare la cosa con la priorità più alta, attenendosi a un singolo progetto il più a lungo possibile. Qualche volta rimandavo a riferire i progressi su una cosa in modo da poter barcollare i miei resoconti sui progressi per far sembrare che stavo passando avanti e indietro. Poi mentirei e dire "Sì", ero multitasking. A volte puoi fare tutti i progetti veramente veloci prima di poterti concentrare su uno più lungo (e riportarne uno più breve ogni giorno mentre ti concentri su quello più lungo). Sono sempre stato molto produttivo in questo modo e il mio capo era molto felice (anche se un po 'disinformato). Per la cronaca, ho provato prima a ragionare con lui, e ho mentito solo quando non è riuscito.

Un'eccezione a questa regola sono le interruzioni per gestire le richieste di supporto tecnico. Nulla è più importante per un programmatore di una comprensione intima delle esigenze del cliente. Il vantaggio di questa comprensione vale il costo di interrompere la concentrazione (entro limiti ragionevoli).

Buona fortuna!

    
risposta data 21.08.2012 - 20:07
fonte