كما تحدث في المقالة السابقة فإن هذه السلسة هدفها تقديم محتوي تطبيقي بعيد عن المحتوى النظري , سنتحدث في اول مقالة عن الخطوات الرئيسية المتبعة في تطوير التطبيقات او ما يسمى بـ development cycle life , تترجم العديد من الكتب العربية development cycle life بـ دائرة حياة التطبيقات !! وهو تعريب ليس له اي علاقة بالواقع ( كعادة طبعا ) , من وجهة نظري ربما تكون صحيحة او خاطئة يمكن تعريب الجملة السابقة بشكل افضل إلى مسار عملية التطوير , الصورة :

Requirement Analysis , كتابة المتطلبات :
للأسف و على الرغم من كون هذه الخطوة هيا الاهم على الطلاق إلى ان العديد من المنظمات و فرق التطوير لا يولون هذه الخطوة هذه الدرجة من الاهمية , بل تصل درجة الحماقة في بعض المنظمات و بعض المطورين بأن يقوموا بكتابة المتطلبات بأنفسهم !! إن فكرة ان تقوم بعمل شيء هو ليس من مجال تخصصك بحذ ذاته حمقاء كمطور ليست مهمتك ابدا تجميع المعلومات او التواصل مع العميل بأي شكل من الاشكل , هناك اشخاص كرسو الكثير من حياتهم و وقتهم و جهدهم لدراسة علوم تحليل النظم و من غير الصحيح ان تلقي بكل هذا الكم من الجهد المبذول من قبلهم عرض الحائط فقط كونك تريد توفير بعض المال على المنظمة .
ان محلل النظم هو اهم شخص في سلسلة تطوير التطبيقات , لما يتمتع به هذا الشخص من اسلوب منطقي يمكنه من فهم العميل و تحليل متطلباته و كتابة ملفات المتطلبات و فق تنظيم معين متفق عليه بحيث يستطع اي مطور قراءة هذا الملف و فهم ماذا يريد العميل ان يفعل , و على الرغم من اهمية هذا الشخص إلى انه في الحقيقة أكثر الاشخاص حظوظا اقل في العثور على العمل و على راتب مناسب لحجم المهمات التي تقع عليه . ان محلل النظم يوفر عليك الكثير من الجهد و الوقت المبذول لحل مشاكل عدم التوافق و المقصود هنا عدم توافق المنتج النهائي مع متطلبات العميل .
يقوم محلل النظم بإعداد ملفين أول هو business requirements document و يعرف اختصارا بـ BRD , حيث يحدد هذا الملف المتطلبات الرئيسية الأولى و الخطوط العريضة و الافكار العامة دون الخوض في تفاصيل كيف تتم هذه النقاط و من اين يتم تجميع او الحصول او نوع المعلومات المقدمة او كميتها . بعد كتابة ملف BRD يقوم بكتابة ملف يختصر بـ SRD و هو specific requirements document حيث يتولى هذا الاخير تحديد متطلبات المشروع التفصيليه الواردة في ملف BRD متطلب متطلب بما في ذلك المتطلبات الفرعية لكل متطلب رئيسي و يحدد في هذا الملف مسار تدفق البيانات و كيفية معاجلتها و من اين يتم الحصول عليها و كمياتها و المستخدمين المخولين بالحصول عليها و مستوى الصلاحيات الممنوحة لهم و هكذا من هذه التفاصيل .
ان محلل النظم ليس مطورا , انما هو شخص متمرس على اساليب الحوار و بالعادة شخص اجتماعي و قادر على خلق الحوار مع العميل و الخروج بأدق التفاصيل الممكنة عن التطبيق الذي امامi , وهو نقيط شخصية المطور في العادة التي تتمتع بالانطوائية و الانعزال .
Design
بعد حصولك على ملف BRD و الـ SRD من BA او Business analysis تأتي خطوت التصميم للمشروع , هي خطوة اخرى مظلومة من قبل المطورين و لا تولى اهمية تذكر لا من قريب و لا من بعيد , لا اقصد بالتصميم هنا الواجهات و خلافه بل ما اقصده هو التخطيط ماذا تريد ان تفعل !! إن القفز مباشرة إلى الشفرة و بدء بكتابة الاكود سينتح عنه عواقب وخيمة لاحقا اول هذه العواقب عدم التوثيق و بالتالي الصعوبة في تنقيح و صيانة الشفرة او تطويرها و تغير المتطلبات لاحقا و تحديث المشاريع إلى مشاريع اكبر , " هناك خرافة تقول بأن على المطور توثيق تطبيقاته بعد كتابتها و هذا غير صحيح فأنت لا ترسم مخطط البناية السكنية بعد الانتهاء من بنائها ايها الاحمق !! " ريتشد ستولمن الاب الروحي للمصادر الحرة .
لا يمكن تشيد السفن بدون المخططات المسبقة , شخصيا لا اعلم حقا لماذا يرفض المطورين هذه الخطوة !! و يقفزون مباشرة إلى بناء سفينة موجوده في مخيلتهم و لا يستطيع ان يراها احد سواهم حتى ينتهي هذا التابعي الجليل من المشروع .
ان عملية تصميم المشروع يجب ان تأخذ بعين الاعتبار البيانات التالية :
-
المدة المتوقعة للإصدار التجريبي للمشروع .
-
تصميم قاعدة البيانات .
-
تحديد مداخل و مخارج البيانات في التطبيق .
-
الواجهة التجريبية .
-
تحديد خصائص المتعلقة بالمشروع .
-
تحديد المصادر الخارجية التي ربما تحتجها اثناء عملية التطوير .
لنتحدث الأن عن كل خطوة على حدة :
المدة المتوقعة للإصدار التجريبي
الاصدار التجريبي هو النسخة الأولى من التطبيق التي يراجعها العميل لتأكد من تحقق جميع المتطلبات المطلوبة في ملف BRD , يجب عليك اثناء تحديد المدة التجريبية ان تأخذ بعين الاعتبار النقاط التالية :
-
تحديد النقاط التي تعتبر مبهمة نوعا ما لديك : بمعنى اخر تحديد النقاط التي لم تسبق العمل بها من قبل و تحتاج منك أن تتعلم تقنية جديدة او لغة جديدة , و في هذه الحالة عليك ان تقيم نفسك كم من الزمن تحتاج حتى تنهي هذه النقاط .
-
تحديد النقاط التي تعتبر بسيطة : و المقصود بها النقاط التي يمكن ان تنجزها مجتمعة خلال فترة زمنية بسيطة .
-
يجب عليك ايضا اضافة المدة الزمنية المتوقعة لتوفير متطلبات قد يحتاجها تطبيقك مثل موارد خارجية او اجهزة جديد او سيرفرات بنظام معين او مشابه و هذا التقييم يختلف من منظمة إلى خر كلا على حسب سرعة توفير هذه الموارد .
تصميم قاعدة البيانات
حيث تسرد في هذه النقطة تصورك لقاعدة البيانات و هو تصور النهائي طبعا للعلاقة الكائنات بعضها ببعض و كيف ترابطها في النظام .
تحديد مداخل و مخارج البيانات في التطبيق
في هذه النقطة يتم تحديد نقطة البداية للمشروع و مسار البيانات كلا على حده و علاقات كل كائن بأخر او ما يسمى بـ Data Flow , هناك هدف اخر من هذ الخطوة وهو حماية التطبيق و زيادة الأمان ! , فعندما تعرف كم نافذة في منزلك و كم باب و نافذة لجهاز التكيف , تستطيع عندها ان تحدد المناطق التي من الممكن ان يتسلل منها الصوص لمنزلك و بتالي تقوم بحمايتها .
الواجهة التجريبية
او ما يعرف بـ prototype , هناك تقوم بإنشاء واجهات تجريبية و عادة ما يتم انشاء بعض الاحداث المختلقة لكي يعرف المستخدم شكل الواجهة و كيفية التعامل و شكل التطبيق بشكل عام , من شأن هذه الخطوة ان ترسم الملامح العامة لشكل البرنامج في ذهنك و بالتالي تسهل عليك عملية بناء التطبيق بشكل اكبر كون اصبح لديك تصور مسبق لما تريد بنائه .
تحديد الخصائص المتعلقة بالمشروع
و هنا يتم تحديد اعدادات التطبيق العامة و كيفية الوصول لها و امكان الملفات و تواجدها و صيغتها و انواع المعالجات التي تتم عليها , من شان هذه الخطوة توفير الوقت و الجهد لمن يتولى التطبيق من بعدك فعوضا عن البحث من اين تم تحميل هذه البيانات او هذا الملف او اين يتم حفظ هذا المجلد و ما إلى ذلك يستطيع المطور القادم مباشرة العمل , او ربما انت مستقبلا .
تحديد المصادر الخارجية للمشروع
و هنا تقوم بسرد كل references التي اعتمدت عليها من الخارج وتحدد رقم الاصدار و الشركة و تاريخ الاصدار و نبده مختصرة على عنها و طريقة عمليها و كيف تعمل و تقوم بكتابة الشفرات التجريبية لطريقة استخدامها .
Implementation , عملية التطوير :
بعد الانتهاء و تحديدك للمدة المتوقعه لإنجاز المشروع و كتابتك لمخططات التطبيق كاملة و تقوم بعملية كتابة الشفرة مع المحافظة على التوثيق في كل جزء و التقيد التام لمخطط الموضوع و كتابة التعليقات و تحديث المخطط ان احتجت إلى ذلك , يصاحب عملية التطوير خطوة اخرى و هو عملية integrated test و هو الاختبار الذي يقوم المطور بعملية لتأكد من أكل شيء يعمل حسب المطلوب .
Testing , الاختبار :

وهو يختلف تمام عن الاختبار الخاص بالمطور , و يحرم على المطور القيام به بأي شكل من الاشكال و يجب ان لا تتم عملية الاختبار نهائية على جهاز المطور او على اي جهاز تتواجد بيه مكونات بيئية تطوير و ان يحاكي جهاز الاختبار قدر المستطاع بيئة العميل , و يجب ان يخصص له فريق مستقل بذاته , و يجب على هذا الفريق ان يكون مقسما إلى شخصين على الاقل :
المستخدم العادي :
حيث تولى له مهمة كتابة التعليقات على الواجهات و التأكد من ان الروابط و الازرار تعمل و دقة صور التقيد تصميم و ما الى ذلك و التأكد من النتائج سواء المدخلة او المخرجة , يجب ان لا يتمتع هذا الشخص بأي معرفة تقنية تذكر و ان تكون حدود معرفته مقصورة على استخدم الحاسب الألى و بالتالي ستحصل على اكثر النتائج تقيما خصوصا فيما يتعلق بقابلية الاستخدام.
مسؤول الأمان :
يتولى هذا الشخص تحديد مدى تقيد التطبيق بمستويات الامان المطلوبة منه , و تقديم تقارير بالثغرات الممكنة في التطبيق , مع طريقة معالجتها .
اخيرا عملية الانتاج
لا علاقة لك كمطور بهذه الخطوة بأي شكل من الاشكال , و يجب ان يتم تثبيت التطبيق او نشهره على IIS من قبل فريق اخر و الهدف من كونه فريق اخر هو حماية التطبيق نفسه منك ! خصوصا اذا كان التطبيق يتعامل مع بيانات حساسه .
ثم تعود مجددا إلى الخطوة رقم واحد اذا اراد العميل تغير متطلب معين , فعليك العودة من جديد كتابة BRD تقديم المدة , تصميم ثم التطوير و اخيرا الاختبار , المقالة القادمة سوف يقوم بكتابها BA و ليس مطور , و الهدف هو التعرف كيف تتم كتابة ملفات الـ BRD و غيرها و كيف تتم عملية المناقشة بين العميل و الـ BA .