كيف تبدأ مشروعك البرمجي

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

     

    منهجية تطوير المشروع

    منهجيات تطوير المشروعات هي طرق تحدد دورة حياة المشروع من خلال تقسيمه لمراحل, واختيار منهجية معينة هو قرار سيؤثر على المشروع طيلة فترة استخدام المنهجية, لذلك وضع منهجية هو خطوة مهمة للمشروع.

    تحدد المنهجية باختصار متى تقوم بماذا, فمثلاً متى تقوم بالبرمجة و متى تأخذ التغذية الراجعة و متى تقوم باختبار البرنامج. و هناك العديد من المنهجيات التي تتمتع بخصائص معينة تجعلها مناسبة لمشاريع معينة أكثر من المنهجيات الأخرى.

    اختيار المنهجية غير المناسبة سيتسبب بتكاليف و تأخير ليس له داع, و هناك العديد من المنهجيات التي تناسب مختلف المشاريع, ومن هذه المنهجيات منهجية “الشلال Waterfall” المعروفة, وهذه المنهجية تقسم المشروع البرمجي إلى 6 مراحل, وهي كالتالي:


    1. تحضير متطلبات النظام والبرنامج

    تحوي على جميع المهام الّتي يجب أن يقوم بها البرنامج.


    2. التحليل

    تحليل متطلبات البرنامج.


    3. التصميم

    تصميم البرنامج و تقسيمه لأجزاء مع تحديد الروابط بين تلك الأجزاء, وتقسم في بعض الأحيان لتصميم من مستوىً عالٍ و تصميم من مستوىً منخفض.


    4. البرمجة

    برمجة التصميم وتحويله لكود قابل للتنفيذ.


    5. الاختبار

    اختبار البرنامج والتأكد من أنه يطابق متطلبات البرنامج.


    6. التثبيت وإصلاح الأخطاء و المتابعة

    تثبيت البرنامج عند العميل وإصلاح الأخطاء في حال ظهورها.


    ومن نقاط ضعف هذه المنهجية كونها لا تتأقلم مع التغييرات, لذلك طور مديروا المشاريع ومطوروا البرمجيات منهجيات مختلفة لتتلاءم مع مشاريعهم, و من المنهجيات الأكثر مرونة منهجية Agile و التي غطّت الكثير من نقاط ضعف منهجية الشلال. يمكنك القراءة عن هذه المنهجيات والمنهجيات الأخرى مثل “التطوير المُقاد بالاختبار” وميزات كل منها بالتفصيل في مقالات أخرى.

     

    إدارة ملفات المشروع

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

    تتخلل عملية إدارة ملفات المشروع إدارة الإصدارات المختلفة للبرنامج وتسميتها، ويجب اتباع قواعد ثابتة في تسمية الإصدارات، و من القواعد المتعارف عليها “الإدارة الدلالية لنسخ البرمجيات Semantic Versioning“.

     

    أتمتة البناء

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

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

     

    الإختبارات

    عند الانتهاء من بناء البرنامج يجب القيام بعدة اختبارات تهدف للتأكد من خلو البرنامج من الأخطاء، ومن هذه الاختبارات:


    إختبار ألفا

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


    إختبار القَبول

    يأتي هذا الاختبار بعد اختبار ألفا، ويتم من قبل العميل للتأكد من أن البرنامج يقوم بجميع الوظائف المطلوبة منه.


    إختبار بيتا

    يتم هذا الاختبار في البيئة التي يفترض للبرنامج العمل فيها، و يكون هذا الاختبار قبل الإصدار النهائي للبرنامج.

     

    تجربة المستخدم

    ترتبط جودة المنتج ليس بقابليته للقيام بالمهام المطلوبة منه فحسب بل بتجربة المستخدم للبرنامج أيضاً, إذ أنّ صعوبة التعامل مع البرنامج تقلل من إنتاجية المستخدم مما يضرب أهمّ سببٍ لتطوير البرمجيات و هو زيادة الإنتاجية, و لا تنحصر تجربة المستخدم في سهولة الاستخدام فقط بل تشمل أيضاً مدى رضى المستخدم و شعوره تجاه المنتج. لذا فمن المهم إعطاء تصميم تجربة المستخدم بعض الأهمية أثناء تطوير البرنامج.

     

    متابعة البرنامج

    بعد الانتهاء من تسليم البرنامج تبقى آخر مرحلةٍ من حياته و هي إصلاح الأخطاء و المتابعة, و و تتلخص هذه المرحلة بمتابعة مستخدم البرنامج و معرفة الأخطاء التي تحدث و محاولة إصلاحها. تكلف عملية إصلاح المشاكل الكثير من الوقت و المال للشركات و الأفراد لذلك وجب وضع خطة قبل البدء بتطوير البرنامج لتسهيل كشف الأخطاء لأن الخطأ قد يكون في أي عملية تحدث في البرنامج, لذلك يلجأ المطورون في العادة لوضع نظام سجلات في البرنامج ليسجل رسائل الأخطاء البرمجية في ملف خاص (و أحياناً يقوم بتسجيل جميع عمليات المستخدم) ليسهل معرفة الخطأ ومعرفة كيف حدث, و تقوم بعض البرامج بإرسال تقارير دورية أو حسب رغبة المستخدم للشركة المطورة عن أداء البرنامج والأخطاء التي تحدث فيه.

    هكذا تكون عزيزي القارئ قد اطلعت على بعض النقاط المهمة في إدارة المشاريع البرمجية، و لا يجب إغفال وجود نقاط أخرى و وجود تفصيلات كثيرة للنقاط المذكورة.


    آخر تحديث: 12-12-2021

    الكاتب

    رامي عبدالله

    طالب جامعي سوري تخصص صيدلة. مهتم كثيراً بالتقنية و أدرس البرمجة ذاتياً كهواية و أحب مشاركة كل ما أتعلمه معكم لنشر هذا العلم الرائع في وطننا العربي و لتسهيل الطريق على المتعلمين الجدد.

    تعليقات 1

    أضف تعليق

    يجب تسجيل الدخول حتى تتمكن من إضافة تعليق أو رد.

    تقييم المقال

    لم تقم بتقييم المقال بعد!

    الدورات

    أدوات مساعدة

    الأقسام

    دورات
    مقالات أسئلة مشاريع كتب