البرمجيات العربية، إلى أين ؟ [1]
مدرج تحت قسم: مقالات
أولاً أُحب أن أبارك على إعادة افتتاح الموقع من جديد، وبأهداف جديدة تُرضي طموحاتنا وتشعرنا بالمشاركة الفعّالة في بناء مجتمعنا العربي الذي تم تهديم حضارته، لن أُطيل الكلام عن الحضارة لكي لا تملو لأننا نسمع كثيراً عنه.
في هذا المقال سأحاول تسليط الضوء على قضايا واجهت العديد من المشاريع البرمجية العربية إن لم تكن كلها وسيتم تقسيم المقال إلى قسمين، الأول يُفيد مطوري المواقع والثاني للأعضاء ولن أُطيل الكلام في المقال الثاني لأن الموقع يهدف لخدمة مطوري المواقع بالمرتبة الأولى ولكن الأعضاء هم لبنة أساسية في أي مشروع لذا سأتحدث قليلاً عنهم.
في الفترة الأخيرة لاحظنا ظهور الكثير من البرمجيات العربية المفتوحة المصدر والتي كانت تظهر بقوة كبيرة ولكن شيئاً فشيئاً تتلاشى ولا تكاد تسمع شيئاً عنها! هل فكرنا لماذا؟ أو السبب الذي يؤدي إلى هذا التلاشي؟
في الحقيقة عند البداية بأي مشروع برمجي يجب أن يكون هناك “تنظيم”، ليس فقط من الناحية البرمجية ولكن من الناحية الإدارية أيضاً، الغالب أنه من الناحية البرمجية كل شيء يكون جيداً، ونحن في وطننا العربي نمتلك طاقات برمجية هائلة ولكن لا نعرف توظيفها ! أما من الناحية الإدارية فعلى الغالب أنه أقل قوّة من الناحية البرمجية وبشكل كبير!
ونحن هنا في المشروع سنساهم إن شاء الله في الناحية الإدارية والبرمجية معاً.
والآن سنبدأ بالحديث الدسم الذي يخص أي شخص يريد البدء بمشروع برمجي جديد، الآن سأسرد المشاكل وسنحاول حل مشكلة تلو الأُخرى.
- تحديد الأهداف التي ترجوها من مشروعك.
- إصدارات البرنامج.
- تنظيم العمل.
- عدم الأحتكار.
- ماورد أعلاه يُمكن تلخيصه بكلمة واحدة وهي المنهجية !
والآن سنشرح واحدة واحدة.
1- تحديد الأهداف التي ترجوها من مشروعك:
مثلاًلو أنت بصدد بدء العمل على برنامج منتديات، يجب عليك تحديد هدفك من المنتديات، هل أنت فقط تطمح كي تكون منتديات عربية دون المنافسة مع البرامج الأخرى الأجنبية؟
هل لديك نقطة معينة تريد الوصول إليها؟ بمعنى أنك فقط تُريد العمل حتى إصدار نسخة معينة ومن ثم تترك النسخة للمطورين لكي يطوروا كيفما يرغبون مثل نظام تشغيل لينكس مثلاً. الأسئلة التي في الأعلى هي المفتاح الأساسي لبرنامجك ولمشروعك؛ لأنك عندما تحدد الهدف تضع نفسك والمطورين والأعضاء على البر لكي يعرفو الاتجاه المقبل، وأرى فعلاً أنه لا حاجة للمفاجئات في هذا.
2- إصدارات البرنامج :
هذه النقطة التي نقف عندها جميعنا مهما كان دورنا في البرنامج سواءً كنا مبرمجين أو أعضاء مستخدمين للبرنامج، البرمجيات العربية تُعاني من هذه المشكلة وهي عدم وجود تنظيم في إصدار النسخ والسبب في ذلك تقصير الإدارة! أو حتى تقصير المبرمجين أنفسهم، لن أتحدث بشكل مُفصل عن الأسباب لأن تجربتي محصورة في مشروع واحد فقط، المهم الآن أنني سأتناول الحل للتخلص من عائق النسخ.
طبعاً أنا ضد وجود تاريخ منتظم لصدور النسخ ولكن على الأقل يجب أن يوجد تنظيم في الإصدار، ليس بمعنى أنه كل شهرين نجد نسخة، ولكن يجب علينا اتباع طريقة عقلأنية عند إصدار النسخ.
على فرض أنك برمجت نواة برنامجك وكل شيء على مايُرام، وصدرت النسخة الأولى (V1.0).
الآن، من الأفضل أن تُسمى النسخة التجريبية الأولى، وتُرفع على موقع للتجربة وكذلك تكون متوفرة للتحميل كي يتمكن الأعضاء من تجريبها على مواقع مختلفة! هذه الخطوة تُريحك كثيراً من موضوع المشاكل، ومثلاً تُحدد لبرنامجك عدد من الأخطاء، يعني لو وصل عدد الأخطاء إلى 20 خطأ نحلهم ونُصدر النسخة التجريبية الثانية وبعدها تنتظر حتى وصول الأخطاء للعدد المحدد وتصدر النسخة الثابتة! ومهما كان الوقت الذي يُكلفك كي تُصدر النسخة الثابتة ولكن الأهم هو الشيء الملموس، أي أن الأعضاء عندما يشعرون بأن صاحب المشروع يعمل لكي يوفر نسخ خالية من الأخطاء، سيشعرون بارتياح ولن يملوا، بينما لو أصدرت النسخة الأولى فوراً وبعدها انتظرت مثلاً فترة طويلة وأخذت منك حوالي ثلاثة أشهر دون جديد ! في هذه الحالة، سيمل الأعضاء وسيتركوا المشروع بشكل كامل.
وهذا الكلام ينطبق على النسخ التي بعد النسخة الأولى، ربما كلامي غريب أو الطريقة غريبة وسيقول قائل أن الشركات الكبيرة لا تتبع هذه الطريقة، ولكن أنا من وجهة نظري التقليد يضر لا يُفيد، وليس المهم مايفعله الآخرون المهم ماتراه مناسب، صحيح أن تجارب الغير مفيدة لكن ربما تجربتك سيستفيد منها الغير وتذكر دائماً أن لكل شيء بداية.
3- تنظيم العمل :
الآن وصلنا للنقطة الأساسية والتي أُعاني منها أنا شخصياً، المهم إخواني الكرام تنظيم العمل يحتاج إلى دقة، وأنا سأحاول المساعدة قدر المستطاع في هذه النقطة.
طبعاً بعد توسع مشروعك سيكون عليك أولاً تحديد من هم أعضاء الإدارة، ومن هم المبرمجون المساعدون أو يُمكنك تسميتهم فريق العمل، وعلى الإدارة التواجد دائماً في الموقع وبالأخص مدير المشروع لكي يشعر الأعضاء بوجود عمل فعلي، وحتى فريق العمل يجب عليه التواجد بشكل مستمر ودوري كي يقفوا على الأخطاء الموجودة ويعملوا على حلها، أو يمكن للإدارة أن تُسجل الأخطاء وتجمعها وفريق العمل يحلها، ولكن هذا لا يمنع من دخول فريق العمل بشكل دوري.
طبعاً نحن وكما يُقال باللغة العامية “نعمل لكل شيء أيدٍ وأرجل” أي لا حاجة لأكثر من ذلك، يمشرف ومدير ونائب المدير وعضو فريق العمل و…. التسميات الكثيرة لاداعي لها، يكفي أن يكون هناك قسم إداري وقسم تطويري برمجي. لأنه كلما أضفتم مسميات جديدة كلما ازداد الأمر صعوبة، يعني لو أضفنا مثلاً مُشرفين، المشرف يكون مسؤول عن قسم مُعين، ومن الضروري أن يكون لديه خبرة في التعامل مع محتويات القسم سواءً كانت برمجة أو تصميم أو غير ذلك.
ولكن الفريق الإداري مادوره الآن؟ هل فقط إصدار الإعلانات والنسخ؟ اعتقد سيكون دور الفريق الإداري محدود، ولاننسى أن المُشرف المُعين على قسم برمجي لديه خبرة في القسم المُعين عليه، يمكنك الإستفادة من خبرته في تطوير البرنامج أي إنضمامه لفريق العمل سيكون أفضل من بقائه كمشرف ! هذه وجهة نظري في الموضوع.
* نُقطة هامة أيضاً هي عدم إكثار الكلام وعدم إقلاله !! كيف يتم ذلك؟ تناقض صح؟
أنا سأقول لكم كيف، يعني في حال وضع أحد الأعضاء مشكلة، لاداعي لأن تعقدها عليه وتتفلسف كما يُقال في اللغة العامية، ولا تٌقصر من حديثك حتى لا يفهم العضو، لا اجعل حديثك مُختصر يعني كافي ووافي. يعني اشرح للعضو مُشكلته بشكل مُختصر وكذلك ضع له الحل وفي حال عدم وجود حل حاول إيجاده أو قل للعضو إن شاء الله في النسخة القادمة وهنا سنعود للنقطة الثانية وهي الإصدارات. فعندما تكون إصداراتك مُنظّمة سيطمئن العضو وسيأخذ على كلامك، أما في حالة غياب الثقة سيضحك وسيقول لقد ألبسني ثياب النوم. وهذا من أهم المشاكل التي نعانيها في هذا الموضوع.
أخيراً وليس آخراً.
4- عدم الإحتكار :
هذه النقطة كان يُمكن دمجها مع النقطة التي قبلها ولكن أُفضّل الحديث عنها بشكل مُنفصل، فعلى الرغم من كونها نقطة صغيرة ولكنها هامة في نفس الوقت، بمعنى أنه لو اضطررت إلى ترك العمل لسبب ما أو السفر أو انشغلت لاتترك مشروعك بدون إدارة وحاول إيجاد بديل بأسرع وقت بحيث يمكنك الإتصال معه وإخباره له مثلاً أن يُضيف إعلاناً أو أن بإمكانه رؤية المشاكل ونقلها لك. وبهذه الصورة تكون حفظت حق الأعضاء وحقك أيضاً في كل شيء.
وفي حالة كان انشغالك طويل ولا تعرف مدة محددة له، لاتترك البرنامج هكذا دون أي تطوير، يُمكنك إعطاء الحقوق البرمجية لشخص قادر على حمل الراية والمتابعة بعدك وعندما تعود مرة ثانية يُمكنك حمل الراية من جديد لامشكلة، أما أنك تُغادر دون أي إنذار أو أي شيء ويكون غيابك طويل والمشروع يتخبط دون تنظيم ولا أحد قادر على فعل شيء ففي هذه الحالة ستحكم على نفسك بالهلاك قبل مشروعك، والسبب أنك فشلت. صحيح أن الفشل هو دافع للنجاح ولكن هذا لايعني أنه يجب أن تفشل كي تنجح، فكّر بهذا جيداَ.
هذا كل مايخص الناحية التي تقع على عاتق المبرمج صاحب المشروع.
وللحديث بقية.
التعقيبات
- المشروع » البرمجيات العربية إلى أين [2]
- غير معروف
- المشروع » البرمجيات العربية إلى أين ؟ [3]
- المشروع - تطوير المواقع » الفكر العربي إلى أين؟


مشكور اخي العزيز فراس على الموضوع الجميل
و نحن ننتظر جديدك :-)
السلام عليكم ورحمة الله وبركاته
جزاك الله خير أخونا فراس على هذا الطرح المهم والذى يلمس جرح كبير فى البرمجيات العربية مفتوحة المصدر، وأعتقد أن معظم المتابعين لها يشاركونا الرآى فى وجود خلل أو قصور فى التعايش مع مفهوم البرمجيات مفتوحة المصدر
واسمحلى أن أضيف على النقاط التى ذكرتها ضرورة أن يكون الشخص صاحب المشروع مدرك تماما لفاهيم برمجيات المصدر المفتوح ومؤمن تمام بالعمل الذى يقدمه ولا يتعجل ثمار هذا العمل
الثمار باذن الله آتية لاريب فلكل مجتهد نصيب، لكن المهم هو الإستمرارية، هذا من ناحية
ومن ناحية آخرى نحن بحاجة لتكوين مجتمع قادر على التعايش مع مفاهيم برمجيات المصدر المفتوح بحيث يمكن لآكثر من شخص لم يلتقيا أبدا أن يتناوبوا على تطوير برمجية واحدة للوصول بها الى أفضل شكل ممكن
مثل ما حدث مع لغة ال PHP وهو يعتبر مثال رائع لما أتحدث عنه وقد حدث مثله مع أكثر من مشروع من مشروعات المصدر المفتوح
على كل حال لا بأس بالنتائج التى وصلنا اليها فهى بالطبع أفضل من الا شيئ D:
كما انها تضع لنا أساس معقول لمواصلة الطريق وتنمية مفاهيم برمجيات مفتوحة المصدر التى أعتبرها ثورة ثقافية انسانية لا غنا لنا عنها
والسلام ختام
وعليكم السلام ورحمة الله وبركاته
مقال هادف فعلا ، ونتمني فعلا وجود توعية بمفهوم المصادر المفتوحة لان هناك الكثير يفهمها خطا
واضيف لمقال اخي فراس رابط لموقع من اهم المواقع العربية المهتمه بالمصادر المفتوحة والبرامج العربية المفتوحة المصدر والمجانية
http://www.freewarearabia.com/
جزاك الله كل خير
محمد ،،
فعلاً..
تجاربنا مع هذه البرامج علمتنا الكثير فعلاً..
لن أنسى ذلك..
بالمناسبة..
إضافة إلى ما قلته..
يجب على المدير أن يضع فكرة الفريق أول شيء وقبل كل شيء.. سواءً عند بدئه او في وسط مشروعه.. لا بد أن يؤمن بمبدأ التعاون.. وليس الانفرادية..
وأظن أن اتخاذ مستشار هو أمر جيد أيضاً.. يشير عليك في خطواتك..
وشكراً على هذا المقال
تابع.. نحن في الانتظار
مملنا يااخي من التنظير..
كلام معاد الف مره كما يقول المثل اسمع جعجعه ولا ارى طحينا ..
الأخ محمد السالم..
لكن ألى ترى أن معرفة الخطأ، هي أول طريق نحو الحل؟
ثم تحديد المشكلة بالضبط والبدء بإيجاد حلول لها
أظن انه يجب علينا تحديد الأخطاء فعلاً واقتراح الحلول لها لتنفيذها.. فهذا أفضل من السكوت عن ما يحدث.. لابد من التفكير بالأمر والتغيير
نعم فعلا يجب معرفة الخطا اولا و اسبابه و الى ما يؤدي و بعدها علينا البحث عن الحل المثالي و النهائي..
و التنضيم هو اساس العمل الناجح و المتقن…
و كما لاحظنا في اغلب البرمجيات و السكربتات العربية هو النشاط الذي لا يصدق في بداية الامر ,من ضهور نسخ جديدة وتصحيح الخطاء..و بعد مدة لم تعد ترى شئ اي النوم الشبه كامل.
تحياتي
وعليكم السلام ورحمة الله وبركاته
جزاك الله خير أخي فراس
ولكن في راي انك قد اغفلت نقطة بالغة الاهمية تؤثر في استمرار البرمجيات العربية وهي قله الدعم لهذه البرمجيات سواء اكان دعم مادي او دعم معنوي
فالكثير لا يفضل سوى البرمجيات الاجنبية او البرمجيات العربية غير مفتوحة المصدر ( المدفوعه ) وتبقى البرمجيات العربية مفتوحة المصدر بعيده عن الدعم وهذا يؤدي الى توقفها بالتاكيد
السلام عليكم ورحمة الله وبركاته ,
أولاً أحب أن أشكر كل الذين قرأو المقال ووضعوا تعليقات عليه ,أما أخي الكريم المُعاصر
كلامك صحيح 100% ولكن أنا كنت ناوي أحط هذه الفكرة في الجزء الثاني من المقال , وهي نقطة مهمة , شكراً لك وللجميع .
تحياتي
فراس
شكرا اخي فر اس على هذ المقال وارجو ان تر د على تعليقي اخوك خليفه ويمكنك اخي ارسال التعليقات الجديده على ايميلي التالي akhalefa48@yahoo.com