09-10-12, 06:29 PM
كاتب الموضوع : Athman
مقال رائع للأستاذ تركي العسيري أحببت أن يستفيد منه الأعضاءاقتباس:
[TABLE="width: 100%"]
[TR]
[TD="class: alt2"]
بسم الله الرحمن الرحيم
دليلك السريع للعمل في فرق التطوير
وإدارة المشاريع الكبيرة
1. المنتج والمشاريعدليلك السريع للعمل في فرق التطوير
وإدارة المشاريع الكبيرة
في البداية عليك التفريق بين المصطلحين (المنتج (Product و(المشروع Project). فالمنتج هو التطبيق Application أو البرنامج Program الكامل من أوله إلى أخره، وهو الذي نهدف من تحقيقه وبنائه. تكون البداية بتعريف التطبيق، وتحديد مداه Scope والهدف الذي نريد الوصول إليه Objective، فعمل شيء دون هدف ليس له أي فائدة.
أما المشروع فهو المكون للمنتج، أي إن كل منتج يحتوي على مجموعة من المشاريع تعضد بعضها بعضا حتى تكون التطبيق. بعض هذه المشاريع مستقلة، والبعض الآخر متكاملة مع مشاريع أخرى. كما يمكن أن تكون مشاريع فرعية من مشاريع رئيسية.
1-1. اسم المنتج
اسم المنتج هو الاسم الذي يميز المنتج عن غيره، وفي العادة يكون للمنتج أكثر من اسم:
الاسم الكودي Code Name:
وهو الاسم الابتدائي والذي يعطى للتطبيق وهو في مرحله التطوير قبل الخروج من المعامل Labs.
الأسماء التجريبية Beta Name:
مع صدور أي نسخة تجريبية Beta من التطبيق، يتم إعطائها أيضا اسم خاص.
الاسم النهائي (اسم المنتج) Product Name:
وهو الاسم النهائي للمنتج والذي يسوق به والمرشح للنزول إلى الأسواق.
1-2. رقم الإصدار Version Number
يتكون رقم الإصدار من ثلاث خانات تفصل بينها فاصلة:
Major.Minor.BuildNumber
في الخانة الأولى (Major) يوضع فيها رقم الإصدار الرئيسي للمنتج وهذا الرقم لا يتغير ابدآ من بداية التطوير حتى التوزيع والتسويق. ويمكن تغييره لاحقا عندما تنوي تطوير نسخة جديدة من البرنامج ولكن بعد صدور النسخة النهائية للأسواق –وليس قبل ذلك.
في الخانة الأخرى (Minor) تبدأ بالرقم 1 وتزيد في كل مرة يجري فيها تعديل كبير للتطبيق وهو في مرحلة التطوير، ويتم زيادة هذا الرقم أيضا عند إضافة أي وحدة برمجية Module أو ملف إضافي للبرنامج.
أما الخانة الأخيرة (Build Number) فسيتم زيادتها في كل عملية ترجمة Compiling للبرنامج وفي كل مرة يتم تنفيذ البرنامج عليها.
أمثلة:
1.44.3424
1.44.3425
1.45.1
1-3. المشاريع
كما سبق الإشارة إليه، المنتج يتكون من مجموعة من المشاريع والمتفرعة بشكل جذري. يتم في البداية تحديد المشاريع الرئيسية للمنتج، مع العلم أن هذه المشاريع ليست ثابتة. أي انه يمكن إضافة مشاريع فرعية أخرى أو إعادة أو تغيير فيها. ولكن من المهم جدا جدا عدم تغيير المشاريع الجذرية Root Projects فهي الأركان الأساسية التي يعتمد عليها المنتج.
فمثلا، عندما تنوى تصميم برنامج لإدارة قواعد البيانات، فستبدأ بوضع المشاريع الرئيسية وهما اثنان: مشروع بناء الخادم Server ومشروع بناء العميل Client:
برنامج قواعد البيانات
1-برنامج الخادم
2-برنامج العميل
مشروع الخادم كبير جدا، وسيقسم بلا شك إلى مجموعة من المشاريع الفرعية، قد تكون شيئا مثل:
1. الخادم
1-1 إدارة الخادم الرئيسي
1-2 إدارة المستخدمين
1-3 إدارة قواعد البيانات
1-3-1 عمليات دخل وخرج الملفات
1-3-2 عمليات إدارة الذاكرة
1-3-3 عمليات خدمة جمل الاستعلام SQL
ونفس الشيء يكون للمشروع الرئيسي الآخر (العميل Client) مع العلم دائما أن هذه المشاريع ليست ثابتة بل يمكن أن تتغير وتضاف مشاريع إضافية فرعية.
1-4. إدارة المنتج والمشاريع
المنتج –كما سبق الإشارة إليه- كيان واحد، شيء واحد، يقوده شخص واحد يسمى مدير المنتج Product Manager أو مدير البرنامج Program Manager. وهو المسئول الأول والأخير عن المنتج. أما المشاريع فكل مشروع يديره شخص يسمى مدير المشروع Project Manager وهو المسئول الأول والأخير عن المشروع الخاص به.
كيف سيتم بناء هذه المشاريع؟ هذا ما ستفصل فيه الفقرة 2. مراحل بناء المشروع. ولكن من المهم وجود 5 عناصر أساسية قبل البدء في أي مشروع هي:
1. اسم المشروع:
وهو اسم رمزي للمشروع يكون دائما فريد Unique أي لا يتكرر في أي مشاريع أخرى.
2. رقم المشروع:
وهو رقم يتبع التوزيع الشجري للمشاريع حتى تسهل معرفتها، فلو عدنا إلى المثال السابق لمشاريع برنامج قواعد البيانات، يمكننا ترقيمها بهذا الشكل:
1. الخادم
1-1 إدارة الخادم الرئيسي
1-2 إدارة المستخدمين
1-3 إدارة قواعد البيانات
1-3-1 عمليات دخل وخرج الملفات
1-3-2 عمليات إدارة الذاكرة
1-3-3 عمليات خدمة جمل الاستعلام SQL
2. العميل
...
...
3. وصف المشروع:
وهو وصف نصي مختصر للمشروع يعرض الهدف منه.
4. مدير المشروع:
وهو الشخص المسئول عن المشروع.
5. ملحقات المشروع:
وهي عناصر وملفات تابعة للمشروع، كدليل التحليل، دليل التصميم، الشيفرات المصدرية، رسائل الاجتماعات، التقارير الأسبوعية...الخ.
1-5. البدء في بناء المشاريع
بعض المشاريع يمكن البدء فيها فورا، ولكن البعض الآخر تكون متطلب لمشاريع أخرى Required Projects. مما يعني، انه لابد من الانتهاء من هذا المشروع قبل البدء في مشروع آخر.
2. مراحل بناء المشروع
تختلف مراحل بناء المشروع من مشروع إلى آخر وذلك يعتمد على نوعية المشروع وطريقة بناءه، ولكن (بشكل عام) تكون خمس مراحل. المصيبة الكبرى والخطأ العظيم الذي يقع فيه اغلب المبرمجين العرب هو أنهم –من الحماس الزائد- يقومون بكتابة الشيفرات المصدرية دون تخطيط ولا حتى تصميم، وهذا شيء لن يحدث إلا بعد مرور وقت طويل يقضيه المشاركون في تبادل المستندات والمخططات. أي باختصار:
لا تكتب سطر واحد من الشيفرات المصدرية وآنساها ولا تفكر فيها إلا لاحقا عن مرحلة الانجاز Implementation
أخيرا، ضع في عين الاعتبار أن هذه المراحل مسارها لا يشترط أن يكون متسلسل فقط، بل يمكن أن يكون دائري. بمعنى، عند الوصول إلى المرحلة 3 يمكن العودة إلى المرحلة السابقة والبدء من جديد.
2-1. المرحلة الأولى: التخطيط Plan
في هذه المرحلة يتم فيها تعريف المشروع ووضع العناصر الأساسية له، كرقمه، الوصف، والمسئول عنه. كما يحدد فيها مدى المشروع Project Scope ووضع مخطط زمني Time Lines والمواعيد النهائية Dead Lines للمراحل المختلفة من المشروع.
يتبع مدير المشروع أسلوب التخمين Forecasting في تحديد الأوقات المستغرقة للانتهاء من المراحل المختلفة، وبعد ذلك عليه أن يحسب الأوقات الحقيقة Actual Times التي استغرقها حتى يحدد الفرق ويحسب نسبة الدقة.
في هذه المرحلة أيضا، قد يكتشف المسئول انه بحاجة إلى مشاريع فرعية ويقسم مشروعه الأساسي، وبذلك يعين لكل مشروع فرعي مدير مشروع وستبدأ عملية بنائه من المرحلة الأولى التخطيط وبدء سلسلة المراحل من جديد -ولكنها خاصة بالمشروع الفرعي.
برنامج Microsoft Project مفيد جدا لهذه المرحلة. [/TD]
[/TR]
[/TABLE]