09-10-12, 06:31 PM
2-2.المرحلة الثانية: التحليل Analysis
مرحلة التحليل هي إجابة للسؤال ماذا أريد أن اعمل؟ حيث تبدأ هذه المرحلة سرد جميع المتطلبات Requirements للمشروع. ويعقد مدير المشروع اجتماعات Meetings مع باقي أعضاء الفريق لتحديد المتطلبات. كما يمكن أن تضاف متطلبات أخرى من أشخاص خارج المشروع كالمستخدمين، أفكار من برامج أخرى، وقد تكون المتطلبات أيضا من مبرمجين في المشاريع الأخرى.
بعد معرفة جميع المتطلبات والتحقق منها، تبدأ عملية التحليل الفعلية وهي عبارة عن تخطيط منطقي Logical Plan لمحتويات المشروع، حيث توضع فيها تعريفات لجميع العناصر والشروط والقوانين التي تتبعها وكيفية التفاعل معها.
مثال:
لو كنت تقوم ببناء برنامج محاسبة فستبدأ بتعريفات العناصر:
العملية Transaction:
هي معاملة مادية تحمل قيمتين Credit و Debit، وتحمل تاريخ، ووصف، والشخص الذي قام بها.
الحساب Account:
يحتوي على مجموعة من العمليات Transactions.
...
...
بعد ذلك، قد تضع قوانين Rules بين هذه العناصر:
- يمكن للحساب أن يحتوي على حسابات فرعية.
- يشترط في كل عملية أن تنتمي إلى حساب.
- الحسابات المغلقة لا يمكن إضافة عمليات بها
- صلاحيات مختلف للمستخدمين (المشرف يستطيع أن .... و...، أما المستخدم فيمكن... و ...)
...
تتم مرحلة التحليل من قبل أكثر من شخص، وبعد الانتهاء، من المهم جدا جدا توثيقها في دليل منظم وتسميته بدليل التحليل Analysis Design.
يراجع هذا الدليل من قبل مدير المشروع والفريق، وبعد اعتماده وإجابة جميع الأسئلة والاستفسارات، يمكن البدء بكل جرأة إلى مرحلة التصميم.
برنامج Microsoft Word مفيد جدا لهذه المرحلة.
2-3. المرحلة الثالثة: التصميم Design
إن كانت مرحلة التحليل هي إجابة للسؤال ماذا أريد أن اعمل؟ فان مرحلة التصميم هي إجابة لسؤال كيف اعمل ما أريد؟
في هذه المرحلة، يبدأ فريق التطوير ومدير المشروع بالتصميم الأولى للمشروع. حيث يبدأ أولا بالتصميم الخارجي External Design والتصميم الداخلي Internal Design. في التصميم الخارجي يركز المصممون على عملاء المشروع، فلو كان العملاء مستخدمون، فسيكون جل تركيزهم على واجهة الاستخدام وتفصيل لكل شيء يراه المستخدم. أما إن كان العملاء من المبرمجين، فسيتم تحديد واجهات API للمبرمجين وتعريفها. أما التصميم الداخلي، فهو خاص بفريق التطوير وتتحدث عن التصاميم الداخلية والمكونة للمشروع.
بعد التصميم الأولي، يبدأ التصميم النهائي، حيث يتم تفصيل العناصر التقنية للتصاميم وكتابة جميع الوحدات البرمجية Modules، الفئات Classes ورسم أهرام الفئات Class Hierarchy، التركيبات Enums and Structures وغيرها، ويتم توثيقها وكتابة أهم دليل وهو دليل التصميم Design Guide. وعند الموافقة النهائية على هذا الدليل، يمكن البدء فورا بمرحلة الانجاز.
برنامجي Microsoft Visio و Microsoft Word مفيدة جدا لهذه المرحلة.
2-4. المرحلة الرابعة: الانجاز Implementation
هنا تبدأ مرحلة كتابة الشيفرات المصدرية والتي ما هي إلا تطبيق فعلي لما هو مكتوب في دليل التصميم. يبدأ مدير المشروع بتعريف المهام Tasks ومن ثم توزيعها على المشاركين. يفضل أن لا يقل عدد المشاركين لكل مهمة عن اثنين حتى يتم التحقق من صحة بنائها.
بيئة التطوير Visual Studio .NET 2003 هي التي ستكون مستخدمة.
2-5. المرحلة الخامسة: الإعدادات النهائية Finalizing
تشمل الاعدادات النهائية اللمسات الأخيرة التي يمكن تعديلها في المشروع. حيث يتم إجراء عمليات الاختبار Testing والتحقق من الكفاءة Optimization وتصدير كافة تقارير الشوائب Bug Reports.
بعد التأكد من سلامة المشروع وتحقيقه للهدف المطلوب، تبدأ مرحلة التجهيز النهائية وتوفير كافة المتطلبات الضرورية للمشروع ومن ثم حزمها Pack وإرسالها إلى الجهة المطلوبة والتي تكون مدير مشروع رئيسي آخر.
3. المشاركون
بشكل رئيسي، يمكن تقسيم المشاركين إلى 4 أصناف:
3-1. مدير المنتج Product Manager
وهو الشخص المسئول الأول والأخير عن المنتج النهائي وقد سبق الإشارة إليه.
3-2. مدير مشروع Project Manager
وهو مسئول عن المشروع المكلف فيه والمشاريع الفرعية التابعة له، لابد أن يكون لكل مشروع (سواء كان رئيسي أو فرعي) مدير مشروع. وتوزيع الهيكل الإداري يتبع نفس الهيكل الشجري للمشروع والمشاريع الفرعية التابعة له. كما انه مطالب بالتقارير الأسبوعية. وعقد الاجتماعات الدورية مع كافة أعضاء الفريق.
تتطلب خبرة فنية كبيرة لهذا الشخص.
3-3. مسئول Administrator
قد يعين مدير المنتج أو مدراء المشاريع مسئولون لأعمال تتعلق بشكل غير مباشر لمراحل بناء المشروع أو المنتج. من هذه الأعمال إدارة المشاركين وتنظيم وسائل الاتصال بينهم، مراقبة الانجازات، توفير منصات العمل تشمل ايضا وسيلة الاتصال –كموقع على الانترنت- تعرض فيه كافة الاجتماعات والمستندات المطلوبة. قد يتبع المسئول مشروع معين أو المنتج ككل.
3-4.مشارك Participant
سيحتاج –بكل تأكيد- مدير المشروع إلى فريق تطوير يقوم بالمشاركة والمساعدة في بناء مشروعه. مدير المشروع هو المسئول الأول والأخير عن تكوين هذا الفريق وتعريف وتوزيع المهام بين أعضائه. قد يكون هذا المشارك مبرمج، مصمم، مدقق لغوي، مختبر...الخ.
3-5.الهيكل الإداري
من اجل تنظيم أكثر وإدارة أفضل، لابد من جميع المشاركين الالتزام بالتنظيم الإداري وتوزيع الفرق كما سيكون في الهيكل الإداري، وهذا الحل أفضل بكثير لتوزيع الصلاحيات وتحمل المسئوليات بين كافة أعضاء فريق التطوير، وهو الأسلوب المستنتج من حديث الرسول صلى الله عليه وسلم ( كلكم راع وكل راع مسئول عن رعيته).
فعمليات الاتصال والاتفاق والتفاهم تكون في مجال الهيكل الإداري، فالعضو المشارك في مشروع-1 ليس له علاقة بمدير مشروع-2، كما أنا مدير المنتج علاقته محصورة بمدراء المشاريع الرئيسية، كذلك الحال مع مدير مشروع-3 تكون علاقته مع مدراء المشاريع الفرعية التابعة له وليس المشاركين فيها. فالكل سيكون مشغول وتفكيره محصور في المهمة التي ينجزها.
4. ضرورة الالتزام بالمعايير
من أهم العناصر التي يغفل عنها الكثير هو وضع معايير قياسية Specification للمشروع. على جميع الأعضاء –بما فيهم مدير المنتج- الالتزام بهذه المعايير التزاما مطلقا حتى نحقق التوافقية وتوحيد لغة التفاهم بين سائر أفراد فريق التطوير.
يوجد نوعان من المعايير، المعايير المشتركة Shared Specifications والمعايير الخاصة Private Specifications. المعايير المشتركة هي معايير تشمل كافة عناصر المنتج ومشاريعه المختلفة، أما المعايير الخاصة فهي خاصة بمشروع معين لا يشترط تطبيقها في مشروع آخر.
من أمثلة المعايير المشتركة، معايير تحديد أساليب كتابة التقارير الأسبوعية، كتابة أدلة التحليل Analysis Guide والتصميم Design Guide تشمل اللغة والتنسيق ومحتوياتها. كما يمكن وضع معايير لتعريف المهمة Task وكيفية تقييم أدائها، ومعايير للاختبارات Testing، ومعايير للمصطلحات Glossaries وغيرها.
ومن أمثلة المعايير الخاصة معايير لتوحيد واجهة الاستخدام وتحديدها كأشرطة الأدوات Toolbars، النوافذ Windows، نوافذ المعالجات Wizards. أو معايير لكتابة الشيفرات المصدرية Source Code كشروط التسمية، طريقة كتابة التعليقات Comments، تسمية ملفات المشروع Project Files وغيرها.
"إن معايير المشروع هي كالقيم Values في حياة الإنسان، والتي إن تم خرقها فسد المشروع"
مرحلة التحليل هي إجابة للسؤال ماذا أريد أن اعمل؟ حيث تبدأ هذه المرحلة سرد جميع المتطلبات Requirements للمشروع. ويعقد مدير المشروع اجتماعات Meetings مع باقي أعضاء الفريق لتحديد المتطلبات. كما يمكن أن تضاف متطلبات أخرى من أشخاص خارج المشروع كالمستخدمين، أفكار من برامج أخرى، وقد تكون المتطلبات أيضا من مبرمجين في المشاريع الأخرى.
بعد معرفة جميع المتطلبات والتحقق منها، تبدأ عملية التحليل الفعلية وهي عبارة عن تخطيط منطقي Logical Plan لمحتويات المشروع، حيث توضع فيها تعريفات لجميع العناصر والشروط والقوانين التي تتبعها وكيفية التفاعل معها.
مثال:
لو كنت تقوم ببناء برنامج محاسبة فستبدأ بتعريفات العناصر:
العملية Transaction:
هي معاملة مادية تحمل قيمتين Credit و Debit، وتحمل تاريخ، ووصف، والشخص الذي قام بها.
الحساب Account:
يحتوي على مجموعة من العمليات Transactions.
...
...
بعد ذلك، قد تضع قوانين Rules بين هذه العناصر:
- يمكن للحساب أن يحتوي على حسابات فرعية.
- يشترط في كل عملية أن تنتمي إلى حساب.
- الحسابات المغلقة لا يمكن إضافة عمليات بها
- صلاحيات مختلف للمستخدمين (المشرف يستطيع أن .... و...، أما المستخدم فيمكن... و ...)
...
تتم مرحلة التحليل من قبل أكثر من شخص، وبعد الانتهاء، من المهم جدا جدا توثيقها في دليل منظم وتسميته بدليل التحليل Analysis Design.
يراجع هذا الدليل من قبل مدير المشروع والفريق، وبعد اعتماده وإجابة جميع الأسئلة والاستفسارات، يمكن البدء بكل جرأة إلى مرحلة التصميم.
برنامج Microsoft Word مفيد جدا لهذه المرحلة.
2-3. المرحلة الثالثة: التصميم Design
إن كانت مرحلة التحليل هي إجابة للسؤال ماذا أريد أن اعمل؟ فان مرحلة التصميم هي إجابة لسؤال كيف اعمل ما أريد؟
في هذه المرحلة، يبدأ فريق التطوير ومدير المشروع بالتصميم الأولى للمشروع. حيث يبدأ أولا بالتصميم الخارجي External Design والتصميم الداخلي Internal Design. في التصميم الخارجي يركز المصممون على عملاء المشروع، فلو كان العملاء مستخدمون، فسيكون جل تركيزهم على واجهة الاستخدام وتفصيل لكل شيء يراه المستخدم. أما إن كان العملاء من المبرمجين، فسيتم تحديد واجهات API للمبرمجين وتعريفها. أما التصميم الداخلي، فهو خاص بفريق التطوير وتتحدث عن التصاميم الداخلية والمكونة للمشروع.
بعد التصميم الأولي، يبدأ التصميم النهائي، حيث يتم تفصيل العناصر التقنية للتصاميم وكتابة جميع الوحدات البرمجية Modules، الفئات Classes ورسم أهرام الفئات Class Hierarchy، التركيبات Enums and Structures وغيرها، ويتم توثيقها وكتابة أهم دليل وهو دليل التصميم Design Guide. وعند الموافقة النهائية على هذا الدليل، يمكن البدء فورا بمرحلة الانجاز.
برنامجي Microsoft Visio و Microsoft Word مفيدة جدا لهذه المرحلة.
2-4. المرحلة الرابعة: الانجاز Implementation
هنا تبدأ مرحلة كتابة الشيفرات المصدرية والتي ما هي إلا تطبيق فعلي لما هو مكتوب في دليل التصميم. يبدأ مدير المشروع بتعريف المهام Tasks ومن ثم توزيعها على المشاركين. يفضل أن لا يقل عدد المشاركين لكل مهمة عن اثنين حتى يتم التحقق من صحة بنائها.
بيئة التطوير Visual Studio .NET 2003 هي التي ستكون مستخدمة.
2-5. المرحلة الخامسة: الإعدادات النهائية Finalizing
تشمل الاعدادات النهائية اللمسات الأخيرة التي يمكن تعديلها في المشروع. حيث يتم إجراء عمليات الاختبار Testing والتحقق من الكفاءة Optimization وتصدير كافة تقارير الشوائب Bug Reports.
بعد التأكد من سلامة المشروع وتحقيقه للهدف المطلوب، تبدأ مرحلة التجهيز النهائية وتوفير كافة المتطلبات الضرورية للمشروع ومن ثم حزمها Pack وإرسالها إلى الجهة المطلوبة والتي تكون مدير مشروع رئيسي آخر.
3. المشاركون
بشكل رئيسي، يمكن تقسيم المشاركين إلى 4 أصناف:
3-1. مدير المنتج Product Manager
وهو الشخص المسئول الأول والأخير عن المنتج النهائي وقد سبق الإشارة إليه.
3-2. مدير مشروع Project Manager
وهو مسئول عن المشروع المكلف فيه والمشاريع الفرعية التابعة له، لابد أن يكون لكل مشروع (سواء كان رئيسي أو فرعي) مدير مشروع. وتوزيع الهيكل الإداري يتبع نفس الهيكل الشجري للمشروع والمشاريع الفرعية التابعة له. كما انه مطالب بالتقارير الأسبوعية. وعقد الاجتماعات الدورية مع كافة أعضاء الفريق.
تتطلب خبرة فنية كبيرة لهذا الشخص.
3-3. مسئول Administrator
قد يعين مدير المنتج أو مدراء المشاريع مسئولون لأعمال تتعلق بشكل غير مباشر لمراحل بناء المشروع أو المنتج. من هذه الأعمال إدارة المشاركين وتنظيم وسائل الاتصال بينهم، مراقبة الانجازات، توفير منصات العمل تشمل ايضا وسيلة الاتصال –كموقع على الانترنت- تعرض فيه كافة الاجتماعات والمستندات المطلوبة. قد يتبع المسئول مشروع معين أو المنتج ككل.
3-4.مشارك Participant
سيحتاج –بكل تأكيد- مدير المشروع إلى فريق تطوير يقوم بالمشاركة والمساعدة في بناء مشروعه. مدير المشروع هو المسئول الأول والأخير عن تكوين هذا الفريق وتعريف وتوزيع المهام بين أعضائه. قد يكون هذا المشارك مبرمج، مصمم، مدقق لغوي، مختبر...الخ.
3-5.الهيكل الإداري
من اجل تنظيم أكثر وإدارة أفضل، لابد من جميع المشاركين الالتزام بالتنظيم الإداري وتوزيع الفرق كما سيكون في الهيكل الإداري، وهذا الحل أفضل بكثير لتوزيع الصلاحيات وتحمل المسئوليات بين كافة أعضاء فريق التطوير، وهو الأسلوب المستنتج من حديث الرسول صلى الله عليه وسلم ( كلكم راع وكل راع مسئول عن رعيته).
فعمليات الاتصال والاتفاق والتفاهم تكون في مجال الهيكل الإداري، فالعضو المشارك في مشروع-1 ليس له علاقة بمدير مشروع-2، كما أنا مدير المنتج علاقته محصورة بمدراء المشاريع الرئيسية، كذلك الحال مع مدير مشروع-3 تكون علاقته مع مدراء المشاريع الفرعية التابعة له وليس المشاركين فيها. فالكل سيكون مشغول وتفكيره محصور في المهمة التي ينجزها.
4. ضرورة الالتزام بالمعايير
من أهم العناصر التي يغفل عنها الكثير هو وضع معايير قياسية Specification للمشروع. على جميع الأعضاء –بما فيهم مدير المنتج- الالتزام بهذه المعايير التزاما مطلقا حتى نحقق التوافقية وتوحيد لغة التفاهم بين سائر أفراد فريق التطوير.
يوجد نوعان من المعايير، المعايير المشتركة Shared Specifications والمعايير الخاصة Private Specifications. المعايير المشتركة هي معايير تشمل كافة عناصر المنتج ومشاريعه المختلفة، أما المعايير الخاصة فهي خاصة بمشروع معين لا يشترط تطبيقها في مشروع آخر.
من أمثلة المعايير المشتركة، معايير تحديد أساليب كتابة التقارير الأسبوعية، كتابة أدلة التحليل Analysis Guide والتصميم Design Guide تشمل اللغة والتنسيق ومحتوياتها. كما يمكن وضع معايير لتعريف المهمة Task وكيفية تقييم أدائها، ومعايير للاختبارات Testing، ومعايير للمصطلحات Glossaries وغيرها.
ومن أمثلة المعايير الخاصة معايير لتوحيد واجهة الاستخدام وتحديدها كأشرطة الأدوات Toolbars، النوافذ Windows، نوافذ المعالجات Wizards. أو معايير لكتابة الشيفرات المصدرية Source Code كشروط التسمية، طريقة كتابة التعليقات Comments، تسمية ملفات المشروع Project Files وغيرها.
"إن معايير المشروع هي كالقيم Values في حياة الإنسان، والتي إن تم خرقها فسد المشروع"
