Non sono affatto d'accordo quando la gente dice "sì, il multitasking è normale"
È 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 impiegato eccellente" e questo significa che devi svolgere più compiti di quanti tu possa gestire. Niente affatto, non lo fai. A volte le persone hanno più compiti perché non c'è nessun altro. A volte i manager non sono in grado di gestire il loro lavoro in modo che delegano, rafforzando il multitasking nel loro team perché loro non sono in grado di gestire correttamente la pianificazione del progetto. Quindi dovresti assolutamente provare a determinare se ti viene chiesto di eseguire più task 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 dove puoi trovare lavoro. [Tu, lo sviluppatore, sei la merce. I datori di lavoro lo sanno e pregano che non te ne accorga mai.]
Ora, riguardo al multi-tasking, non sono d'accordo al 100% quando la gente dice "sì, passa semplicemente avanti e indietro e assicurati di fare la stessa quantità su ogni progetto". Scusa, ma questo è un pessimo consiglio.
Per prima cosa devi capire come funziona il tuo cervello quando sviluppi un software (so che ci sono altri compiti in gioco 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 di variabili e metodi, il flusso di lavoro del codice, il modello a oggetti, i thread affiancati, tutto. Di solito mi bastano 15 o 20 minuti per arrivare "nella zona".
Quando arrivi a quello stato stai davvero volando 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 da capo.
Quindi il multitasking è terribile perché ti costringe a lasciare "la zona" e passare a qualcos'altro. Se si cambia continuamente significa che non si è produttivi perché ogni volta che si passa a una nuova attività / progetto è necessario perdere quei 15-20 minuti per rientrare nella zona (senza menzionare che scioglie lentamente il cervello).
È come il multi-threading: ad 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 rispetto all'esecuzione delle attività reali.
Consiglio vivamente di leggere un articolo di Joel Spolsky su questo argomento:
link
Quindi il mio consiglio è: prova ad imparare come (non) multi-task perché è davvero comune. Ma assicurati anche di essere a tuo agio nel farlo. Alcune persone possono impiegare più tempo per concentrarsi e soffriranno più di altre in caso di multi-tasking; e va bene anche questo. Non è perché è comune che dovrebbe essere considerato normale.
Joel ha detto bene quando ha detto:
In fact, the real lesson from all this is that you should never let people work on more than one thing at once. Make sure they know what it is. Good managers see their responsibility as removing obstacles so that people can focus on one thing and really get it done.