چند روز پیش دو نفر از دانشجویان درس مهندسی نرم افزار به من مراجعه کردند. گویا در یکی از مراکز بزرگ بر اساس آشنایی های قبلی یک پروژه بزرگ به آنها پیشنهاد شده بود.وقتی در مورد پروژه صحبت می کردند چشمانشان برق می زد. با وجودیکه نگران بودند اما می شد فهمید که از این قضیه خیلی خوشحال بودند و فکر می کردند که درهای خوشبختی به رویشان باز شده است و حتما پولدار خواهند شد. اما نمی دانستند که حالا چکار باید بکنند!! شرکتهای دیگر برای این پروژه مراجعه کرده بودند و قیمتهای بالایی داده بودند و این بچه ها نمی دانستند که چگونه باید قیمت و زمان و هزینه را برای این پروژه حساب کنند. در مورد موضوع پروژه هم که صحبت شد مشخص شد که ضمن اینکه موضوع فی نفسه موضوع سخت و جالبی است حتی خود کارفرما هم شناخت دقیقی ندارد و این کار را مشکل می کند.
پروژه گرفتن در زمان دانشجویی بیشتر یک خیال و سراب فریبنده است. معمولا ارقام پروژه به شکلی است که دانشجویان و یا افراد کم تجربه ذوق زده می شوند و پیش خودشان فکر می کنند بابا این پروژه که کاری نداره! سریع انجامش می دهیم و تمام. کلی پول در می آوریم! فارغ از اینکه اگر چنین بود چرا سایرین ارقام بالاتری را برای آن پیشنهاد داده اند. حتما حکمتی در این کار بوده است و گرنه با توجه به رقابت های موجود در جامعه شرکتهای نرم افزاری شرکتها معمولا سعی می کنند که قیمت ها را مینیموم ارائه کنند.
درحالیکه واقعیت چیز دیگری است. قراردادهای پروژه ها در زمان شروع معمولا به نظر خیلی خوب و سودآور به نظر می رسد در حالیکه پروژه ها معمولا هزینه های مختلفی دارند که محاسبه آنها و در نظر گرفتن آنها نیاز به تجربه دارد. پیشتر در زمینه شیوه تخمین زمان و هزینه در این وبلاگ مطلب نوشته بودم.
خوب یک دانشجو یا فرد بی تجربه در این زمان چه باید بکند. آیا باید پروژه را به هر قیمتی قبول بکند و یا شیوه کار را تغییر دهد؟
برای پاسخگویی به این سوال بگذارید نگاه دقیق تری به شیوه های مختلف کار کردن در زمینه نرم افزار داشته باشیم. به طور کلی هر فرد در یک کار نرم افزاری به سه شکل می تواند فعالیت داشته باشد :
۱- پروژه ای : در این شیوه کار شما به عنوان پیمانکار با یک فرد دیگر به عنوان کارفرما قرارداد امضا می کنید و برای کل پروژه زمان و هزینه را اعلام می کنید. بدین ترتیب کلیه هزینه ها و مسائل دیگر به عهده شما است و کارفرما فارغ از همه چیز از شما انتظار دارد در ازای دریافت مبلغ پروژه در زمان مقرر و با کیفیت معین شده محصول نهایی را آماده کنید و آن را راه اندازی نمایید.
۲- قرارداد ساعتی : شما در این شکل از کار یا مستقیما با مشتری و یا با یک گروه تولید کننده قراردادی را امضا می کنید که بر اساس آن شما به میزان نفر ساعتی که روی پروژه کار می کنید حقوق خواهید گرفت. در این روش معمولا قبل از اجرای کار یک زمان کلی بین طرفین توافق می گردد و کار انجام می شود. زودتر دادن و یا جنبه های حقوقی کار و یا ریسک های پروژه در این شکل کار کمتر به شما مرتبط می شود و در این زمینه مسولیت کمتری به عهده دارید.
۳- قرارداد رسمی و یا قرارداد های تمام وقت و یا پاره وقت مدت دار: کار کردن در این نوع بسته به ساعات کاری شما نیست شما به عنوان کارمند استخدام می شوید و موظفید که در ساعاتی از هفته (به صورت تمام وقت ۴۴ ساعت در هفته و به صورت پاره وقت در ساعت مقرر شده) در محل شرکت حاضر باشید و کار انجام دهید. در این شیوه شما مشمول مواردی نظیر اضافه کار و کسری کار و یا مرخصی ها می شوید.
هر روش مزایا و معایب خاص خود را دارد. برای مثال در روش پروژه ای معمولا ارقام بالاتر است اما ریسک ها نیز بالاتر می رود. در حالیکه در روش سوم ارقام پایین تر است اما ریسک کمتر است و گاهی شما برای ساعتی که کار نمی کنید (مرخصی استحقاقی ماهانه = ۲۰ ساعت) حقوق هم می گیرید!!
انتخاب هر کدام از این روشها بسته به شرایط مختلفی است. برای مثال در زمانیکه پروژه به خوبی تعریف نشده است و خود کارفرما هم شناخت مناسبی از حدود پروژه ندارد کارکردن به شیوه پروژه ای اشتباه بزرگی است. اگر چه شما با شیوه های تخمین زدن سعی کرده اید که تخمین خوبی برای زمان و هزینه داشته باشید اما احتمال ریسک هم بالا است. به عبارت دیگر هر چند ممکن است مشکل خاصی پیش نیاید و شما حتی بتوانید پروژه را با رقم هزینه پایین تری به انجام برسانید اما به همین میزان و حتی بیشتر از آن هم ممکن است اوضاع مطابق انتظار شما پیش نرود و مشتری مدام با مطرح کردن نیاز های جدید و یا تغییر خواسته های قبلی خود در پروژه مشکل ساز گردد.
برای بر طرف کردن این ریسک ها معمولا بند هایی در قرارداد ها قید می شود که برای مثال احتمال افزایش ۲۰% مبلغ و زمان قرارداد وجود دارد و یا راه را برای قراردادهای بعدی باز می گذارند اما به دلیل عدم تجربه دانشجویان و یا کسانی که تازه فارغ التحصیل شده اند اصولا این راه پیشنهاد نمی گردد.
در حالیکه شما در روشهای دوم و سوم آزادی عمل بیشتری دارید و می توانید زمان را با توجه به حجم کار طولانی تر کنید و توافق در مورد این مساله بین کارفرما و پیمانکار ساده تر است.
از طرف دیگر روحیات افراد و شرایط فرهنگی و محیطی هم در انتخاب روش کار مهم می باشد. برای مثال برای افرادی که بیشتر محتاط هستند و یا شخصیت آرامی دارند و یا ریسک پذیر نیستند بهتر است استخدام رسمی و یا قرارداری جایی باشند تا اینکه پروژه بگیرند. چون پروژه گرفتن معمولا استرس بالایی دارد و فرد باید مدیریت خوبی روی ریسک ها داشته باشد.
وضعیت معیشتی افراد هم در نوع کار مهم است. زمانیکه یک فرد از پشتوانه مالی خوبی برخوردار باشد می تواند بیشتر ریسک کند. اما زمانیکه مسولیت یک زندگی را به عهده داشته باشد باید به این فکر کند که باید به طور متوسط ماهانه درآمدی کسب کند. پروژه ها معمولا با وجودیکه ارقام بالاتری دارند اما نرخ یکنواختی در گرفتن پروژه، انجام آن و گرفتن پول آن وجود ندارد و پارامترهای خیلی زیاد و خارج از کنترل فرد در آنها موثر است.
به هر حال به عنوان یک توصیه پیشنهاد می کنم که دانشجویان و یا افراد کم تجربه در ابتدای شروع به کارشان دقت بیشتری به خرج دهند و بهتر است با عقد قراردادهای ساعتی و یا سالانه کارکردن را آغاز کنند و زمانیکه یک حد مقبولی از تجربه را کسب کردند و شرایط مالی مناسبی هم پیدا کردند اقدام به گرفتن پروژه بنمایند. تازه در همین زمان هم باید به یاد داشته باشند که هزینه های آشکار و نهان زیادی است که باید در محاسبه زمان و هزینه یک پروژه در نظر بگیرند و شرط احتیاط را رعایت کنند.
باز هم در این مورد خواهم نوشت…..
همین!






