È normale che il programmatore lavori contemporaneamente su più progetti [chiuso]


40

In un lavoro attuale ho due progetti su cui lavorare. Il primo è un sistema enorme e il secondo è più piccolo ma anche grande (il primo progetto è stato sviluppato per 12 anni, il secondo per 4 anni).

All'inizio stavo lavorando solo al primo progetto e stavo cercando di abituarmi. Quindi sono stato trasferito al secondo progetto e ci ho provato, quindi le mie conoscenze sul primo progetto sono diventate losche. Ora devo lavorare su entrambi i progetti contemporaneamente.

È molto difficile per me perché nonostante entrambi utilizzino Java, usano framework diversi e la quantità di codice e logica aziendale da comprendere è molto grande, quindi non riesco davvero a tenere entrambi i progetti in testa.

È normale e dovrei abituarmi, anche se la mia esperienza è diventata molto squashy, cosa non succederebbe se lavorassi solo su un singolo progetto? O dovrei sollevare un problema o forse cambiare datore di lavoro?


per me lavorare su più progetti è più adatto al termine "carrozzeria", il che è un male, no?

La parte peggiore è che non sopporto la sfiducia che sorge quando non hai molta esperienza nel tuo progetto. E una situazione in cui ho diversi progetti su cui lavorare, mi impedisce di acquisire una forte comprensione e questo mi fa arrabbiare, perché sono stato tirato fuori dalla mia vita confortevole / zona di lavoro.

non voglio chiudere questa domanda. Solo perché secondo me, se lavori come programmatore, dovresti fornire la garanzia che il tuo codice non cambierà le tue modifiche al sistema. Ma se non hai esperienza nel sistema, quale garanzia puoi fornire? Metti un controllo null su ogni "uguale" o altri metodi di chiamata? - Accidenti sì!

Hai il permesso di utilizzare le tecnologie di collaborazione e gestione della conoscenza al lavoro? (Esempi: Wiki, strumenti di revisione del codice, accesso a documenti di progettazione, strumenti di gestione dei progetti, elenchi di cose da fare personali, tracciamento dei bug, messaggistica istantanea, ecc.) Senza tali tecnologie, non è possibile lavorare su più progetti.
rwong,

È questa domanda "fare più del 50% delle aziende consente il multitasking" o "Il multitasking è buono o cattivo"?
Martin Wickman,

Risposte:


54

Non sono completamente d'accordo quando la gente dice "sì, il multitasking è normale"

E ' non è normale! Niente affatto, è molto innaturale per uno sviluppatore multi-task in diversi progetti (spiegherò più avanti). D'altra parte, il multi-tasking è molto comune tra gli sviluppatori. Questo è sicuramente qualcosa a cui dovresti abituarti. Quindi la vera risposta alla tua domanda è: come multi-task?

Prima di tutto, non dovresti semplicemente accettare il tuo destino perché "sei un dipendente così eccellente" e questo significa che devi svolgere più compiti di quanti ne possa gestire. Niente affatto. A volte alle persone vengono assegnati più compiti perché non c'è nessun altro. A volte i manager non possono gestire il proprio lavoro, quindi delegano, applicando il multitasking al proprio team perché non riescono a gestire correttamente la pianificazione del progetto. Quindi dovresti assolutamente provare a determinare se ti viene chiesto di svolgere più attività perché fa parte del tuo lavoro o perché altre persone sono incompetenti. Ad ogni modo, puoi giudicare da solo se è accettabile o meno. Se non ti senti a tuo agio [con il tuo lavoro], ci sono altri posti in cui puoi trovare lavoro. [Tu, lo sviluppatore, sei la merce. I datori di lavoro lo sanno e pregano che tu non te ne accorga mai.]

Ora riguardo al multi-tasking, non sono d'accordo al 100% quando le persone dicono "sì, basta andare avanti e indietro e assicurarsi che si stia facendo lo stesso importo su ciascun progetto". Scusa ma è un pessimo consiglio.

Per prima cosa devi capire come funziona il tuo cervello quando stai sviluppando un software (so che ci sono altri compiti coinvolti, ma concentriamoci su quello). Devi prima essere "cablato", il che significa che devi concentrarti molto e mettere la tua mente in una posizione in cui hai tutto mappato nella tua testa. Tutti i nomi delle variabili e dei metodi, il flusso di lavoro del codice, il modello a oggetti, i thread che affiancano, tutto. Di solito mi impiegano 15 forse 20 minuti per arrivare "nella zona".

Quando arrivi a quello stato stai davvero volando via e scrivendo codice come se stessi andando in bicicletta. Nel momento in cui vieni interrotto, puoi perdere tutto. Se l'interruzione è abbastanza lunga (5, 10 forse 30 minuti) perderai questo stato d'animo e dovrai ricominciare tutto da capo.

Quindi il multitasking è terribile perché ti costringe a lasciare "la zona" e passare a qualcos'altro. Se cambi costantemente ciò significa che non sei produttivo perché ogni volta che passi a un nuovo compito / progetto devi perdere quei 15-20 minuti per rientrare nella zona (per non parlare del fatto che il cervello si scioglie lentamente).

È come il multi-threading: a un certo punto il costo di cambiare il contesto del thread ogni paio di cicli è troppo alto, quindi la CPU finisce per passare più tempo a cambiare contesto che a svolgere i compiti reali.

Consiglio vivamente di leggere un articolo di Joel Spolsky su questo argomento:

http://www.joelonsoftware.com/articles/fog0000000022.html

Quindi il mio consiglio è: prova ad imparare come (non) multi-task perché è davvero comune. Ma assicurati anche di sentirti a tuo agio nel farlo. Alcune persone possono impiegare più tempo a concentrarsi e soffriranno più di altre quando il multitasking; e va bene lo stesso. Non è perché è comune che dovrebbe essere considerato normale.

Joel lo mise bene quando disse:

In effetti, la vera lezione di tutto ciò è che non dovresti mai lasciare che le persone lavorino su più di una cosa alla volta. Assicurati che sappiano di cosa si tratta. I bravi manager vedono la loro responsabilità come rimuovere gli ostacoli in modo che le persone possano concentrarsi su una cosa e realizzarla davvero.


5
Avere diversi progetti in corso contemporaneamente non significa che il codice sia simultaneo. Sarebbe multitasking. Aspettarsi di avere un progetto alla volta può essere preferibile, ma sta solo sognando La La Land.
JeffO,

1
+1 Eccellente. Se le aziende lo capissero, starebbero molto meglio. Alcuni lo fanno, ed è qui che vincitori di domani sono!
Martin Wickman,

Grazie @Martin. Mi sento divertente come alcune persone non capiscano che il "multi-tasking" è lo stesso di lavorare su più progetti. Non ho mai detto che la codifica simultanea è la stessa del multitasking dove l'hai presa da @Jeff? Bere caffè e scrivere codice? Ma stai scherzando? Quindi, se stai respirando e sbattendo le palpebre allo stesso tempo, sei anche multitasking ??? Almeno leggi l'intero post geez! Il link agli articoli di Joel ha idee molto simili, per favore leggilo prima di inserire il tuo commento qui.
Alex

2
@Alex - @bjarkef e @Jeff hanno assolutamente ragione; avere due progetti! = multitasking. Il post di Joel e il tuo commento sul fatto che il multitasking sono costosi e dispendiosi sono corretti ma non sono necessariamente rilevanti per lavorare su più progetti.
Nick Knowlson,

5
Ad esempio, supponiamo che tu decida di lavorare sui due progetti a giorni alterni. Da dove viene il costo del cambio di contesto? E come interrompe questo essere nella zona? Potrebbe accadere che gasan venga costantemente interrotto da bug di emergenza con l'altro progetto o persino da bug di emergenza nello stesso progetto. Ecco dove il multitasking diventa un problema, ma non è inerente all'avere due progetti su cui lavorare ed è spesso un problema anche con un solo progetto.
Nick Knowlson,

33

Sì, è prevedibile. E accolto.

Ci sono un paio di modi per vedere questo:

  1. Ci si aspetta che ci sia multi-task ed è quasi impossibile concentrarsi. Ciò si traduce in processi ingegneristici non ottimali, confusione occasionale quando si passa avanti e indietro, sensazione di sfruttamento, frustrazione, stress, ecc. Tutto ciò è ovviamente negativo; tuttavia,

  2. Ti stai fidando di più progetti, il che riflette bene sui risultati che produci e sulla fiducia che il tuo datore di lavoro ha nelle tue capacità. È un'opportunità per mostrare loro che la fiducia è garantita.

Il mio consiglio è quello di sviluppare un giudizio sobrio su quali compiti richiedono la tua attenzione immediata e quali possono attendere. A volte la risposta è che nessuno dei due può aspettare ed è necessario adottare un approccio creativo per fornire risultati (un po 'per il progetto A, quindi un po' per il progetto B, quindi risciacquare e ripetere). Coltiva le abilità per prosperare in questo tipo di situazione.

Normalmente (anche se non sempre), questo sarà premiato con più responsabilità, più progetti da destreggiarsi e più aspettative. Ad un certo punto sarai in grado e ti aspetterai di delegare parte di questo lavoro. È una misura del successo.

Quindi, anche se le tue abilità di giocoleria in crescita sono sfruttate solo dalla tua attuale azienda, queste sono buone abilità da avere e ti serviranno bene nella tua carriera.

Per quello che vale, di solito sto lavorando a un grande progetto, uno più piccolo, manutenzione e supporto di vecchi progetti e gestendo almeno un altro. È frustrante, confuso, noioso e sono molto grato.


7
Invece di essere un servitore obbediente e la speranza per le ricchezze, forse sii assertivo e aggiungi valore sottolineando l'inefficienza?
Joppe,

6
@Tungano - in nessun modo sto suggerendo di essere "un servitore obbediente", ma piuttosto che ricevere più responsabilità simultanee è un effetto collaterale naturale dell'essere bravo in quello che fai. Le persone tendono a fare affidamento su coloro che possono far accadere le cose. Gestire diverse responsabilità non è necessariamente inefficiente, servile o obbediente. Se tu (o @gasan) non riesci a gestire diverse cose in modo efficiente, allora fai sapere al tuo datore di lavoro in modo che non commettano l'errore di pensare che puoi. (FWIW, non ho detto nulla circa le ricchezze.)
bw

Ti impedisce anche di annoiarti del progetto quando è tutto ciò che fai. Al momento ho circa 100 compiti diversi in attesa di essere svolti, suddivisi su 17 progetti. Certo, questo a volte provoca una certa pressione, ma divento infelice quando non c'è niente da fare oltre a mettere tutte le mie energie in un unico grande progetto.
Htbaa,

7
Non sono assolutamente d'accordo con questa risposta. Il multitasking non è una misura del successo, è una misura dell'incompetenza del tuo manager. Sapere come multi-task non è così facile. PS: ho pubblicato una risposta da solo ma va alla fine della riga.
Alex

6
Questa risposta non ha senso. È "normale" in un certo senso che molte aziende costringono i programmatori ad esso, ma è ancora uno spreco di risorse aziendali. Se si concentrassero su una cosa alla volta , sarebbe finita molto più velocemente.
Martin Wickman,

15

Sì! È completamente "normale" / normale quando lavori in una società di servizi xD

Anche se collabori con progetti open source, questa è la regola

Forse non è e lo stato ideale, ma è il pane di tutti i giorni.


beh, in realtà ciò che mi rende triste è il livello di competenza che ho nel risultato. Semplicemente non ho quella grande quantità di memoria per ricordare sia la logica tecnica che commerciale del sistema che mi sembra impossibile. Tutte le volte che ottengo un compito, devo cercare ed eseguire il debug molto difficile, perché non conosco bene i sistemi. Ho ragione nel dire che il programmatore "non conoscere molto ma fare tutti i lavori non molto velocemente" è quello che dovrebbe essere un programmatore, non il "conoscere perfettamente l'intero sistema e sistemarlo in un paio d'ore ninja"?

4
@gasan Vorremmo tutti lavorare su "una cosa alla volta". Tuttavia, lavorare su più di un progetto, leggere il codice di altre persone e gestire requisiti diversi è il percorso verso il ninja-hood.
Bogeymin,

12

È comune. Ma non va bene, per i motivi che hai delineato. Passare dal contesto alla produttività, quindi, se puoi, prova a lavorare su un progetto per un grosso periodo di tempo, ad esempio un giorno.


9

Lavoro attivamente su 2-3 progetti diversi ogni giorno. E mantieni qualche decina in più. Alcune settimane diventa un po 'travolgente. Alcuni dei progetti sono enormi, alcuni sono così piccoli che sono stati codificati in pochi giorni e raramente necessitano di modifiche. Varia, ma mi tiene esposto a diversi modi di pensare e risolvere problemi, diverse tecnologie e aree di business. Mi fa piacere.

Quindi, per rispondere alla tua domanda, sì, è molto comune.


quindi, sei una specie di Shiva? Difficilmente riesco a immaginare la quantità del tuo contributo a quei progetti.

@gasan, ridicoli ammontano ad alcuni. Piccole, ma spesso critiche, parti di altri. E alcuni devo solo mantenere perché lo sviluppatore originale è sparito ... e quelli richiedono più tempo.
CaffGeek,

8

Leggi l'articolo chiamato Multitasking ti arriva dopo . Questo grafico racconta la storia:

inserisci qui la descrizione dell'immagine

In altre parole, l'azienda sta perdendo tempo facendo lavorare i propri programmatori su più di un progetto alla volta. Con solo tre progetti, lo spreco è del 40%! Il resto del tempo è suddiviso in tre progetti.

Il motivo del multitasking è spesso indicato come "fare più cose". Ma questo è un ragionamento errato. Il multitasking comporta solo il ritardo di tutte le versioni. Questa immagine mostra l'effetto del doppio tasking rispetto al completamento di un progetto alla volta:

inserisci qui la descrizione dell'immagine

(L'immagine ignora completamente il sovraccarico. In realtà, il tempo sprecato renderebbe entrambi i progetti il ​​20% più tardi.)


4

Dipende dalla compagnia. L'IMO è desiderabile lavorare principalmente su un solo progetto, ma spesso ciò non è possibile, soprattutto con le piccole aziende.

Naturalmente, correzioni di errori, ecc. Possono sempre verificarsi con qualsiasi progetto.


hai ragione, sto lavorando in una piccola azienda ora, ma in precedenza lavoravo solo per quelli grandi, quindi forse è parte di una causa di un problema, voglio dire che non ero abituato a lavorare processi in piccole aziende.

4

Sì, nella mia esperienza è normale (anche se alcuni dei "progetti" sono abbastanza simili, ad esempio un progetto di manutenzione e funzionalità sullo stesso prodotto). Per evitare conflitti e aspettative non realistiche, concordare con i project manager e il proprio manager di allocare determinate frazioni del tempo a ciascun progetto (ad esempio tre giorni sul progetto X, due sul progetto Y a settimana). Normalmente puoi quindi distribuire quelle allocazioni come preferisci, ad es. Lun-mer su X, gio-ven su Y.

Occasionalmente ci saranno momenti in cui un progetto "genera un'eccezione" e deve essere elaborato ora . Ci sono due cose da fare qui:

  1. assicurarsi che sia veramente un'eccezione, non solo un responsabile di progetto invadente: respingere quest'ultimo caso.
  2. scambia le tue allocazioni di tempo in modo da lavorare sempre la stessa frazione su ciascun progetto.

3

Se hai difficoltà a tornare al passo con la struttura di un progetto o la logica aziendale quando torni ad esso, dovresti cogliere l'opportunità di scrivere tutta la documentazione che puoi mentre ci lavori. Descrivere in dettaglio come funziona un sistema complesso, in parole tue, renderà molto più semplice tornare al progetto in un secondo momento. Inoltre, questa documentazione può essere utile per i tuoi colleghi se mai hanno bisogno di assistenza.

Se il progetto ha già una buona copertura della documentazione tecnica, può comunque essere utile annotare i tuoi pensieri mentre lavori su aree complicate. In questo modo puoi riprendere il tuo processo di pensiero la prossima volta che torni indietro.


1
Ottimo consiglio Prendo appunti dettagliati e sono stati molto utili in più di un'occasione.
Adam Lear

2

Beh, non dovrebbe essere normale, ma ho molti progetti sulle spalle per il mio attuale datore di lavoro. Ci vuole un po 'di tempo per abituarsi, lo ammetto. Il consiglio più importante che potrei dare è quello di dare sempre la priorità al tuo lavoro. Forza il tuo capo a dirti qual è il compito prioritario e lavora solo su quello. Non fare pressioni da chi si lamenta degli altri tuoi progetti. Non è ancora necessario aggiornare il tuo curriculum ma assicurati che il carico non aumenti oltre qualcosa che puoi ragionevolmente gestire.


2
In effetti, costringi il tuo capo a dirti ciò che è importante. La comunicazione è molto importante e, se non mantenuta, può causare una grande frustrazione e delusione per entrambe le parti.
Htbaa,

0

Penso che sia normale. Il modo in cui funziona il mio lavoro in questo momento (sono in un'azienda con circa 40 sviluppatori, dimensione totale dell'azienda di circa 700). E di solito ho un progetto "a lungo termine" con molti piccoli biglietti / difetti che emergono, quindi di solito finisce per essere il 50% di biglietti piccoli e il 50% di lavoro sul progetto a lungo termine. Ciò che può essere difficile è che l'interruzione costante può rallentare e far deragliare il progetto a lungo termine.


0

Penso che sia normale lavorare su più progetti. La chiave è accettare che affronterai inizialmente alcune ambiguità in termini di quadro generale del sistema.

Se ti sforzi di ottenere un'immagine più ampia, otterrai chiarezza e sarai in grado di individuare le parti mobili / fisse nel sistema e in che modo le modifiche influiscono sul sistema.

Per un periodo di tempo imparerai a trovare schemi comuni nei vari sistemi su cui lavori. Questi possono essere applicati ad altri progetti che ridurranno la quantità di informazioni granulari che è necessario tenere in testa alla volta.


0

In qualsiasi progetto non banale vi è assegnata più di una persona. Ciò significa che devi collaborare con gli altri e aspettare che facciano il loro lavoro, così come devono aspettarti.

Invece di tenere le persone inattive, è comune avere più progetti attivi in ​​modo che ci sia sempre un compito aperto da svolgere se necessario.

Dovresti comunque lavorare in blocchi considerevoli su ogni progetto in modo da poter ottenere "nella zona" ed essere produttivo, però.


-1

Sono d'accordo con quelli che dicono che è normale / comune.

Guardalo come positivo, diventerai più utile, visto come flessibile, un ragazzo che può fare le cose! Forse più prezioso quando alla fine imparerai a conoscere 2 sistemi.


-1

IMHO, non solo è normale, ma è anche desiderabile.

Il peggior lavoro di sviluppo che abbia mai avuto è stato lavorare sulla stessa piccola sezione della stessa parte della stessa applicazione per mesi e mesi. Tedio. E quando sei annoiato, distogli lo sguardo dalla palla ...


Se il tuo lavoro è noioso, forse dovresti trovarne uno diverso, più interessante, piuttosto che cercare di renderlo più interessante.
Acumenus,

L'ho fatto - ma pensare che ogni aspetto di ogni lavoro sarà eccitante è ingenuo.
cjmUK,

Mi dispiace, ma non posso entrare in empatia. Come programmatore trovo interessanti tutti i miei progetti assegnati, non solo nel mio lavoro attuale, ma anche in quello che avevo prima. Non deve essere eccitante; è diverso. C'è uno spettro interessante tra eccitante e noioso.
Acumenus,

Quindi penso che tu sia molto fortunato ... Tuttavia, ho il sospetto che io sia nella fascia demografica più grande che deve fare il duro con il liscio.
cjmUK,

-1

Capisco come ti senti, è difficile far capire ai nuovi datori di lavoro lo sviluppo elaborato, soprattutto se il tuo datore di lavoro non è focalizzato sullo sviluppo.

Il problema è che vedono lavorare 3 lavori insieme più di un produttore di denaro di 1 alla volta e le statistiche mostrano una riduzione del 40% delle prestazioni. Questo è il 40% di perdita di profitto.

Ho già lavorato per un'orgonizzazione che mi ha permesso di concentrarmi su 1 grande progetto alla volta con piccoli lavori in mezzo, biglietti e supporto ecc. Abbiamo lavorato su un accordo in cui 8: 00-10: 00 era Ticket e supporto per i sistemi attuali che arriva tramite e-mail / telefono / helpdesk, quindi dalle 10:00 alle 16:30 o il tuo orario di arrivo è stato pienamente solido. Questo ha funzionato molto bene, dato che avevamo un helpdesk per rispondere alle chiamate e alle e-mail, sono stato in grado di fare i biglietti al mattino e sviluppare il resto della giornata. Il problema è se hai una cattiva gestione. Un manager fa accadere tutto questo e senza il suo supporto o la comprensione delle sfide che affronti quotidianamente sono ignari del fatto.

Sono stato grato soprattutto nel mio ultimo lavoro di supporto e comprensione da parte del mio manager, mi ha semplificato la vita, meno stress e abbiamo ancora fatto TUTTO il lavoro ..

Un altro problema è, i soldi dell'amore di Boss, vedono progetti in denaro, quando hanno 5 progetti per £ 20.000 tutti allo stesso tempo (e tu sei uno sviluppatore solista) sono £ 100.000 nei libri .. Sembra grande sulla carta ma può danneggiare la reputazione dell'azienda quando questi non vengono rispettati, le scadenze non vengono rispettate e i sistemi non funzionano a causa della mancanza di concentrazione.

Sono completamente d'accordo con te, sono nella tua posizione in questo momento.


come risponde alla domanda posta?
moscerino

-2

Dipende da come descrivi il progetto. Di solito lo sviluppatore lavora con qualche problema e se in azienda c'è più di un prodotto di quanto tu lavori con più.


Forniamo 2 prodotti separati e condividono un piccolo codice. Che i prodotti siano per esigenze di utenti diversi, ma sono ancora nello stesso dominio.

-2

I progetti software, come i partner d'amore, possono essere molti e bravi in ​​molti, ma sono buoni solo se uno alla volta.


-2

Aggiungendo ciò che ha detto @Martin Wickman, cerca di non cambiare task molto. Ad esempio lavorare AM sul progetto A, PM sul progetto B. Anche dire di no all'aggiunta di funzionalità; è più doloroso quando non stai lavorando al progetto a tempo pieno.

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.