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