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.