ايه أحسن طريقة فى إدارة المشروعات ؟
Posted: 17 Oct, 2016
إدارة المشروعات
إدارة المشروعات موضوع من أكثر الموضوعات دراسة، اللي هو اسمه Project Management، أنا هتكلم هنا عن إدارة المشروعات من الناحية التقنية، في أكتر من موديل تقدر تستخدمهم فى إدارة المشروعات بتاعتك، أشهرهم من حيث الإستخدام طريقة اسمها Waterfall أو الشلال، ودي معناها إن المشروع بتاعك هيمر على خمس مراحل أساسية، اللى هي التحليل Analysis والتصميم Design والتطبيق Implementation والإختبار Testing والإنهاء Production.
المرحلة الأولى
وهى مرحلة التحليل وهي ان انا هقعد مع العميل وهعرف هو عايز ايه بالظبط من السيستم، هسمع منه كل الكلام اللي بيقوله، وهحول الكلام ده إلى ملفات يستفيد بيها المبرمج اللي بعدي.
المرحلة الثانية
وهي مرحلة التصميم، والتصميم هنا مش معناه Graphic Design، التصميم هنا معناها System Design، او تصميم ملفات النظام وإزاي الملفات دي هتتعامل مع بعضها، وايه طريقة البرمجة اللي هستخدمها.
المرحلة الثالثة
وهي التطبيق، بناءاً بقى على ناتج مرحلة التصميم والتحليل، هختار لغة البرمجة اللي هطبق بيها وهبدأ انفذ بقى المشروع، وطبعا دي اطول مرحلة في المشروع كله.
المرحلة الرابعة
وهي اختبار المشروع من خلال شوية معايير وهل هو بينفذ الوظيفة المطلوبة منه من حيث الشكل والتنفيذ والمضمون.
المرحلة الخامسة والأخيرة
وهو التحول إلى Production، ومن ثم اختبار الـ Production ده.
كل مرحلة من دول مش هقدر ادخل فيها إلا لما اكون انتهيت تماماً من المرحلة اللي قبلها، يعني مش هقدر ادخل على مرحلة التطبيق إلا لما اكون انتهيت تماما من مرحلة التصميم Design، وهكذا مع باقي المراحل.
ما الفرق بين HTML4 و HTML5؟ وما هى مميزات HTML5؟
السؤال بقى هل هو ده احسن موديل ممكن اتعامل بيه في إدارة المشروعات؟
علشان نجاوب على السؤال ده لازم نعرف مميزات وعيوب النظام ده
هبدأ بمميزات النظام ده، اهم ميزة في النظام ده اللي هي في نفس الوقت عيب، إن كل مرحلة مش هينفع تبدأ إلا لو خلصت المرحلة اللي قبلها، بالشكل ده أنا ضامن ان السيستم معموله تحليل كامل وتصميم كامل بشكل كويس قبل بداية المشروع.
العيوب بقى للسيستم ده كتيرة، اولها واللي احنا ذكرناه قبل كده ان كل مرحلة مش هتبدأ إلا لما اخلص المرحلة اللي قبلها، وده معناه إن المبرمج مش هيبدأ يشتغل إلا لو المرحلتين اللي قبليه يكونوا خلصانين تماماً، طبعاً ده مضيعة للوقت.
العيب الثاني بقى والخطير، وهو ان العميل مش هيشوف حاجة خالص إلا مع نهاية المشروع، مفيش دخول للعميل في اي مرحلة من مراحل المشروع لأنه بالطبع مش هيفهم حاجة، وده مشكلته بالظبط ان في نهاية المشروع لو العميل فوجئ بإن مش ده اللي طلبه، هتبقى مصيبة كبيرة جداً، اللي احنا هنهد المشروع من أوله لآخره.
علشان الأسباب دي، في نظام تاني معظم الناس شغالين بيه دلوقتي، اللي هو اسمها Agile، فكرة الـ Agile عموماً، إني مش لازم اكون عارف ١٠٠٪ من تفاصيل المشروع قبل ما يبدأ، إحنا هنقسم المشروع لمراحل متسلسلة، كل مرحلة من دول هنعتبرها مشروع لوحده وهنطبق عليه waterfall موديل بس لكل جزء من المشروع.
الـ Agile ده Concept مفيش أداة اسمها Agile، بس فكرة الـ Agile عموماً معناها انك هتكون مرن مع متطلبات العميل يعني السيستم بتاعنا هيقبل متطلبات العميل طالما احنا لسا في مرحلة البرمجة.
ومن أهم مميزات نظام الـAgile ده إن العميل بيشوف جزء من المشروع بعد كل مرحلة صغيرة، تعالوا نفترض إن كل جزء هيكون اسبوعين، ده معناه ان العميل هيشوف بعد كل اسبوعين جزء من المشروع، ده معناه إنه لو شاف جزء هو مش متوقعه او مش عاجبه، هعرف منه الـ Feedback بسرعة علشان الحق المشروع ويتنفذ في الجزء اللي بعده.
Posted: 17 Oct, 2016