هل أنت أذكي من أن تُكمل العمل

السلام عليكم ورحمة اللهthinking

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

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

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

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

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

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

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

Advertisements

14 فكرة على ”هل أنت أذكي من أن تُكمل العمل

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

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

  3. هنا الجواب قسمين، مثلا جزء تصميم التقارير (كمثال هنا) كمبرمج اكره التكرار و الروتين، قمت بانشاء محرك تقارير يستطيع المستخدم فيه تصميمها بدون الرجوع إلي، او على الاقل يستطيع مستخدم خبير (دعم فني) ذلك، هكذا تخلصت من الروتين في القسم الاول.
    في القسم الثاني ايضا يدخل التخصص و تقسيم العمل، يصادفك مبرمجين نوعيتهم يعشقون الروتين و يبتعدون عن كل ما يشغل الذهن، نعم هم مبرمجين متخرجين من الكلية، شاءت الظروف ان دخلوها بحسب علاماتهم او بتوجيه الاهل لا اكثر، لذلك هؤلاء مفيدين في هذه الحالة.

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

  5. بالنسبة لي بعد عمل اكثر من 15 سنة كمبرمج يعمل يتشغيل ذهنه، توقف دماغي عن العمل (مسكنات و اوجاع و ظروف محيطة)، و لم يبق لدي سوى العمل الرويتني الذي لم اعتد عليه ابدا، بل اكره نفسي و اصاب باكتئاب عندما اعمل عملا رويتينا، ولكنه مصدر رزقي الوحيد الآن، اعتقد ان في كلامك صحة من ناحية ان المبرمج يجب عليه كل فترة ان يلجأ للعمل الروتيني حتى لا يقع في نفس المطب 🙂

  6. أتفق مع بيل جيتس، ومن واقع عملي، يقول المثل الشعبي الليبي: حرّك التنبال يطلع مهندس، بمعنى أنك لو طلبت من الكسول (التنبال) فعل شيء، سيأتيك بأفكار أقل ما يقال عنها أنها هندسية.

    بالرجوع إلى التكرار، أواجه هذه الظاهرة في كل عمل، والمشكلة أنه لا يمكن إنشاء وحدة برمجية لتستخدممها في كل أعمالك، نظراً لاختلاف المتطلبات في كل مرة.

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

  7. المبرمجون أصناف ومهارات وكل صنف يناسبه نوع معين من العمل. كما أن العمل البرمجي أصناف وكل صنف يحتاج لمهارة خاصة.
    هذه بعض الحالات:
    هناك المبرمج الألمعي الذي يناسبه أن يقوم بحلّ مشكلة برمجية مستعصية أو ابتكار حل برمجي ذكي، فيستغرق منه الأمر فترة قصيرة ويسلّمها لغيره، لينتقل لشيء آخر.
    يوجد المبرمج ذو الانتاجية العالية، الذي يهمّه انجاز العمل بأقل وقت ممكن وبالحدّ الكافي من الاتقان.
    يوجد من يركّز على التفاصيل، ويخصّص لها وقتا أكبر.
    يوجد المبرمج الذي يكون حريصا على الاختبارات المكثفة لكل وظيفة في برنامجه قبل أن ينتقل لبرمجة وظيفة أخرى.
    منهم ذو النفس الطويل والصبور والذي يمكنه الاعتكاف على برنامج واحد لسنوات.
    منهم من لا يطيق تصميم وبرمجة واجهة الاستخدام، ويفضّل توجيه وقته على العمل الخلفي للبرنامج.
    منهم من يكون حريصا على نظافة أكواده وتنظيمها وهيكلتها، ومنهم من يهوى التجريد وصنع الطبقات البرمجية واحدة فوق الأخرى.
    منهم من يحبّذ الشغل الروتيني الذي يراه الآخرون ممّلا. ومنهم من لا يطيقه لكنه يصبر عليه، ومنهم من يبتعد عنه.
    من المبرجين من لديه القدرة على النظر للأمور من أعلى وربط المتنافر منها وتوليفها، وآخرون لايستطيعون النظر إلا إلى جانب واحد في وقت واحد.
    منهم من يبرمج ليأكل عيشا، ومنهم من يبرمج حبّا في البرمجة. ومن هؤلاء وهؤلاء من يركّز على أكل العيش على حساب جودة برنامجه، وآخرون يغرقون في حبّهم للبرمجة والبرنامج حتى ينسون أكل عيشهم.

    ومن المبرمجين من يملك كلّ المهارات السابقة.

    الأمرالذي أراه ضروريا، هو أن المبرمج يجب أن يستعين بغيره من أجل تنفيذ مشروعه البرمجي. بحيث تتوزّع الأعباء بينهم كلّ حسب مهاراته.

  8. >الأمرالذي أراه ضروريا، هو أن المبرمج يجب أن يستعين بغيره من أجل تنفيذ مشروعه البرمجي. بحيث تتوزّع الأعباء بينهم كلّ حسب مهاراته.
    نعم هذه نصيحة جيدة حتى يُكمل بعضنا بعضاً

اترك رد

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s