تخمین هزینه های یک پروژه نرم افزاری یکی از دغدغه های مهم فعالان صنعت نرم افزار و برنامه نویسان است.
در این مقاله روش های قیمت گذاری پروژه های نرم افزاری و نکات آن را مورد بررسی قرار خواهیم داد.
روشهای زیادی برای برآورد هزینه در پروژه های نرم افزاری وجود دارد ، از روش های شناخته شده در این زمینه می توان به FP (Function Point) و COCOMO II و سایر روشهای دیگر استفاده نمود.
در برآورد هزینه و زمان به روش علمی سعی بر این است که بتوان سیستمها را بر اساس پارامترهای تعیین شدهای, ارزیابی نموده و سپس بر مبنای روابطی مشخص و هزینه و زمان سیستم را برآورد نمود.
با اینحال تجربه ثابت کرده است که استفاده از روشهای کاملا علمی که در شرایط کشورهای دیگر تهیه شده است ، در شرایط کشور ایران چندان کاربردی نمی باشد.
بنابراین روش توسعه یافته بر اساس فرضیات تئوری های علمی و با استفاده از تجربیات قبلی را بر پایه موارد ذیل برای تخمین قیمت پروژه به کار می بریم :
-
هر موجودیت نیاز به ساخت یک فرم برای ورود ، ویرایش و بازیابی اطلاعات دارد
-
به ازای هر موجودیت در هر سیستم ۳ گزارش تهیه می شود.
-
موجودیت های اطلاعاتی با تعامل با یکدیگر ، Query های اطلاعاتی را می سازند. بر اساس مطالعات صورت گرفته مشخص شده است که به ازای هر موجودیت به طور متوسط ۳ Query وجود دارد.
-
با توجه به موارد یاد شده توسعه سیستم ، به عنوان تابعی از تعداد موجودیت ها قابل تخمین می باشد.
-
فعالیت هایی مانند تحلیل و طراحی و آزمون سیستم به صورت تابعی از فعالیت توسعه سیستم قابل برآورد می باشد.
از آنجا که اندازه گیری حجم کار برای پیاده سازی نسبت به سایر فعالیت های پروژه نسبت به واحد موجودیت از سهولت و دقت بالاتری برخوردار است. با استفاده از نظر خبرگان و تجربه اعداد متوسط زیر قابل استنتاج است.
زمان پیاده سازی هر فرم : ۳ ساعت
زمان پیاده سازی هر گزارش : ۳ ساعت
زمان طراحی و پیاده سازی هر Query برابر با یک ساعت
بنابراین با توجه به مطالب بیان شده بالا ، زمان مورد نیاز توسط یک نفر برای پیاده سازی اجزای مرتبط با یک موجودیت به میزان ۱۵ ساعت برآورد می شود .
حال با توجه به اینکه مطابق با استاندارد RUP ، پیاده سازی ۲۸ درصد فاز ساخت و فاز ساخت ۶۵ درصد از حجم فعالیت های پروژه را مورد استفاده قرار می دهند ، بنابراین به ازای هر موجودیت ۸۲ نفر ساعت مورد نیازمی باشد.
-
-
تعداد رابطه اطلاعاتی (Relations) – هر چه رابطه اطلاعاتی (Relations) موجودیت های اطلاعاتی یک سیستم بیشتر باشد، پیچیدگی آن سیستم بیشتر است.
-
تکنولوژی مورد استفاده ، چنانچه از تکنولوژی توسعه وب استفاده نماییم، پروژه از پیچیدگی بیشتری نسبت به توسعه در محیط Windows برخوردار خواهد بود.
-
3. نرخ جامعیت : در صورتی که یک سیستم تعداد فرآیندهای بیشتری را پوشش دهد، دارای نرخ جامعیت بالاتری می باشد. بنابراین نیاز به تحلیل و شناخت اطلاعات در آن سیستم بیشتر خواهد بود. که این امر می تواند بر طراحی و پیاده سازی نیز موثر باشد.
4. ضریب تکراری بودن فعالیت ها : گرچه نرخ جامعیت مرتبط با کاربرد سیستم در فرآیندها می باشد. با اینحال اگر رابطه سیستم با فرآیندها به نحوی تعریف شود که یک عملیات خاص توسط سیستم در تمام فرآیندها به طور یکسان تکرار می شود ، از ضریب تکرار پذیری جهت کاهش حجم فعالیت ها استفاده می شود.
با توجه به موارد بالا ، برای برآورد حجم کار یک پروژه از فرمول زیر استفاده می نماییم :
ضریب تکرار* نرخ پیچیدگی* نرخ جامعیت * ۸۴ * تعداد موجودیت = حجم کار پروژه
با تعیین میانگین دستمزد پرسنلی به میزان ۶۰۰۰۰ ریال می توان حجم اولیه ریالی پروژه به صورت زیر برآورد نمود :
حجم کار پروژه * میانگین دستمزد پرسنل= هزینه پرسنلی
با اینحال در تعیین میزان قیمت تمام شده پروژهها یا تخمین میزان هزینه لازم برای انجام یک کار داشتن محدوده هزینهای مربوط به هر شغل کافی نیست، بلکه لازم است میزان سربار لازم برای هر شغل را نیز تعیین کنیم.
در روش هزینه یابی بر اساس فعالیت سه نوع سربار تعریف شده است:
-
سربار مستقیم حقوق : سربار مستقیم حقوق شامل کلیه مبالغی است که مستقیماً در ارتباط با حقوق معنی پیدا میکنند. از جمله میتوان از ۲۳% بیمه سهم کارفرما, حق خواربار, عیدی, پاداش و حق سنوات نام برد.
-
سربار عملیاتی: این نوع سربار شامل اقلام هزینه ای سربار حقوق و دستمزد نمیشود ولی دربرگیرنده همه انواع سایر هزینههایی است که مستقیماً در یک پروژه مصرف میشوند. از جمله میتوان از مالیات، هزینه فضا، تجهیزات، ابزار، پذیرایی، و ایاب و ذهاب نام برد.
-
سربار غیرعملیاتی : دو سربار مستقیم حقوق و سربار عملیاتی مستقیماً به پروژه مربوط میشوند. اما هر شرکت دارای انواع هزینههای دیگری است که بدون آنها نمیتوان پروژهای را انجام داد. از جمله میتوان از هزینههای اداری و تشکیلاتی، و هزینههای بازاریابی و فروش نام برد. این قبیل هزینهها بر قیمت تمام شده پروژه تاثیر نمیگذارند. لیکن بر میزان سودآوری شرکت تاثیر گذاشته و بنابراین در هنگام قیمتگذاری برای پروژهها، آگاهی از میزان آنها برای مدیران شرکتها لازم و ضروری است. بنابراین سربار دیگری را میتوان تحت عنوان سربار غیرعملیاتی تعریف نمود که شامل کلیه هزینههای مشترک شرکت است.
با دانستن میزان دستمزدها و سربار مربوط به اجرای پروژهها به راحتی میتوان ضریبی را محاسبه نمود که با ضرب آن در کل خالص حقوق پرداختی در یک پروژه بتوان قیمت تمام شده را محاسبه نمود. جدول زیر ضرایب محاسبه شده را نشان میدهد:
ردیف |
ضریب |
مقدار |
۱ |
ضریب قیمت تمام شده پروژه (C) |
۲٫۴ |
۲ |
ضریب قیمت پروژه (P) |
۳٫۴ |
بنابراین هزینه نهایی سیستمهای اختصاصی سازمان به صورت زیر قابل محاسبه می باشد:
۳٫۴ * هزینه پرسنلی= قیمت برآوردی پروژه
از آنجا که معمولا باید خرج قند و چای! برخی از افراد کارفرما را نیز در نظر گرفت، قیمت نهایی پروژه که باید به کارفرما اعلام شود به صورت زیر میباشد:
هزینه قند و چای پرسنل کارفرما + قیمت برآوردی پروژه= قیمت نهایی پروژه برای اعلام به مشتری
معمولا وقتی ما با استفاده از این روش، هزینه پروژه را محاسبه میکنیم، به این نتیجه میرسیم که با قیمت محاسبه شده کار را به ما و یا به هیچ شرکت دیگری نخواهند داد.
در این لحظه پارامتر بعدی ( آستانه تحمل مشتری ) وارد موضوع میشود و قیمت نهایی بر اساس فرمول زیر تعیین میشود:
قیمت نهایی =(قیمت محاسبه شده، آستانه تحمل مشتری) کمینه
در مورد آستانه تحمل مشتری نقش رانت بسیار مهم میباشد. در اینگونه موارد باید هزینه کسب اطلاعات از مشتری نیز پرداخت شده و یا اینکه نامبرده ( رانت اطلاعاتی) در منافع پروژه سهیم شود.
موارد استثنایی نیز وجود دارد که قیمت برآوردی مشتری بیشتر از محاسبات انجام شده است.
در این لحظه باید از فرمول زیر استفاده کنید:
قیمت نهایی =(قیمت محاسبه شده، قیمت برآوردی مشتری) بیشینه
منبع:بهساد
نظرات کاربران