मैं पूरी तरह से असहमत हूं जब लोग कहते हैं "हाँ, मल्टी-टास्किंग सामान्य है"
यह सामान्य नहीं है! बिल्कुल नहीं, यह एक डेवलपर के लिए कई परियोजनाओं में बहु-कार्य के लिए बहुत ही अप्राकृतिक है (मैं बाद में और अधिक समझाऊंगा)। दूसरी ओर मल्टी-टास्किंग डेवलपर्स के बीच बहुत आम है। यह निश्चित रूप से ऐसी चीज है जिसकी आपको आदत होनी चाहिए। तो आपके सवाल का असली जवाब है: मल्टी-टास्क कैसे करें?
सबसे पहले, आपको केवल अपने भाग्य को स्वीकार नहीं करना चाहिए क्योंकि "आप इस तरह के एक उत्कृष्ट कर्मचारी हैं" और इसका मतलब है कि आपको और अधिक कार्य करने की आवश्यकता है जिससे आप संभाल सकते हैं। बिल्कुल नहीं, तुम नहीं। कभी-कभी लोगों को कई कार्य दिए जाते हैं क्योंकि कोई और नहीं होता है। कभी-कभी प्रबंधक अपने काम को संभाल नहीं सकते हैं, इसलिए वे अपनी टीम पर मल्टी-टास्किंग को लागू करते हैं, क्योंकि वे अपने प्रोजेक्ट शेड्यूल को ठीक से नहीं संभाल सकते हैं। इसलिए आपको निश्चित रूप से यह निर्धारित करने की कोशिश करनी चाहिए कि क्या आपको बहु-कार्य के लिए कहा जा रहा है क्योंकि यह आपकी नौकरी का हिस्सा है या क्योंकि अन्य लोग अक्षम हैं। किसी भी तरह से, आप खुद के लिए न्याय कर सकते हैं कि क्या स्वीकार्य है या नहीं। यदि आप [अपनी नौकरी के साथ] सहज नहीं हैं, तो अन्य स्थान हैं जहाँ आप काम पा सकते हैं। [आप, डेवलपर, कमोडिटी हैं। नियोक्ता इसे जानते हैं और प्रार्थना करते हैं कि आप इसे कभी महसूस न करें।]
अब मल्टी-टास्किंग के बारे में, मैं 100% असहमत हूं जब लोग कहते हैं "हां, बस आगे और पीछे स्विच करें और सुनिश्चित करें कि आप प्रत्येक प्रोजेक्ट पर एक ही राशि कर रहे हैं"। क्षमा करें, लेकिन यह एक बहुत बुरी सलाह है।
पहले आपको यह महसूस करना चाहिए कि जब आप एक सॉफ्टवेयर विकसित कर रहे हैं तो आपका मस्तिष्क कैसे काम करता है (मुझे पता है कि इसमें अन्य कार्य शामिल हैं लेकिन चलो उस पर ध्यान केंद्रित करें)। आपको पहले "वायर्ड" प्राप्त करने की आवश्यकता है, जिसका अर्थ है कि आपको बहुत अधिक ध्यान केंद्रित करने और अपने दिमाग को एक ऐसी स्थिति में लाने की आवश्यकता है जहां आपने अपने सिर में सब कुछ मैप किया हो। सभी चर और विधि के नाम, आपके कोड के वर्कफ़्लो, ऑब्जेक्ट मॉडल, थ्रेड्स साथ-साथ चल रहे हैं, सब कुछ। आमतौर पर मुझे "ज़ोन में" प्राप्त करने में 15 शायद 20 मिनट लगते हैं।
जब आप उस स्थिति में पहुंच जाते हैं तो आप वास्तव में उड़ जाते हैं और कोड लिखते हैं जैसे आप बाइक चला रहे होते हैं। जिस क्षण आप बाधित हो जाते हैं, आप यह सब खो सकते हैं। यदि रुकावट काफी लंबी है (5, 10 शायद 30 मिनट) तो आप उस मन की स्थिति को खो देंगे और सभी को शुरू करना होगा।
इसलिए मल्टी-टास्किंग बहुत भयानक है क्योंकि यह आपको "ज़ोन" छोड़ने और कुछ और करने के लिए मजबूर करता है। यदि आप लगातार स्विच कर रहे हैं इसका मतलब है कि आप उत्पादक नहीं हैं, क्योंकि हर बार जब आप एक नए कार्य / परियोजना में बदलते हैं, तो आपको क्षेत्र में फिर से आने के लिए उन 15-20 मिनटों को खोने की आवश्यकता होती है (इसका उल्लेख नहीं करना आपके मस्तिष्क को धीरे-धीरे पिघला देता है)।
यह मल्टी-थ्रेडिंग की तरह है: कुछ बिंदु पर थ्रेड संदर्भ स्विच करने की लागत प्रत्येक युगल चक्र बहुत अधिक है इसलिए सीपीयू वास्तविक कार्यों को निष्पादित करने की तुलना में संदर्भों को स्विच करने में अधिक समय खर्च करता है।
मैं इस मामले पर जोएल स्पोलस्की के एक लेख को पढ़ने की अत्यधिक सलाह देता हूं:
http://www.joelonsoftware.com/articles/fog0000000022.html
इसलिए मेरी सलाह है: बहु-कार्य को सीखने (कैसे नहीं) करने की कोशिश करें क्योंकि यह वास्तव में सामान्य है। लेकिन यह भी सुनिश्चित करें कि आप इसे करने में सहज हैं। मल्टी-टास्किंग करते समय कुछ लोग ध्यान केंद्रित करने में अधिक समय लगा सकते हैं और दूसरों की तुलना में अधिक पीड़ित होंगे; और यह ठीक भी है। ऐसा नहीं है क्योंकि यह सामान्य है कि इसे सामान्य माना जाना चाहिए।
योएल ने कहा कि जब उसने कहा:
वास्तव में, इस सब से असली सबक यह है कि आप लोगों को कभी भी एक से अधिक चीजों पर काम नहीं करने देना चाहिए। सुनिश्चित करें कि वे जानते हैं कि यह क्या है। अच्छे प्रबंधक बाधाओं को हटाने के रूप में अपनी जिम्मेदारी देखते हैं ताकि लोग एक चीज पर ध्यान केंद्रित कर सकें और वास्तव में इसे पूरा कर सकें।