مع اجتياح التكنولوجيا لجميع قطاعات وأسواق العمل أصبح من الضروري لأصحاب المؤسسات تطوير أساليب عملهم بالاعتماد على تقنيات الحوسبة (لتسهيل أعمالهم وتسريع إنجازها) والاتصالات (للوصول إلى زبائنهم وعرض منتجاتهم وفتح أسواق لبضائعهم في أماكن جغرافية بعيدة عن أماكن تواجدهم). وأصبح من الضروري لكل مؤسسة أن يكون لديها نظام مالي مؤتمت وموقع على الشبكة وبريد إلكتروني أو أكثر يمثلها لتسهيل التواصل والأمور المالية على أقل تقدير. ومن هنا ظهرت الحاجة لمبرمجين يقومون بتطوير هذه الأنظمة والمواقع وربطها وتفعيلها. إن كنت من أصحاب المؤسسات التي تقدم حلولا برمجية وترغب في ضم مبرمج آخر لفريقك، أو كنت مالك مؤسسة مستقل ترغب في توظيف مبرمج ليصمم لك موقعا أو برنامجا خاصا بك، وسواء كنت تملك خبرة في مجال البرمجة أم لا ندعوك للاستفادة من هذا المقال. في البداية وقبل توظيف المبرمج علينا أن ندرك جيدا ما العمل الذي سنوكله إليه، هل سيقوم بتطوير نظام خاص بالمؤسسة يتوافق مع نوع العمل فيها ؟ هل سيقوم بتطوير موقع للمؤسسة؟ هل سيكون جزءًا من فريق مبرمجين يقومون بتقديم حلول برمجية للزبائن ؟ هل سيقتصر عمله على الجلوس خلف شاشته ؟ أم هل سيقود فريقا من المطورين؟ هل سيتعامل مع من يقدم لهم حلولا برمجية ؟ -ملاحظة : إن كنت عزيزي القارئ تملك مؤسسة صغيرة وكان مجال عملك شائعا لا يملك طابعا خاصا حاول البحث عن حل برمجي مسبق الصنع مثل الأنظمة المالية والحسابية الجاهزة أو برامج الأرشفة الشائعة أو برامج جدولة المهام وإدارة فرق العمل الموجودة بكثرة في سوق البرمجيات ووفر ما رصدته كراتب لمبرمج لتطوير أجزاء أخرى من مؤسستك. في ما يلي بضعة أسئلة يمكنك طرحها على نفسك لتسهيل عملية توظيف المبرمج. كيف أحدد مواصفات المطور ؟يتم تحديد مواصفات المطور حسب حاجة المؤسسة أو الجهة الموظفة ونوع التطبيقات أو العمل الذي يتوجب على المبرمج القيام به. -إن كنت ترغب بتطوير تطبيق يتم تنصيبه واستخدامه على الأجهزة ليقوم بوظائف معينة فأنت تبحث عن مطور تطبيقات يتقن لغات برمجة مثل java أو c++ ويستطيع استخدام بيئات التطوير المختلفة مثل visual studio.Net أو Netbeans أوCode Blocke أو eclipse والكثير غيرها. -إن كنت ترغب بتطوير تطبيق يعمل على الهواتف الذكية ليمكن عملاءك وزبائنك من الحصول على خدمات جيدة حتى عن طريق هواتفهم إن اضطر الأمر هذا يعني أنك بحاجة لمطور تطبيقات Android أو iOs قادر على فهم متطلباتك والعمل على التطبيق بدءًا من تحليل الحالة وانتهاء بنشر التطبيق في المتاجر في هذه الحالة على المبرمج أن يتقن العمل على بيئات التطوير الخاصة بالنظامين من هذه البيئات بيئة SDK المرفقة بeclipse أو Android Studio، Xcode - إن كنت ترغب بتطوير نظام تشغيل مصغر يسهل استخدام آلة ما أو رقاقة ما أو نظام ما فأنت بحاجة لمطور أنظمة تشغيل وغالبا ستحتاج لمطور نظم تشغيل مدمجة يفهم بدقة كيف تتم إدارة الموارد والذاكرة وتنفيذ سلاسل التعليمات، هذا النوع من المبرمجين غالبا ما يستخدمون لغات برمجة قياسية قريبة من لغة الآلة مثل لغة التجميع Assembly او standard C أو C++ في أحسن الأحوال. - إن كنت ترغب بتطوير موقع على الشبكة العنكبوتية فأنت بحاجة لمطور مواقع يتقن التصميم بكافة أشكاله،قادر على كتابة سكريبتات وشيفرات لغات البرمجة الخاصة بتصميم المواقع مثل HTML و PHP و XML ويستطيع العمل على البيئات الخاصة بتطوير المواقع بسلاسة مثل ruby on railsو Laravel و Django وغيرها. - إن كنت ترغب بتطوير لعبة فأنت بحاجة لمبرمج ألعاب. مبرمجو الألعاب المحترفين عادةً يمتلكون مهارات برمجية عالية ويقومون بالبرمجة في مستويات قريبة من لغة الآلة لضمان سرعة الأداء. الآن بعد أن استطعنا التمييز بين اختصاصات المبرمجين علينا أن نجد ذلك المبرمج الذي نحتاجه. كيف نجد المبرمج الذي نرغب بتوظيفهوهنا يظهر السؤال هل نحتاج للمطور دائما أم أننا سنتعاقد معه بشكل جزئي؟ وكيف سنختبر قدراته لنحدد أنه الأفضل. هل سأوظفه بدوام كامل ؟في حال كان الموظف يرغب بتوظيف المطور بشكل مستمر كأن يضم مبرمجًا جديدًا لفريق عمله أو أنه يرغب بالعمل على إطلاق مجموعة نسخ لمشروع معين يحتاج للوقت والتطوير والصيانة. فإنه سيبحث في المواقع التي تقدم خدمات التوظيف ليعلن فيها عن المواصفات المطلوبة للمبرمج المنشود لتبدأ المرحلة التالية. بدوام كامل أو جزئي عن بعد ؟وهنا سيقوم صاحب العمل بالبحث عن مطورين يعملون وفق مفهوم remote job حيث أن ساعات الدوام تكون حسب اتفاق معين ويتم إنجاز العمل عن بعد وهنا يقوم الموظف والمطور الذي تم توظيفه باستعمال أدوات مساعدة للعمل عن بعد مثل خدمات مشاركة الملفات Google Drive أو dropBox كمثال بسيط و Team Viewer للوصول والتحكم الكامل بأجهزة فريق العمل و أدوات أخرى تساعد على تجاوز مشكلة التواجد في نفس المكان ويعتبر هذا النوع من التوظيف رائجا لدى الطلاب الذين يبحثون عن أعمال تحقق لهم دخلا جيدا مع حرية اختيار الوقت الأمثل للعمل بما يتناسب معهم. لإيجاد هذا النوع من المطورين ننصحك عزيزي القارئ بزيارة weworkremotely.com على سبيل المثال لا الحصر. تعاقد بناء على إنجاز المهام ؟في حال رغبنا بتوظيف المبرمج لفترة محدودة أو لإنجاز جزء معين فقط من العمل يمكننا عرض هذه المهمة على الأشخاص الذين يعملون كمطورين بصورة حرة عن طريق المواقع التي تقدم خدمات من هذا النوع على مستوى عالمي مثل freelancer.com و mostaql.com ومواقع أخرى شهيرة لتبدأ المرحلة الأهم مرحلة الاختيار. كيف نختار المبرمجالمبرمج الجيد هو شخص يستطيع التفكير بطريقة منطقية تشبه إلى حد كبير طريقة عمل الحاسب الآلي،هو يدرك آلية عمل الأشياء ويهتم بتفاصيل تلك الآليات فيستطيع محاكاتها وتقليدها،و يعرف جيدا كيف ينمذج أي موضوع أومادة باستخدام معادلات رياضية قابلة للبرمجة، ما يميز المبرمج حقا ويجعل أفضل من سواه صبره و امتلاكه للهدوء الكافي ليكتب أسطرًا طويلة من الشيفرات التي تبدو مملة لسواه. هناك بعض القواعد الذهبية في توظيف المبرمجين ستكون عونا لك : اسأل المبرمج عن مستوى تعليمه عادة ما يكون الأشخاص الذين تلقوا تعليما في مجال علوم الحاسب أكثر قدرة على أداء المطلوب بطريقة صحيحة اسأل المبرمج عن مدى درايته ومعرفته بالمسألة التي ستقوم بتطوير برنامج لحلها أو محاكاتها أو تنظيمها فمثلا إن كنت ترغب بعمل محاكاة لنظام قيادة مركبة آلية (كالنظم الموجودة في مدارس السياقة ) اسأله عن مدى درايته بالسياقة ما هي الخطوات التي يجب اتباعها عند إقلاع المركبة ؟ ما هي حدود السرعة التي تستطيع المركبة الالتفاف والدوران ضمنها دون أن تنقلب ؟ كيف يتم تغيير السرعات على عداد السرعة و ما هو العامل المؤثر على ذلك ؟ كيف يتم تقدير المسافات باستخدام المرايا و الزجاج الأمامي؟ كيف يكون الوضع الصحيح للمرايا؟ متى تعطي السيارة تنبيهات. انتبه جيدا لمعرفته بتفاصيل المسألة أو على الأقل اهتمامه بتفاصيلها، قد لا يكون مصيبا في إجابته لكن نمط تفكيره يبدو صحيحا سيكون هذا لصالحك. لا يوجد شخص كامل يعرف كل شيء لذا من الجيد أن توظف شخصًا قادرًا على التعلم بسرعة ذاتيًّا أو بمساعدة مدرب،اختبر مدى رغبته بالاطلاع والتعلم بسؤاله عن شيء غير مألوف واشرح بعض الأشياء له ثم اسأله لتقييم سرعة تطوّره وتعلمه. حاول فهم قدرته على تحقيق المطلوب بسؤاله عن الخوارزمية العامة للعمل وعن الأدوات التي سيستخدمها و المدة التي سيستغرقها. اختر أولئك الذين يعطون إجابات دقيقة واثقة، وحاول الابتعاد عمن يستخدم عبارات تبدأ بـ "قد" و "ممكن" فهذه العبارات دليل واضح على عدم امتلاكهم الخبرة الكافية للسيطرة على زمام الأمور. اطلب أمثلة عن أعمال سابقة قام بها، ففعالية هذه الأعمال وأدائها تعطيك أمانا إضافيا بأن مشروعك سيتم إنجازه في الوقت المحدد ضمن المواصفات التي تطلبها . اسأله عن عدد الساعات التي سيكون متفرغا بها للعمل على مشروعك الوضوح في هذه الأمور مهم منذ البداية. إن كنت تضم مبرمجًا لفريق موجود سابقا لديك قم بجولة مع المرشح للوظيفة في أروقة المكان واتركه لفترة قصيرة مع أعضاء فريق العمل بحجة تلقي اتصال هاتفي. راقب بهدوء طريقة تعامله مع باقي الفريق ومدى تقبلهم لشخصيته، من المهم جدا أن تقوم بهذه الخطوة وتتأكد بنفسك من انسجام فريق عملك وإلا فأنت تدق المسمار الأول في نعش مؤسستك. اسأل المبرمج عن أساليب التحقق من فعالية البرنامج الذي تم تطويره وما هي الطرق التي يستخدمها لاختبار البرامج التي يقوم بتطويرها. لا تهمل هذه الخطوة أبدا،فانتهاء مرحلة التنفيذ لا تعني أن المشروع اكتمل، بل يجب التحقق من عمل جميع الوظائف والقوائم المطلوبة بدقة، وخصوصا في حال كان التعاقد جزئيا أو أن المشروع سيتم تسليمه لأحد زبائن المؤسسة. بعد اتباع هذه الخطوات سيكون من السهل عليك انتقاء المرشح الأمثل وهنا عليك الانتقال للمرحلة الأخيرة من الاتفاق. كيف أحدّد أجر المبرمجتعتبر البرمجة من الأعمال الهندسية الإبداعية التي يبدع من يعمل بها بفكره الهندسي ليصمم حلا أمثلا لا يثقل كاهل الحاسوب الذي سيعمل عليه فكلما كان البرنامج المصمم يدير الذاكرة بشكل جيد دون التسبب ببطء في الجهاز أثناء تشغيله ويؤدي المطلوب، كلما كان الحل المطور أكثر فعالية،تختلف أجور العمل بحسب البرنامج الذي سيتم تصميمه والمشكلة التي ستتم معالجتها و بيئة التطوير التي يتم العمل عليها، وأيضا الدولة التي يتم العمل فيها، والمؤسسة التي سينضم للعمل بها. في الحالة العامة كمعدل وسطي لمناطق آسيا والشرق الأوسط وشرق أوروبا يتم حساب الأجور بحوالي 50-80 دولار أمريكي للساعة الواحدة، يضاف إليها تعويضات الخبرة والمستوى التعليمي ودرجة صعوبة التطبيق الذي يقوم بالعمل عليه و توقيت ساعات العمل مع الأخذ بعين الاعتبار ضرائب المؤسسة في حال كان التوظيف دائما. على سبيل المثال تتراوح أجور موظفي Google وفيس بوك بين 60 و 180 دولار أمريكي للساعة الواحدة بحسب الاختصاص والقدم ونوع التعاقد بينما تخفض هذه الأجور بنسبة 30% لموظفي Google مثلًا في أفرع الشركة المتواجدة في أوروبا الشرقية، أما أجور المبرمجين في الشرق الأوسط فهي تتراوح بين 30 و70 دولار أميركي، وغالبا ما تتأرجح الأجور حول 50 دولار أمريكي للساعة الواحدة. http://www1.salary.com/Programmer-I-Salary.html http://www.glassdoor.com/ لاحظ الفرق بين رواتب موظفي Google الذين يعملون تحت المسمى الوظيفي نفسه في دول مختلفة . نصائح لتجنب الأخطاء شائعة قد تقع عند توظيف المبرمجينهناك أخطاء شائعة يقوم بها المسؤولون عن توظيف المبرمجين سنذكرها لك لتجنب الوقوع بها: في المشاريع الكلاسيكية لا توظف مبرمجا مشهورا جدا، إن كان هناك من يستطيع القيام بعمله بذات الجودة، المبرمج المشهور عادة ما يتأخر في تسليم أعماله بسبب عدادات الطلبات التي يقوم بتلقيها. وفر نقودك و ابق في المنطقة الآمنة للوقت،وظف من يملك الوقت لسماع ما تريده جيدا . لا توظف شخصا يحمل شهادات كثيرة "المبرمج النظري" دون أن يحمل خبرة كبيرة توازي ما يحمل من شهادات، هذا النوع من المبرمجين الذي اعتادوا كتابة شيفرات تقريبية على السبورة إيجاد حلول نظرية للمشاكل،ابحث عن مبرمج قدّم حلولا حقيقية. لا تعتمد على شخص واحد لأداء المهمة إن كان المشروع طويل الأمد حاول الاحتفاظ دائما بنسخة عن التعليمات وشخصين على أقل تقدير يقومون بالعمل عليها في حال حصول مكروه أو أي أمر مفاجئ،ستبقى على الضفة الآمنة وسيبقى العمل متواصلا . إن كان المشروع يحتاج لخبير لا توظف مبتدئا لتقليل الرواتب المدفوعة. ستجد نفسك مضطرا لتحمل كلفة تدريب الموظف مع احتمال عدم بقائه لسبب أو آخر . لا تنس أن تضع ضمن توصيف العمل كتابة التعليقات في الشيفرات التي يقوم بكتابتها المبرمج الذي يتم اختياره وتقديم توثيق عن المشروع.يسهل عملية صيانته وتطويره إن احتاج الأمر،سواء مع ذات المبرمج أو بالتعاون مع مبرمج آخر . لا تنس أن تضع توثيق اختبار البرنامج ووظائفه ضمن توصيف مهام العمل قد تبدو النصائح الموجودة في هذا المقال مملة وطويلة، لكننا نتمنى عليك اتباعها و نرغب بتذكيرك بالمثل الشائع "وظف على رسلك لكي لا تَطرد بسرعة".