لماذا يكره المطورون المقاطعات؟

المقاطعات بالنسبة للمطورين هي بمثابة أحجار الكريبتونايت لسوبرمان، لأنها تقتل قدرتهم علی حل المشاكل؛ أي إنتاجيتهم، كما أن المطور يحتاج بعدها لزمن طويل نسبياً للعودة لمستواه الإنتاجي الأمثل.

لماذا يكره المطورون المقاطعات؟
© Jason Heeris

هنالك نوعان من المقاطعات: اجتماعات مخطط لها، والمقاطعات غير المحسوبة؛ كالتي تحدث عندنا يأتيك شخص ما مشتتاً تركيزك بسبب أو دون سبب (يحدث هذا أيضاً عند وجود هاتف يرن علی مكتبك كل بضع دقائق).

المقاطعات العشوائية تماثل القدوم إلی شخص يبني قلعة من المكعبات لتركلها بقدمك؛ ثم تتوقع منه أن يتابع من النقطة التي وجدته عندها!

الاجتماعات تستغرق وقتاً أطول وتقتل الإنتاجية حتی قبل انعقادها، وليس فقط خلال الاجتماع وبعده.

لدينا إذن نوعان من المشاكل، وكل منها يحتاج لحل يناسبه.

ما الذي يحدث عندما يتعرض المطور لمقاطعة؟

القدر الأكبر والأهم من عمل المطورين يحدث داخل أدمغتهم. أثناء كتابتنا للشيفرة البرمجية علينا أن نحتفظ بصورة ذهنية توضح لنا كيف تترابط الأجزاء التي كتبناها سابقاً مع الأجزاء التي نكتبها حالياً. علينا أن نعلم كيف سيعمل التطبيق بالكامل عبر المحافظة علی هذه الصورة، وهذه ليست بالمهمة السهلة؛ فهي تتطلب تركيزاً عالياً ومتواصلاً أثناء تفكيرنا بحلول إبداعية للمشاكل التي نحاول معالجتها.

يبدو المطورون معدومي الإنتاجية في كثير من الأحيان، جالسين إلی مكاتبهم، محدقين في شاشاتهم، واضعين سماعات الأذنين، ودون نقرة تذكر علی لوحة المفاتيح. في الحقيقة، هذا هو وقت استغراقنا في التفكير لبناء النموذج في أذهاننا، نضيف الأجزاء ونعدلها ونعيد ترتيبها لنضمن تكامل النموذج. إنه الجزء الأصعب من التطوير.

تخيل شعورنا عندما تتم مقاطعتنا باتصال هاتفي أو طلب عشوائي من أحد الزملاء، شعور مزر بالفعل!

هذه الصورة توضح المشكلة بشكل ممتاز.

ما يجب أن تعرفه عن هذا النموذج الذهني هو أننا نحتاج لحوالي ساعة لبنائه عند بداية عملنا في الصباح أو بعد استراحة الغداء. ولحسن الحظ فالأمر لا يأخذ كل ذلك الوقت بعد حصول مقاطعات قصيرة من المدراء أو الزملاء، هنا نحتاج فقط لحوالي 15-10 دقيقة لنعيد بناء الأجزاء التي خربتها المقاطعة ونتابع كتابة البرنامج. لكن ذلك ليس جيداً أيضاً، فلا نحتاج سوى لخمس مقاطعات لإضاعة ساعة كاملة من وقت العمل.

الاجتماعات المجدولة لا تحطم أجزاء من النموذج الذهني بنفس طريقة المقاطعات العشوائية، فنحن نعلم مسبقاً أنه يتوجب علينا حضور اجتماع في الساعة الفلانية ونستطيع التوقف عن بناء النموذج وكتابة الشيفرة عند نقطة مناسبة لنا. لا مشكلة في هذه النقطة.

تكمن مشكلة الاجتماعات في طول وقتها، فقد يمتد اجتماع لساعة من الزمن في الصباح أو بعد استراحة الغداء، مع العلم أننا نحتاج لحوالي ساعة لنعود لطاقتنا الإنتاجية بعد انقطاع طويل كهذا، وأنه لا يمكن كتابة وتجربة كم كبير من الشيفرة البرمجية خلال ساعة واحدة، لذا فإن فترة عمل تقل عن ساعتين لن تكون ذات قيمة حقيقية للمطور.

هنالك أمر آخر؛ نظرية وضعها المطور الذي تحول لريادة الأعمال ”بول غراهام“ وأسماها ”جدول المدراء وجدول الصناع“. يقترح غراهام أن المدراء يعملون عادة وفق جدول يختلف عن الجدول الذي ينظم حياة فريق الإنتاج، وهنا يكمن جذر المشكلة، والمقاطعات عرضها الأكثر وضوحاً.

إنها مقالة جيدة تستحق القراءة، يمكن تلخيصها هنا بفقرتين.

معظم المدراء يعملون وفق جدول مواعيدهم (وهذا المقصود بجدول المدير)، إنه جدول القيادة لتسيير أعمال الشركة وصفقاتها. لكن الأشخاص الصانعين كالمطورين والمصممين وكتاب المحتوی يستثمرون وقتهم بشكل مختلف، حيث يميلون لاستخدام ”نصف يوم“ كوحدة لقياس الزمن، فلا يمكن مثلاً كتابة برنامج جيد خلال ساعة واحدة؛ هذا الوقت بالكاد يكفي للبدء بكتابته.

عندما تعمل وفق جدول الصناع ستجد أن للاجتماعات تأثيراً كارثياً. يمكن لاجتماع واحد أن يهدر نصف يوم المطور عبر تمزيقه إلی أجزاء كل منها صغير لدرجة لا يمكن معها إنجاز أي مهام حقيقية، بالإضافة إلی أن وجود الاجتماع بحد ذاته يشغل حيزاً من فكر المطور. هذه ليست مشكلة بالنسبة لمن يعملون وفق جدول المدير، فهم يعلمون دوماً أن عليهم حضور اجتماع ما في الساعة التالية، السؤال هو ”ماذا؟“. لكن عندما تتم جدولة اجتماع للشخص الصانع فسيحتاج للتفكير بالأمر.

ينتج عن كل ذلك ميل واضح لدی المطورين للعمل في وقت متأخر حيث يعلمون أنهم لن يتعرضوا للمقاطعات وسيتاح لهم العمل والإنجاز. لكن ذلك ليس مثالياً أيضاً، فالمطور شأنه شأن أي شخص آخر؛ لا يستطيع احتمال فترات طويلة من عوز الراحة والنوم خصوصاً بعد تخطي العشرينات من عمره.

تقليل المقاطعات:

إذاً ما الخطوات العملية التي قد نطبقها للتعاطي مع ما ذكرناه؟

كتب ”توبي أوزبورن“ مقالة ممتازة عن المقاطعات القصيرة، تمحورت إحدی أهم نقاطها حول وجوب إلغائنا للمقاطعات التي نتسبب بها لأنفسنا، كأن نترك هواتفنا المحمولة علی مكاتبنا وتحت أنظارنا لتزعجنا بكل اتصال ورسالة وتغريدة وأي نوع من التنبيهات التي أصبحت كثيرة مؤخراً.

تنبيهات سطح المكتب يجب إلغاؤها أيضاً. أغلق برنامج البريد الإلكتروني وأي تبويبة متصفح ليست ذات علاقة بمهمتك الحالية.

إحدی القواعد التي يتم العمل وفقها في The Tomorrow Lab (مصدر المقالة) تنص علی أنه في حال كان المطور يضع سماعتين علی أذنيه فلا يجوز إزعاجه، أما إن كان يضع سماعة علی أذن واحدة أو لا يضع سماعة فيمكن مقاطعته فيما يخص العمل. يمكنك تحميل هذا الملصق وطباعته وتعليقه لتطبيق القاعدة في مكان عملك.

أمر آخر يقترحه أوزبورن وهو العمل من البيت أو في المقهی، لكن هذا الحل ليس عملياً لفترات طويلة حيث أن الكثير من أعمال الشركات البرمجية تتم بشكل تشاركي وتحتاج لتنسيق بين أقسام الشركة المختلفة.

مفتاح الحل يكمن في التواصل مع الأشخاص الذين يتسببون بالمقاطعات، فهم لن يدركوا مدی تأثيرهم علی إنتاجيتنا إن لم نخبرهم. إنهم يقومون بأعمالهم بالطريقة التي اعتادوها ولن تصلهم بطريق التخاطر فكرة أن ما يقومون به يؤثر سلباً علينا. من الممكن محاولة اعتماد جدول زمني يحوي حصصاً من الوقت يمنع فيها الجميع من مقاطعة المطورين إلا لمشكلة طارئة تتطلب معالجة فورية. قد يصعب تطبيق ذلك علی مدراء الحسابات والمدراء التنفيذيين، لذلك فعلينا أن نعمل معهم ونجعلهم علی اطلاع بأهمية تطبيق نظام كهذا ومواطن نفعه للشركة بشكل عام.

كل هذا جيد عند التعامل مع المقاطعات العشوائية، لكن ماذا عن الاجتماعات؟ من غير المعقول أن نصطحب حواسيبنا المحمولة ونهرب بها إلی المقهی لتجنب اجتماع ينبغي علينا حضوره. الاجتماعات شر لا بد منه (مع أنها غالباً ما تدوم ضعفي الوقت اللازم لها، لكن تلك قضية أخری).

لا يوجد حل ناجع لهذه المشكلة؛ لكن يمكننا الاقتراب من الحل بطرح أربعة أسئلة علی المطورين:

  1. ما هي الأوقات التي تشعر فيها بأكبر قدر من الإنتاجية خلال اليوم؟
  2. ما هي الأوقات التي تفضل حضور الاجتماعات فيها؟
  3. ما / من المسؤول عن أكبر قدر من المقاطعات التي تتعرض لها؟
  4. هل لديك ما تضيفه بخصوص المقاطعات؟

من المؤكد أنك لن تتمكن من جعل الجميع سعداء، لكنك  ستجد ”أوقاتاً حرجة“، أوقات يجب ألا تقترب منها عند جدولة الاجتماع، مثل أول ساعتين في الصباح والساعتان اللتان تليان استراحة الغداء.

نحن في نهاية الأمر بشر ولسنا رجالاً آليين ولكل منا تفضيلات وأوقات إنتاجية مختلفة. المهم ألا ينتهي الأمر بأحدنا بأن يشعر أنه دوماً في اجتماع في الوقت الذي يمكنه فيه أن يحل مشاكل برمجية معقدة.

كيف نتعامل مع المقاطعات عند حدوثها؟

نتكلم هنا عن المقاطعات القصيرة غير المجدولة. قد يقل تواترها بتطبيق ما ذكرناه سابقاً لكنها ستحدث عاجلاً أو آجلاً. الهدف هنا هو الحفاظ علی سلامة الجدول الذهني قدر الإمكان.

علينا أولاً أن نقسم المشاكل الكبيرة إلی مهام صغيرة، فعوضاً عن قولنا ”أين كنت في إنشاء برمجية التنبيهات هذه؟“ يجب أن نقول ”أين كنت في كتابة التابع الفلاني؟“.

ثانياً، علينا أن نتعلم كيف نتعامل بشكل لائق مع مسبب المقاطعة. يمكنك ببساطة وهدوء أن تقول له ”للأسف لا يمكنني النظر في هذه المشكلة الآن. من فضلك أعد إرسال طلبك لي عبر البريد الإلكتروني لكي لا أنسی، وسأقوم بمعالجته في أقرب فرصة ممكنة“. مع الوقت سيتعلم مسببو المقاطعات أنه لا جدوی من مقاطعتك إذا كانوا سيعودون إلی مكاتبهم لإعادة الطلب في رسالة إلكترونية.

الخلاصة:

المقاطعات مشكلة في غاية الجدية، تتسبب في إضاعة قسم كبير من إنتاجية المطورين؛ وبالتالي المال، كما أنها تصعب إنجاز أي شيء.

العمل في جو يغص بالمقاطعات يجرد المطور من حماسه للعمل. وبالمقابل، فإن العمل في شركة تعطيك الوقت الكافي بالشكل المناسب لتقوم بعملك هو أمر رائع، يمنح المطور الشعور بالقدرة علی الإنجاز ويحفزه علی الغوص في مهامه.

نحن كمطورين لا نعتمر سماعات الرأس طول الوقت لأننا نحب الموسيقى أكثر من غيرنا، بل لأنها تغلق علينا عالمنا الخاص وتعطينا المساحة الكافية لبناء نماذج ذهنية معقدة.

إذا كنت من الأشخاص الذين يتسببون بالمقاطعات بشكل متكرر وتعرضت يوماً ما لرد قاس فلا تأخذ الموضوع بشكل شخصي، ولا تحمل علی المطور؛ فهو في هذا الوقت يحس بتفكك النموذج الذهني الذي يعمل وفقه ويشعر بحاجة ملحة لأن يهرع لكتابة البرنامج قبل فوات الأوان.

وإذا كنت من زملائنا المطورين، فهل لديك ما تضيفه حول موضوع المقاطعات؟

نقدر مساهماتكم بالنشر والتعليق.

المصدر: مترجم بتصرف عن مقالة Derek Johnson علی موقع The Tomorrow Lab بعنوان Why developers hate being interrupted

محمود الدعاس

من مواليد دمشق. ابتدأ بعد التخرج كمبرمج ويب عام 2005 مع شركة إيميا، انتقل بعدها إلى شركة تكنوليد للأتمتة المتكاملة ومنها إلى شقيقتها أتمتة للحلول المتقدمة كمصمم غرافيك ومصمم ومطور ويب. أسس مع مجموعة من زملاء الدراسة موقع HOMELESS-PRO.com لنشر قصص مصورة باللغة العربية للشباب، و Guestra كوكالة تصميم وتطوير.

مواضيع الكاتبموقع الكاتب

لمتابعة الكاتب:
TwitterFacebookPinterest

2 thoughts on “لماذا يكره المطورون المقاطعات؟

  1. شكراً على الموضوع الجميل ، المقاطعات أكثر شيء يزعجني ،خصوصاً لما تكون منهمكا في حل مشكلة ما و يأتيك أحد الناس ليزعجك بترهاته .

أضف تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *