ملاحظات (مرة أخرى) على نتائج مقابلات المبرمجين

كنت قد كتبت مقالين اثنين عن ملاحظاتي حول بعض المقابلات التي اجريتها في السنوات السابقة في هذا المقال و هذا المقال.

المقالان في سنة 2011 و 2012… و الآن اكتب في نهاية 2014  عن نفس الموضوع

للأسف كل ما ذكرته في المقالين ينطبق على المقابلات التي اجريتها خلال شهر نوفمبر 2014 و للأسف مرور فترة من الزمن يفرض رفع سقف التوقعات و خاصة لوظيفة مبرمج تطبيقات موبايل- mobile developer

من المفترض ان السوق قد اصبح مشبع بالخبرات في مجال تطوير تطبيقات الموبايل- او على الاقل اصبحت متطلبات الوظيفة و وسائل المساعدة و التطوير و التطور في هذا المجال متاحة للجميع.

المشكلة الأكبر في المقابلات الاخيرة اني قابلت من لديهم من سنة الى ثلاث سنوات خبرة في تطوير برامج آندرويد- و التي من المفترض انها سهلة الاستخدام و التعلّم و التطبيق- على الاقل مقارنة بنظام iOS  و تطبيقاته (بشكل نسبي)

لا زال المتقدم للوظيفة يتطلع للامور الاساسية في العمل و هي:

  1. الراتب $$$$$$: بالعربي كم رح اقبض آخر الشهر- و فوق السؤال سؤال ثاني: “بنزل الراتب آخر الشهر ويللا بيتأخّر؟؟”
  2. التسلسل الوظيفي: بمعنى المتقدم للعمل يريد ان يعرف من مديره و ما هي خبرته و اسلوب عمله- و هذا شيء جيد، و لكن الاجابة على هذا السؤال غير مفيدة للمتقدم للوظيفة (يعني مستحيل رح اجاوبه مديرك ازعر و بيضرب أسافين و رح يحرث عليك ليل نهار)
  3. ساعات العمل و بيئة العمل: واضح جدا ان المتقدمين مهتمين بمعرفة اوقات الدوام، و هذا يدل على ان للمتقدم للعمل حياة أخرى يهتم بها و تشغل جزء من وقته
  4. طبيعة العمل: يهتم بعض المتقدمين للعمل بمعرفة انواع عملاء الشركة، و طبيعة التطبيقات التي تطورها الشركة- معظم المتقدمين لا يكترث لطبيعة عمل الشركة

معظم المتقدمين (على الاقل من قابلت في الفترة الحالية) يتنقل بين الشركات بسرعة اكبر من السنوات السابقة- يعني كل 6 اشهر بشركة و احيانا كل 3 اشهر بشركة، بينما في السابق كان معدل مكوث الموظف فالمبتدئ في اول شركة يعمل بها ما بين 2-5 سنوات- طبعا سرعة التنقل بين الشركات يدلّ على اكثر من معلومة و أهمها ما يُعرف بـ turnover rate و هو دليل على عدم استقرار الشركات في البلد سواء ماليا او كإدارة للموارد البشرية و بيئة العمل و نشاط الشركة.

أسئلتي في المقابلات و خاصة لمن لديه “خبرة” في السوق لا تكون في مجال البرمجة نفسها و انما بالمفاهيم الاساسية و سبب وجود هذه المفاهيم و اماكن تطبيقها عملياً… و للأسف تجد القليل من المتقدمين للوظيفة ممن يدرك سبب وجود برمجيات معينة او اسلوب نشأتها. و للأسف طريقة سماع السؤال و تحليله من المتقدم تكون متسرّعة و تحتوي الكثير من “الفتوى”- للأسف هذه الظاهرة لا تزال منتشرة الى الآن

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

Advertisements

دورة حياة شركات التكنولوجيا العربية (الاردن تحديدا)

بداية المقصود شركات البرمجة و الشبكات و تطويرها.

معظم شركات التكنولوجيا (و ليس كلها) بدأت عن طريق شخص او مجموعة اشخاص- و بالغالب إما أقارب او اصدقاء للعظم.

قبل ما اغوص بالتفاصيل، اعيد و اكرر للمرة الالف- العرب لا يوجد لديهم شركات تنتج تكنولوجيا الا ما ندر (و يكاد يكون معدوم)- كل ما لدينا هو شركات تستعمل التكنولوجيا لانتاج برامج او خدمات لبيعها للزبائن، و البعض الاخر من الشركات هي وكيل محلي لشركة عالمية لبيع منتجاتها في السوق المحلي- يعني زي وكيل مستحضرات تجميل بس وكيل كومبيوترات و برامج حاسوب. بالنتيجة شركاتنا مستهلك للتكنولوجيا و ليست مطوّرة للتكنولوجيا حتى لو مين ما اقنعك (الا ما ندر)

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

يبدأ اصحاب الشركة بوضع الـ mission و الـ vision و يأخذ الموضوع معهم ايام حتى يطلعوا بالزبدة—طبعا معظم الشركات تستخدم نفس الكلمات في صياغة هذه “الاعراف الادارية” الموروثة من الاباء و الاجداد- و أي واحد ما عنده mission و vision  يصبأ عن دين الاجداد في طريقة العمل و من هذه الكلمات الرنانة:

Grow the thrive of technology exploration, bridge the gap between X and Y, enhance the capabilities of X and Y to do Z, filling the void of X by introducing Y, applying best practices in X to do Y…etc

و بعد الانتهاء من سولافة الـ mission  و vision… يبدأ اصحاب الشركة بتصديق الحكي اللي قالوه- و يقسمون بالولاء و الانتماء للي قالوه (مش اللي قالتو ليلى) و يوقعّون بدمهم الشريف على الالتزام بمبادئ الشركة و اهدافها و اعتبار الشركة ذات سمعة مش “دكانة” على رأي السوق.

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

لحد الآن جميل… و يبدأ مسلسل الشركة و العمل اليومي..

في الايام الاولى للشركة يكون اصحابها متحمسين، و بجيبو اكل و فطور و مرات قهوة من ستاربكس و بعلّقو صور ع الحيط شغل motivation  و respect و customer satisfaction و صور عصافير و شروق الشمس على أفق المحيط… الخ الخ

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

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

تبدا الشركة بتسليم المشروع الاول… و الثاني… و تبدأ بالثالث.. و بتكبر الشغلة براس صحاب الشركة (نقشت معهم) و تبدأ مرحلة التوظيف الحذرة- باستدراج المبرمجين من شتى الاصول و المنابت ع اساس المشاريع تحتاج عدد كبير من الموظفين.

و يزداد عدد الموظفين، و المساحة الحالية لا تكفي، و تنتقل الشركة الى مكتب أكبر، و ديكور جديد (مع جاط تفاح اخضر عند مكتب الاستقبال)… و بما انهم راحلين راحلين، هات كنابايات جلد، و نظام الانصراف و الدخول ابو اصبع او كرت، و ليلة افلام اسبوعية، و طاولة Ping Pong عشان زي Google… و هكذا

بعد اول خازوق في تسليم المشاريع تبدأ مرحلة “الفزعة”… اول ما الزبون يقول “الشغل زبالة”.. يبدأ موضوع الـ Quality Control and Assurance.. و أول ما تظهر مشكلة “السيرفر واقع” تبدأ مرحلة cloud computing and data centers و أول ما يبدأ التخبيص بالمهمات و تعيين المبرمج المثالي تظهر فقاعة الـ Project management…يعني كل شيء يأتي نتيجة رد فعل و ليس بشكل مبادر.

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

يبدأ صاحب الشركة بتثقيف نفسه لتدارك المشاكل و بصير يقرأ كتب لتوسيع ادراكه- برضو شيء كويس و مطلوب- بس للأسف مش كل شي بمشي بأميركا بيمشي ببلادنا- على العموم قراءة الكتب و دراسة حالات مشابهة للشركة مفيد و ضروري.

لانقاذ ما يمكن انقاذه تتحول الشركة بالتدريج الى شركة “دكانة” و بعد ما التزم اصحاب الشركة عن عدم العمل بتخصصات غير تخصصهم يصبح مستعد ان يعمل بأي مشروع… يعني لو كانت الشركة تنتج برامج محاسبة بتلاقيها فجأة تطور mobile apps

يتخلل فترة الركود موجة من الاستقالات و تسريح الموظفين- و خلال هذه الفترة ترتفع وتيرة رغي الحكي و النميمة و الافتراضات و النظريات- و بالعادة يكون هناك شخص (أو شخصةJ- جديدة شخصة هاي) متخصص بأمور الحش و نقل الاخبار.

للحديث بقية..:-)

صدق المبرمجون… و لو كذبوا؟

يعتقد الكثير أن المبرمجين لا يتمتعون بمهارات الاتصال الكافية للتعامل مع الاخرين، سواء الادارة او الزبون. و لذلك تجد في معظم الشركات من يقوم بدور الادارة المتوسطة Middle Management للتعامل مع المبرمجين بالطريقة الانسب. و لكن للاسف هذا النوع من الاتصال مع المبرمجين غير عملي و غير صحيح لبيئة العمل و لا حتى للزبون و مخرجات المنتج و قيمته، بمعنى آخر: الطريقة التقليدية في الاتصال مع المطورين (المبرمجين) لا تعود بقيمة فعلية للزبون و لا للشركة- it does not add VALUE to customer

مع مرور الوقت، أصبح المبرمجون يكتسبون الكثير من المعلومات و الخبرات غير الخبرة في تطوير برامج الـ software و أصبح الكثير منهم لديه القدرة و المعرفة للتعامل مع وظائف غير البرمجة مثل: testing, documentation, email correspondence. نشأت هذه الخبرات عند الكثير من المبرمجين لعدة أسباب منها:

  1. الرغبة في التطور في السلم الوظيفي و الوصول لمرحلة ادارة المشاريع او تصميم البرامج، و هذه الوظائف تتطلب الكثير من الاتصال مع الاخرين
  2. نوعية طلبات الادراة من المبرمجين و الادارة المتوسطة و خاصة في ما يتعلق بأخذ التوقعات المبدئية للزمن اللازم لانهاء المشروع او جزء منه- و بالتالي ايجاد الحافز لدى المبرمج للتعامل مع هذه المواقف و تحسينها اثناء العمل خاصة اذا كانت الادارة غير منظمة و تعتمد على “الفزع” و عدم التخطيط- reactive and not planning
  3. كثرة المواقع و المدونات على الانترنت التي تدعو المبرمج الى اتقان مهارات الاتصال و بالاخص مع فريق العمل و من ثم الادراة و الزبون

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

معظم وقت المبرمج يكون بالتعامل مع لغة الالات عن طريق لغات البرمجة… فهو بالتالي يتكلم مع الكومبيوتر باللغة التي يفهمها الكومبيوتر، و بالتالي لا شيء سيصعب على المبرمج في التخاطب مع البشر. قد يجادلك احد المبرمجين ان الكومبيوتر له لغة مفهومة بـ commands, instructions, commands, functions, parameters, return values..etc و البشر لغتهم “غير مفهومة” بمعنى أنها تحتاج للنقاش و التحليل و مراعاة لغة الجسد و طريقة التعبير و كل هذه المعطيات أصعب من التعامل مع الكومبيوتر بلغات البرمجة، ربما هذا قد يكون الابتعاد عن التعامل مع البشر احد اسباب اللجوء للبرمجة كمهنة و لكن هذا سبب ضعيف، ببساطة لان المبرمج له حياة في آخر المطاف و على الاقل يتعامل مع عائلته و اصدقائه (أكبر دليل جلسات الارجيلة في كوفي شوبات عمان).

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

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

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

عمّان تي تي…. مرّة أخرى

في البداية، مليون تحية للشباب القائمين على عمّان تي تي، للكل عامّة و بالأخص من لا زالوا قائمين عليه حتى هذه اللحظة… و بالاسم كمان: فؤاد جريس صاحب الكاريزما و و الشاب المتألق باسم العقّاد.. و المتطوعين لهم شكر خاص طبعاّ. ملاحظات سابقة عن عمّان تي تي تجدونها هنا

ملاحظاتي تأتي على حدث البارحة (نسخة شهر ديسيمبر) و كانت تتحدث عن البرمجة و المبرمجين بشكل عام.

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

ملاحظة أخرى على المحاضرين أنهم كانوا يحاضرون بطريقة السرد (مثل المدرسة و الجامعة) في بعض الأحيان و “رشّ” ال slides بالنقاط المشروحة و عدم الاعتماد بشكل كبير على التوضيح بالصور.

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

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

شكرا مرة ثانية، و مزيدا من التوفيق في المرات القادمة

حياة المبرمج (مفترق الطرق)

وصل المبرمج الان الى مرحلة التمييز العلمي و العملي لمهنة البرمجة و أُُسس بنائها. فهو يدرك الان كيف ينشأ المشروع (او المنتج) و الطريقة الانجح و الاسرع لتحقيق غاية المشروع او المنتج.

أيضاً، أصبح يعرف الان الادوار المختلفة في هذه المهنة من أنواع المدراء التقنيين و الادرايين، المبيعات، التسويق، المابة، ادارة المشاريع، المنسق بين الادارة و البرمجة

عند هذه النقطة بعد ممارسة المهنة لما يقرب من 10 سنوات (قد تكون اقل او اكثر حسب الشخص و الظروف) يتحتم عليه اتخاذ احد القرارات التالية:

    1. البقاء في حلقة التكنولوجيا و الاسهام في نضوجها: بمعنى آخر البقاء في حقل البرمجة و محاولة ايجاد مفاهيم جديدة و تصاميم و ادوات تفيد القطاع بشكل عام. و يا ليت جميع من يعمل في هذا القطاع أن يتخذوا هذا القرار (خاصة في العالم العربي). فمن النادر أن تجد من يطرح مبادئ جديدة من عالمنا العربي او حتى من يساهم و يساعد في تطوير فكرة ما عالميا
    2. الانضمام الى حقل ادارة المشاريع: و كثير ممن كان مبرمجا أصبح مدير مشاريع (و ان كان بالمسمى فقط) و يأتي هذا القرار بسبب المام الشخص في هذه المرحلة بكل جوانب مشاريع التكنولوجيا
    3. المبيعات: و ياتي هذا القرار ايضا من المام الشخص بحاجات السوق من التكنولوجيا و المشاكل التي يعاني منها العملاء. برائي الشخصي يجب ان يكون في داخل اي مبرمج شخصية مدير مبيعات و لو بشكل ضئيل، فالمبيعات بالنهاية في رأي البعض يعتبر كأسلوب حياة. فالمبيعات تؤهل الشخص تدريجيا على عدم الاعتماد على الراتب الشهري و التفكير بتركيز بطرق خلق المشاريع و الخدمات للعملاء (create customer needs)
    4. الاعمال الحرة(freelancing): هذا القرار جريء و حبذا ان نرى الكثير ممن يعمل في القطاع كعمل حر، فهذا القرار يتيح للشخص العمل بأكثر من مشروع مع أكثر من عميل و لكن لا بد من الادارة الجيدة للعمل و حسن الاداء. العمل ك freelancer يتيح للشخص مع الوقت أن يؤسس شركته الخاصة في يوم من الايام

 

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

حياة المبرمج (الجزء الثالث)

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

  1. محاولة عدم تكرار الاخطاء التي وقع بها في مشاريع سابقة
  2. نقل ما لديه من خبرة لزملاءه أو حتى أصدقاءه
  3. تحسين طريقة العمل، سواء طريقة كتابة الكود أو لغة البرمجة
  4. عدم تكرار العمل بنفس الطريقة و الاسلوب قدر الامكان
  5. ترك بصمة خاصة له في كل المشاريع، مثل حل مشاكل معقدة
  6. توسيع العلاقات و الشبكة الاجتماعية المحيطة به، يأتي هذا من خلال المشاركة بالندوات، المؤتمرات، الدوراتالخ

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

قد تسأل لماذا عى المبرمج أن يقوم بتسويق خبرته و أعماله، فيما يلي بعض الاسباب (افيدوني بتعليقاتكم اذا سمحتم):

  1. عرض خدمات المبرمج لأشخاص او شركات بحاجة ماسة لخبرة المبرمج و التي قد تساهم بالنهوض بهذه الشركة و بأعمالها
  2. إكتشاف مجالات اوسع من المجال الذي يعمل به
  3. إكتشاف أفكار جديدة (business ideas) و التي قد تفتح المجال للمبرمج بتطويرها على طريقته الخاصة
  4. مساعدة من يريد تكنولوجيا و رد المعروفالذي اعطته سنوات الخبرة فالمرحلة الثالثة اذا لاحظتم لا تأتي بعد حد فاصل عن المرحلة السابقة، و إنما تعتبر ممهدة للانتقال الى المراحل المستقبلية. فبعد أن اصبح اخونا senior developer سيتحتم عليه أخذ قرارات جريئةلحياته المهنية و قد تتضمن هذه القرارات تغيير على حياته المهنية كأن ينتقل الى المبيعات أو إدارة المشاريع، أو بالمقابل البقاء كشخص تكنولوجي بصبغة إدارية.

حياة المبرمج (الجزء الثاني)

و بعد أن قضى أخونا المبرمج الفترة الأهم بحياته العملية، و أصبح يعرف أن الانترنت لا تأتي على CD و أن هناك شيء اسمه راوتر و power point presentations و انه لا يجوز لبس الشبشب أثناء العمل، و أن القميص الباذنجاني مع بنطلون أخضر لا يتوافق عند حضور الاجتماعات، و أن التوثيق documentation من أساسيات البرمجة و إنعكاس لجودة التطبيق و سهولة تطويره و أن و ان و أن الخ ينتقل الى المرحلة الثانية و هي مرحلة التحدي!

المرحلة الثانية (التحدي):

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

  1. ما هي أفضل تكنولوجيا لتطوير متطلبات العميل (هنا بدأت المهنية تطغى على عاطفة حب لغة او طريقة معينة بالبرمجة)
  2. ما الخبرات الضروري وجودها في شخص المبرمج لتطوير المتطلبات (من كثرة الاخطاء التي ارتكبها في السابق)
  3. ما هو الوقت المطلوب ﻷداء المهمة و كم عدد الاشخاص المطلوبين (من كثر الاسئلة التي كان مدير المشروع يسئلها عن وقت التسليم)
  4. ما هي العقبات التي قد اواجهها اثناء تطوير المتطلبات (من كثر الخوازيق من المشاريع السابقة)

 

نلاحظ أن المبرمج الان أصبح يفكر بشمولية أكبر مع عدم نسيان او التقليل من أهمية البرمجة الفعلية (coding) فنص البرمجة (source code) للمبرمج في هذه المرحلة يتميز بما يلي:

  1. قلة الاخطاء
  2. سهولة القراءة و التتبع
  3. التوثيق الجيد
  4. يأخذ بعين الاعتبار الاداء العلي performance tuning
  5. ترجمة المعلومة التقنية للادارة بطريقة مهنية بعيدا عن المصطلحات العامة و البرمجية

 

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