توسعه دهنده اندروید | هم تیمی در coursee.org | در تلاش برای تبدیل رویا به واقعیت
روش های قیمت گذاری پروژه های برنامه نویسی - نرم افزاری
چند وقت پیش یکی از دوستان بهم گفت که "سنا راجب به قیمت گذاری بیشتر مطالعه کن!"
شاید منظورش این بود که در این زمینه ناشیانه رفتار میکنی یا ...
ولی من مثل همیشه از فرصت و تلنگری که بهم زده شد ، استفاده کردم و در تایم محدودی که داشتم از تجربه های دوستان توسط یک پست در لینکدین ، نهایت استفاده رو بردم و قول دادم که خیلی جامع و تر تمیز در ادیتور ویرگول پیادش کنم.
نکته : این پست برای برنامه نویسان اندروید هست ولی اگر میتونید به تخصصتون مرتبطش کنید پس یا علی ...
نکته بعدی : من تک تک کامنت ها رو با تغییر جزیی در اینجا قرار میدم . ولی برای اینکه حریم شخصی دوستان حفظ شه ، نشانی پست کننده ی کامنت رو ذکر نمیکنم.
سوال پست من : دوستان برنامه نویس اندروید ، شما بر چه اساسی قیمت پروژه را برآورد و به مشتری اعلام میکنید?
من اینگونه برآورد میکنم :
سختی و بزرگی پروژه و تقریبا ساعت های کاری که باید براش در نظر بگیرم (که به کمک پلاگینی به نام #wakaTime دقیقا میشه متوجه شد االبته در پایان کار) رو حساب میکنم
و سپس با توجه به قیمت ساعتی که برای خود در نظر گرفتم
قیمت کلی رو میگم (با یک انحراف معیار کم ، درست میشه) !
ولی حس میکنم ناقص هست پس از متخصصین و نیز دوستان با تجربه میخوام که تجربه هاشون رو به اشتراک بگذارند.
ممنون از محبت شما ??
نظر اول ) یکی از دوستان سایت بسیار خوبی رو معرفی کردند که شما یکسری اطلاعات رو براش میفرستید و اون برای شما برآورد میکنه .ولی ظاهرا این سایت در دست تکمیل هست ولی تا اینجاش هم بسیار کارآمد است :
نظر دوم ) این روش همانند روش های معمول هست ولی خیلی دقیق تر و تخصصی تر:
نفر ساعت پروژه(مبنا یک برنامه نویس senior) × ۳۳ درصد ضریب اطمینان محاسبه نفر ساعت × قیمت ساعت کار برنامه نویس × ضریب اصتحلاک ثابت + سود منطقی مجموعه برای مثال یک پروژه ۲۱۱۲ نفر ساعت پیشبینی میشه(یک سال) ۲۱۱۲×۱.۳۳×۴۰×۱.۳۰+۳۰۰۰۰= ۱۷۶۰۰۰ ضرایب و فرمول ها در سازمان های مختلف متفاوته ولی ما شبیه به این محاسبه میکنیم دستمزد رو.
در پاسخ گفتم که برای یک برنامه نویس متوسط چطوره ؟
پاسخ : فرقی نمیکنه، ما با مبنای senior محاسبه قیمت برای مشتری میکنیم، و امکان داره بقول شما یک مدیل کار رو انجام بده، که حقوق پرداختی میدل توی سیستم ما برابر با ساعتی ۲۵-۳۰ تومن هست. یعنی برای مشتری فرقی نمیکنه ولی برای سازمان بخاطر میزان حقوقی که میپردازه حاشیه سود بیشتر میشه. که البته با توجه به کیفیت کار ارائه شده توسط برنامه نویس مبلغ قابل توجهی هم پاداش به حقوقش اضافه میشه . اون قضیه اصتحلاک هم مربوط به سخت افزاری هست که داره برای مشتری استفاده میشه و یک مورد رو یادم رفت، سفر ها و جلسات مربوط به پروژه بصورت جداگانه محاسبه و فاکتور به مشتری اعلام میشه.
مورد آخر هم وضعیت سورس هست، قیمت سورس ۲ تا ۳ برابر مبلغ کل پروژه هست یعنی اگر قرار سورس رو تحویل بدید باید مشتری مبلغ ۲-۳ برابر قرارداد رو جداگونه بپردازه.
نظر سوم ) این نظر خیلی جالب بود و تا جایی هم بحث بر انگیز بود :
من برنامه نویس اندروید نیستم ولی نظرم رو مینویسم. برای محاسبه قیمت باید ببینی چه ارزش هایی ایجاد میکنه. مثلا یه کار ممکنه تجربهت رو دوبرابر کنه، یه پروژه برات رابطه درست میکنه، یه پروژه برات نمونه کار خوبی میشه، یه پروژه برات مشتری میاره. نمیشه این موارد رو یه جور قیمت گذاری کرد. حتی پیشنهاد میکنم یکسری از این موارد رو که گفتم رایگان انجام بدی. هنوز اگر برای قیمت گذاری مشکل داری خب یعنی خیلی با مشتری در ارتباط نبودی، پس مشتری خوب پیدا کن و بزار هر مبلغی رو که خودش رضایت داشت بهت بده. خیلی سریع شیوه قیمت گذاری خودت دستت میاد .
نظر چهارم ) که بنظرم منطقی میومد :
ساعت کاری به نظرم اصلا ملاک نیست . چه بسا شاید ۵ بار فروشگاه اینترنتی درست کرده باشید، پس بار ۶ زمان کم تری میگیری ولی همون بار ۶ هم کد تمیزتر بوده. هم منطقی تر، بهینه تر و با امکانات بیشتر
نظر پنجم ) که بیشتر نکته سنجی دقیتر نسبت به روش معمول داشت :
تمام این فاکتور ها هست ولی همیشه مساله درصد تغییرات رو تو قراردادتون ذکر کنید همینطور اگر قرار هست سورس رو تحویل بدین قیمت سورس رو جداگونه در نظر بگیرین و همینطور میزان تجربه رو تو پروژه هاتون با یک ضریب در نفر ساعتتون لحاظ کنید.
نظر ششم ) که بیشتر از تجربه اشون برامون گفتن :
باید پروژه رو تحلیل کرد دید چقدر زمان لازم هست مثلا ساعتی با x هزینه کار میکنی+ چیزایی که براش لازمه مثلا هزینه هاست و دامین و کانفیگ سرور و این چیزا. ما سره یه پروژه هزینه کانفیگ سرور رو ذکر نکردیم و خود سرور رو هم مشتری بهمون داد که سرور کانفیگ نشده بود حالا به دلایلی ما چندبار لازم شد از اول کانفیگ کنیم که اخرش کلی ضرر کردیم.
نظر هفتم ) ایشونم به نکته ظریف و صحیحی اشاره کردن :
معیار قیمت گذاری تجزیه تحلیل برنامه که بعد اون مدت زمانی حدود کد زنی معلوم میشه .
نظر هشتم ) که بسیار دقیق و با جزییات و با توجه به تجربه ایی که دارند از تیم و حق و حقوق گفتند :
توسعه نرم افزار، فقط شامل برنامه نویسی نیست و فرآیند توسعه، به متخصصین متفاوتی با زمان حضور متفاوت و در نتیجه با دستمزدهای متفاوت نیازمنده. زمانیکه کار به صورت گروهی یا تیمی انجام میشه، تخمین هزینه پروژه به شدت دشواره و پارامترهای محاسباتی زیادی داره. متاسفانه در ایران، در اکثر موارد، هزینه ها رو فقط بر اساس نرخ برنامه نویسی محاسبه میکنند که صددرصد ناکامل و ناصحیحه. بنده به شخصه نمیتونم ادعا کنم که در این مورد فرمولی وجود داره؛ خیلی وقت ها، هنگام مذاکره با مشتری نرم افزار، وقتی به قول قدیمی ها «مزهء دهن مشتری رو میفهمم»، نرخ رو بر اساس ارزش نرم افزار برای مشتری لحاظ میکنم، در اکثر موارد هم این نرخ بسیار پایینه و درنتیجه پروژه رو قبول نمیکنم. ولی گاهی وقت ها، یعنی خیلی خیلی به ندرت، موضوعاتی پیشنهاد میشه که نرم افزار هدف، ارزش محصولی داره و هزینه های پروژه رو میشه با فروش نسخه های دوم و سوم و ... تامین کرد، که البته کار پر ریسکیه ولی شدنیه. در مجموع، هر چقدر تیغم ببره مبلغ ارائه میکنم، ولی میانگین نرخ ساعت کاری خودم در حداقل ترین حالت، 50 تومنه که اگر یکماه کاری معادل 192 ساعت قانون بیمه تامین اجتماعی رو لحاظ کنم، میشه حدود 10 میلیون. بنابراین برای پروژه هایی که حدود زمانیش قابل تخمینه، میشه یه نرخ حدودی مشخص کرد. البته در نهایت نظر مشتری ملاکه...
نظر نهم ) که این نظر بسیار کوتاه رو میشه با توجه به نظرات قبلی بسط داد چرا که مفهومی عمیق داره:
تکنولوژی و زمان
نظر دهم ) این نظر جنبه ی فان داشت :
هرچی برنامه نویس قبلی گفته باشه ۱۰۰ تومن پایینتر :) ? #شوخی البته
بروزرسانی :
نظر یازدهم ) این نظر توسط دوستمون در همین مقاله پست شده بود که نظرشون متفاوت بود به کل ، طوری که اومدن و زمان رو از محاسبات فاکتور گرفتن :
هزینه یک پروژه بستگی به زمان انجام اون نداره ، چون یکی ممکنه دو روزه بنویسه برنامه رو و یکی دیگه دو ماهه ، پس معیار سنجش قیمت پروژه چیز دیگه ای باید باشه ، نه زمان.
به نظر من میشه براساس فیچر هایی که قراره توی برنامه پیاده سازی بشه برآورد کرد :
مثلا قیمت پیاده سازی پرداخت درون برنامه (IAB) رو x در نظر میگیریم و قیمت پیاده سازی لاگین و بازیابی رمز عبور رو y در نظر میگیریم و همینطور ادامه میدیم.
پایان کار یک جمع ساده اس:
x + y + ... = price
نظر دوازدهم ) این نظر هم طبق روال کار هست با این تفاوت که نکته ای من بابا اعتماد کارفرما ذکر کردند :
من یه تخمین زمانی حدودی بر اساس ساعت کاری میزنم و بعد بر اساس روز کاری و ماه کاری زمان و هزینه نهایی رو به مشتری اعلام میکنم. یادت باشه همیشه در کنار قیمت کلی صرفا جهت اطلاع کارفرما هزینه دستمزد ساعتیتو به کارفرما بگی اینجوری اعتمادش به تو بیشتر میشه
خب دوستان من برای این مقاله جمع بندی نخواهم داشت به این دلیل که میخوام شما هم نظر بعدی رو اون زیر پست کنید .
سنا عبادی , شنبه پانزدهم تیر سال ۱۳۹۸ , ساعت ۱۰:۳۰ صبح
مطلبی دیگر از این انتشارات
استفاده از Dagger hilt به صورت پروژه محور (قسمت سوم)
مطلبی دیگر از این انتشارات
Handler , Looper , MessageQueue , Thread در اندروید
مطلبی دیگر از این انتشارات
تغییر نام package اپلیکیشن اندروید