إلى متى أيها العرب؟
ملاحظة:
وضعت هذا الموضوع في هذا القسم لأن لغة VB6 هي من أكثر اللغات شعبية (حتى الآن) في هذا الموقع و على مدار العالم.
قد يكون هذا الموضوع مخزياً و محبطاً لمن رأى في نفسه الكفاءة للعمل في مجال البرمجيات و لكنه (هذا الموضوع) يصف واقعاً محزناً من حياتنا (البرمجية).
لنفرض أنني مدير شركة برمجيات عربية.
أوجه الكلام هنا إلى مبرمج عربي يريد العمل لدى شركتي (طبعاً، هذا المبرمج سيكون مصطحباً معه سيرته الذاتية و التي قد تكون أطول من هذا الموضوع):
- ماذا تعرف من لغات البرمجة؟
- فسيجيب إجابة طويلة إلى أن أوقفه أي أنه يعرف تقريباً كل لغات البرمجة التي خرجت من مكاتب شركاتها إلى السوق.
- ممم حسناً، ماذا تعرف عن DBMS أو أنظمة إدارة قواعد البيانات؟
- سيجيب أنه يعرف التعامل مع SQL Server و تعرف منذ حوالي سنتين على Oracle و ذلك بعد أن مل من قواعد بيانات أكسس و خدماتها الضعيفة (برأيه).
- حسناً، لنكن أكثر تخصصاً، ماذا تعرف بالنسبة للبرمجة على بيئة ويندوز؟
- سيجيب هل تقصد من ناحية تصميم الواجهة أم من ناحية الربط مع قواعد البيانات أم عن تقنيات التشفير و الحماية(بقسميها البرمجي و العتادي) أم عن ربط البرنامج بطابعات الباركود و بالنسبة لل PLC فقد....الخ.
إخواني الأعزاء، ما أريد إيصاله هو أن المبرمج العربي مشتت يتلاعب به القدر (البرمجي) كما يشاء فإن احتاج لأحد برامجه حماية فيتعلم الحماية (و التي قد تمتد إلى الحماية عن طريق الدونغل مثلاً) و قد يضطر لتعلم الهندسة العكسية أيضاً و إن كان يريد إضافة تقارير لبرنامجه فسيتعلم تقنية Crystal Reports مثلاً و الخ... أي أنه لا يؤمن بالتخصص.
التخصص: هو أن يختص المبرمج بأحد المجالات و لكن أن يتبحر فيها فلا يترك صغيرة و لا كبيرة فيها إلا و يعرفها لأنها من اختصاصه و بما أن مجاله واحد وحيد فيسكون لديه الوقت الكافي لمعرفة كل الميزات الحالية مع مراقبة الميزات الجديدة و دراستها فور بدء تطبيقها و بالتالي العمل فيها (باحتراف).
فلينظر كل واحد منا إلى نفسه كيف أنه تمكن من تعلم أغلب لغات البرمجة (و ليس هنا يكمن الخطأ) و يعرف التعامل مع أغلب أنظمة إدارة قواعد البيانات هذا باستثناء ما قد تعلمه على برامج التصميم و المونتاج و غيرها.
أعترف و آسف أنني كنت أحد هؤلاء المبرمجين الذين لا يؤمنون بالتخصص، و أنا الآن في طور تحديد مجال التخصص... و بما أنه سيكون مجال واحد فعليك أخذ الوقت الكافي لتعرف ما الذي يمكن أن تنجح فيه و ما الذي لن تنجح.
لنأخذ مثلاً في الدول الغربية، تتكون الشركة (الصغيرة نسبياً) من 50 موظف، تنتج هذه الشركة تطبيقات قواعد البيانات فلنرى ما هي الاختصاصات:
تحليل
قواعد بيانات
واجهات
مبرمجو تنسيق(بين الواجهة و قاعدة البيانات).
تقارير
حماية
اختبار
صيانة و خدمة ما بعد البيع
تسويق و دعاية
محاسب
المدير و مدراء الأقسام
خدمات أخرى
أظن أن بنية هذه الشركة جيدة و حيث أنها وضعت اختصاصات كثيرة (و يمكنك التخصيص أكثر إن أردت ذلك).
و أظن أيضاً أن أحد موظفي الواجهات لن يقوم بالتدخل الزائد و المحاولة أو حتى التفكير بمحاولات حماية البرنامج لأن هناك موظفون مسؤولون عن ذلك و العكس صحيح.
و هنا تكمن المشكلة في المبرمجين العرب و عندما يقول المبرمج (في نفسه): لماذا أضطر لدفع تكاليف راتب أو حتى نسبة من مبيعات البرنامج لشخص آخر سأقوم أنا بتعلم ما يقوم به و سأقوم به بنفسي و أنا أحق منه في هذا المال فهو مخطىء تماماً.
فأنت عليك احترام اختصاصات الآخرين و عدم التعدي عليها و عندما (يعجز) المبرمج عن تصميم قسم معين من البرنامج(بغض النظر عن نوع التصميم و أدواته) فإنه سيحتاج مبرمج (أو مصمم أو تقني) آخر و العكس صحيح و من هنا يأتي تكاتف الأيدي و النهوض بالشركات و مع ضخامة حجم العمل فسيزداد عدد الموظفين و بالنهاية ستزداد الشركة تطوراً و ازدهاراً.
ملاحظة: ابحث بموقع (Google) عن أغنى الأشخاص في العالم لعام 2007 و ستجد شيئاً يذهلك هو أن أغلب الأوائل من مديري شركات البرمجيات مثل (Microsoft, Google, Oracle) و هذا طبعاً ليس بمقياس و لكنه يضفي شيئاً من الحماس و جعل هذه الشركات قدوة لغيرها من الشركات العربية و الأجنبية.
بصراحة لم أجد الكثير من الحلول لهذا الموضوع (سوى أن يتوقف المبرمج عن التشتت و يقوم بدراسة عميقة و مطولة لنفسه و ما يرغب فيه و ما يمكن أن ينجح فيه) و أتمنى من الأعضاء طرح الحلول اللائقة بنظرهم لحل هذه المشكلة و التي تعتبر عقبة في طريق تطور البرمجة في الوطن العربي.