عندما تجلس على جهازك وتبدأ في التكويد والبرمجة ، شيئاً فشيئاً سوف تنسى العالم الخارجي المحيط بك، لن تعير انتبهاك لرسائل البريد، لن تعير انتبهاك لجوالك الذي يرن فهو في الوضع الصامت فأنت لا تراه ولا تسمعه، لن تسمع من يتحدث خلفك ، لن تفتح الانترنت,, هنيئاً لك، وصلت المنطقة (Zone).
ال Zone تعتبر أكثر من الأوقات انتاجية للمبرمج، تقوم بحل الكثير من المشاكل في لمح البصر، تكتب عشرات أو مئات الأسطر بسلاسه، مثلما قد يحدث أحياناً عندما تعود للمنزل قد لا تتذكر كيف عدت أو اي الطريق سلكت لكنك فعلتها!
كثير من المبرمجين كتبوا أو شرحوا عن هذه المنطقة وفوائدها وسلبياتها، وكيف يمكنك ان تصل لل Zone بطريقتك .. هناك من لديه ممارسات وصوتيات معينة يبدأ بها حتى يصل وهناك من يسمع لصوت المياه او شيء ما,,
أو يمكنك الوصول للZone بطرق اخرى وعليك ان تكتشف ذلك بنفسك، مثلاً قد تصل اليها بعد البدء بعمليات ترتيب الكود ال Refactoring، أو كتابه الأكواد المعروف التي تعرف كيف يمكن كتابتها،، أو قد تحتاج لتشغيل ملف صوتي ووضع السماعات حتى تبعدك عن الجو المحيط بك، وربما قد تضع السماعات لفترة بدون وجود اي ملف صوتي يعمل وهذا طبيعي..
الشيء المزعج وقت ذروة الانتاجية هو في الانقطاع Interruption ، فالخروج منها سهل جداً وفي ثواني قد تفقد تركيزك سواء كانت مكالمة هاتفية أو وقت الغداء أو من سؤال من زملائك في العمل (خاصه السؤال الذي لا فائده منه) هكذا قد تحتاج ل 10 الى 15 دقيقة اخرى حتى تعود وتركز بشكل كامل وتبدأ في الانتاجية.
الانقطاع اثناء التركيز أمر مزعج في جميع التخصصات وبالذات للمبرمجين، لأن الانتاجية تتطلب تركيز عالي وحفظ هذه المعلومات في ذاكرة صغيرة لديك، وأي نوع من الازعاج Interruption قد يؤدي لمسح كل هذه المعلومات منك، وعندما تعود للعمل مرة أخرى قد تجد أنك لا تتذكر هذه التفاصيل (مثلاً اين وصلت في كود الخوارزمية، أين استخدمت هذا المتغير المحلي local variable)، وهكذا سوف تحتاج للنظر مجدداً وبالبدء ببطء حتى تعود بكامل سرعتك.
هذا الوقت الضائع لاعادة التركيز (لنقل 10 دقائق) كان من الأحرى ان يقوم زميلك في العمل في البحث عن اسم الدالة في Google لايجادها، الامر الذي لا يأخذ منه سوى نصف دقيقة بدلاً من اضاعه 10 دقائق من زميلك.
بالطبيعي طلب المساعده أمر حتمي فأحياناً تكون لديك خبرة ويتطلب الزميل منك مساعده، ولكن عليه بالبحث اولاً وبذل مجهود ولو قليل في البحث ثم بعد ذلك يمكن طلب المساعده في حال اشكل عليه الأمر (عملية البحث بذاتها جيدة وسوف يتعلم المبتدئ بنفسه كثيراً).
هناك أراء أخرى ضد المنطقة، وأشهرها رأي روبرت مارتن (الشهير بأنكل بوب في كتابه Clean Coder) ويقول أنه احياناً عليك الهروب من هذه المنطقه خصوصاً عند بناء الهيكل الأساسي أو الديزان للكود، حيث يمكنك ان تصمم سريعاً ولكنه قد يكون خاطئ لأنك تعمل في دائرة مغلقة وقد لا ترى جميع الجوانب، لذلك يقول في تلك الحالات اهرب من المنطقة Avoid the Zone ، و قم بأخذ جولة 5 دقائق بالخارج ، أو حتى تصفح أي موقع آخر لكي تهرب من ذلك العالم,, وقد ذكر أن هذا من مزايا ال Paring أو ما يعرف ب Pair Programming ( اثناء يبرمجان في جهاز واحد شخص يستلم لوحة المفاتيح والثاني يراقب ويناقش) حيث أنه لا يوجد مجال للدخول في المنطقة لأنها حالة لا تستطيع الحديث اثنائها uncommunicative state بعكس الParing والتي بنيت في الأساس على مفهوم المحادثه والنقاش constant communication الدائم بين الزميلين.
خلاصه:
- لا تقطع زميلك من العمل بدون فائده
- ركز جيداً في عملك واعرف متى تنتج وتكون في اعلى انتاجية وقم بغلق كل وسائل الاتصال ومواقع التواصل الاجتماعي (قد ذكرنا في الموضوع السابق عن فكرة برنامج لغلق الشبكات الاجتماعية من جهازك ، وسوف نقوم بصنعه في القريب ان شاء الله حتى يساعد الكثير).
- اثناء عمل الأجزاء المهمه في المشروع حاول ان تفكر في كل الأبعاد والا فاجلب فنجان القهوه قبل البدء.
مقالات مفيدة:
Where do These People Get Their (Unoriginal) Ideas?
7 Tips for programming in The Zone