السلام عليكم ورحمة الله وبركاته ..
استكمالاً لتقييم كتاب Steve McConnell الممتاز بعنوان: Software Estimation: Demystifying the Black Art والذي أنصح أي مهندس برمجيات بقراءته.
سنستعرض في هذا الموضوع بعض الطرق الخاصة بالـ Estimation .. وعذراً لأني لن أستطيع نقل المقالات كلها هنا لأنها بالإنجليزية وبها جداول وما شابه والتنسيق هنا على المنتدى أصعب من المدونة. ولكن سأحاول بإذن الله ترجمتها إن استطعت لأهميتها.
في البداية نلقي الضوء على بعض الاعتبارات التي يجب أن توضع محل نظر عند اختيار طريقة الـ Estimation للمشكلة التي أنت فيها .. يمكنكم قراءة المقالة كاملة هنا بالإنجليزية
1) ما الذي تريد تقييمه؟
في بعض الأحيان يعطيك مدير المشروع مثلاً مجموعة من المزايا (Features) ويطلب منك تحديد الجدول الزمني والمجهود اللازم لتنفيذ هذه المزايا. وفي بعض الأحيان يتم تحديد الميزانية المالية للمشروع والإطار الزمني لتنفيذ المشروع ويطلب منك تحديد العدد المناسب للمزايا التي يمكن تطويرها في هذه المدة تحت مظلة الميزانية المحددة.
فعليك أولاً تحديد ما الذي تريد تقييمه.
2) حجم المشروع
حجم المشروع يختلف من مشروع لأخر .. فهناك المشاريع الصغيرة التي قام الكاتب بتوصيفها على أنها المشاريع التي تحتوي على 5 فأقل كفريق فهذه المشاريع الأنسب لها طرق الـ bottom-to-up لأنها تعتمد على تقييم الفرد داخل الفريق للعمل الذي سيقوم به بنفسه.
وهناك المشاريع الكبيرة التي يتراوح أعضاء فريقها ما بين 25 وأكثر والتي يتم تطويرها في مدة زمنية تتراوح من 6 إلى 12 شهر وأكثر .. فهذه المشاريع يتخللها أكثر من طريقة ففي البداية Top-Down لأنه في الغالب لن يستطيع تحديد كل أفراد المشروع من البداية وفي المراحل المتوسطة من المشروع يمكننا الخلط بين الـ Bottom-up والـ Top-down حسب الحاجة .. وفي المراحل الأخيرة يستحب استخدام الـ Bottom-up
وهناك المشاريع ذات الحجم المتوسط والتي يتراوح عدد أفرادها ما بين ال 5 و ال 25 ويتراوح مدة تطويرها ما بين 3 إلى 12 شهر .. ويمكن استخدام كل الطرق فيها على حسب الحاجة.
3) طريقة عمل المشروع
تختلف طريقة الـ Estimation طبقاً للطريقة المتبعة في تطوير المشروع هل هي Iterative أم Sequential .. قام الكاتب بتحديد بعض الطرق المشهورة وقام بتعريفها ببساطة وتحديد ما إذا كانت Iterative أم Sequential
4) المرحلة التي فيها المشروع
حسب المرحلة التي يكون فيها المشروع والتي يحددها الـ Cone of uncertainty يتم تحديد الطريقة ..
فهناك مرحلة البداية .. ومرحلة التوسط ... ومرحلة النهاية. قام الكاتب بتعريفها طبقاً لكل طريقة تطوير على أنها كمية الـ requirements المتعارف عليها قبل التطوير .. وعليه فإن طريقة الـ Estimation تختلف لأن مقدار المعلومات مختلف.
5) الدقة التي ترغب بها
حسب الطريقة التي قمت باختيارها يكون يكون تحديد الدقة .. هناك طرق دقتها عالية ولكن تكلفتها عالية في الوقت والمجهود والمال. وهناك طرق دقتها متوسطة وتكلفتها قليلة. هنا يتم تحديد الطريقة على حسب الحالة والدقة التي ترغب بها. فقد ترغب بدقة عالية ولكن بتكلفة قليلة. إذن عليك أن تستخدم العوامل الأخرى المذكورة هنا لتحديد الطريقة الأنسب التي تعطيك أعلى دقة في حالتك وبتكلفة تناسبك.
وهذا رابط المقال كاملاً بالإنجليزية
ومن لم يكن متابعاً الموضوعات من بدايتها يمكنه ملاحقتنا من خلال تصفح هذا القسم في المدونة Currently Reading أو من خلال الموضوعات التي تم إرسالها هنا على قسم هندسة البرمجيات في الفترة الماضية. وأسف جداً للإطالة.
جزاكم الله خيراً