قسمت سوم : انجام پروژه های نرم افزاری برای کسب تجربه و احیاناً درآمد در زمینه نرم افزار برای دانشجویان این رشته
همانطور که در این مطلب اشاره کردم، یکی از راه های کسب تجربه در زمینه رشته نرم افزار، وارد شدن در بازار کار و انجام پروژه های نرم افزاری است. انجام پروژه در زمینه نرم افزار می تواند به هر نحوی باشد. ما در اینجا نمی خواهیم در مورد روش های انجام پروژه و ابزارهایی که ممکن است به کار بگیرند تا یک پروژه ی نرم افزاری را به ثمر برسانند صحبت کنیم، بلکه بحث ما در مورد چگونگی این کار با امکانات و شرایط یک دانشجوی رشته نرم افزار خواهد بود.
انجام پروژه های نرم افزاری در دوران دانشجویی
شاید یکی از در دسترس ترین راه های کسب تجربه و درآمد در زمینه نرم افزار، همین انجام پروژه برای اشخاص، شرکت ها و یا سازمان های مختلف باشد. به دلیل تعدد و در دسترس بودن ابزارها و گران نبودن آن ها (البته در ایران) نسبت به رشته های تخصصی دیگر، برخی افراد کار کردن در زمینه نرم افزار و انجام پروژه را در مقابل صنایع دیگر راحت تر می پندارند. البته در برخی مواقع هم همین طور هست. اما پروژه های نرم افزاری به علت ذات ناملموس آن ها، مشکلات و دردسرهایی دارند که یک دانشجوی کم تجربه نمی تواند در ابتدای کار آن ها را حدس بزند و راه چاره ای برای حل آن ها بیندیشد. البته اگر دانشجو بتواند پروژه هایی را در زمان دانشجویی خود به ثمر برساند، در آینده روی موقعیت شغلی او بسیار تاثیر خواهد داشت.
روال انجام یک پروژه ی نرم افزاری به این صورت است که شما به عنوان یک پیمانکار پروژه ای را دریافت می کنید و آن را در زمان معینی با توجه به پارامترها و مشخصاتی که کارفرما برای شما تعیین نموده، به انجام می رسانید. در اینجا، تشخیص باکیفیت بودن یا نبودن خروجی پروژه بر عهده کارفرما خواهد بود و شما اصولاً نمی توانید دخالتی در تعیین مشخصات نرم افزار داشته باشید. در واقع شما نرم افزاری می سازید که بتواند نیازهای کارفرما را تامین نماید و خروجی های مطلوب او را تولید کند.
به یاد داشته باشید که مشکلات و دردسرهایی که ممکن است یک پروژه با خود به همراه داشته باشد هیچ گاه همان ابتدای کار خود را نشان نمی دهند. با گذشت زمان، هنگامی که پروژه را آغاز کردید و به علت بی تجربگی اشتباهی از شما سر زد یا در تخمین قیمت و زمان به مشکل برخوردید، آن وقت پشیمانی دیگر سودی برای شما نخواهد داشت. از مشکلاتی که در پروژه های نرم افزاری وجود دارند می توان به چند مورد زیر اشاره نمود :
- عدم شناخت کافی کارفرما از ماهیت پروژه های نرم افزاری : در اکثر موارد، کارفرمایی که می خواهد یک پروژه نرم افزاری را سفارش دهد، از ماهیت پروژه های نرم افزاری بی اطلاع است. وضع شما وقتی وخیم تر می شود که کارفرما یا کسانی که قرار است با نرم افزار شما کار کنند، سواد کامپیوتری هم نداشته باشند.
- عدم شناخت دقیق کارفرما از پروژه ای که می خواهد سفارش دهد : ممکن است خود کارفرما نیز تعریف دقیقی از کاری که می خواهد این نرم افزار برایش انجام بدهد، نداشته باشد. باز هم اگر کارفرما با برنامه های کامپیوتری آشنا نباشد وضع شما وخیم تر از قبل خواهد شد!
- تخمین اشتباه قیمت و زمان در ابتدای پروژه : حتی اگر بر اساس معیارهای مهندسی نرم افزار، موقعیت و مشخصات پروژه هم دست یه تخمین قیمت و زمان زده باشید، باز هم امکان اشتباه برای یک دانشجوی بی تجربه وجود دارد.
- امکان عدم همکاری کارفرما با شما : امکان دارد در اواسط انجام پروژه کارفرما به هر دلیلی پشیمان شود و دیگر قصد همکاری با شما را نداشته باشد. در این حالت اگر قرارداد سفت و محکمی نبسته باشید مطمئن باشید که ضررهایی جبران ناپذیری را متحمل خواهید شد. به علت بی تجربگی دانشجویان احتمال سوء استفاده از طرف کارفرمایان بسیار زیاد است.
- عدم شناخت کافی شما در مورد پروژه : همه تقصیرها و بی سوادی ها را نمی توان به گردن کارفرمایان انداخت. امکان دارد پروژه ای که شما قرار است آن را انجام دهید دارای پیچیدگی هایی باشد که شما نتوانید با دانش خود آن را به انجام برسانید. امکان دارد در بحث تکنیکی قضیه کم بیاورید، در این موقیعت یا مجبورید اعتبار خود را از دست بدهید و وسط کار پروژه را رها کنید و یا مجبورید با قیمتی حتی گرانتر پروژه را به کس دیگری محول کنید. در هر صورت شما ضرر خواهید کرد.
- استرس شدید و ریسک زیاد : البته ممکن است در پروژه های کوچک استرس نداشته باشید و به در انجام آن به مشکل زیادی برخورد نکنید. اما وقتی سیستمی که قرار است پیاده کنید جدید و کمی پیچیده باشد، آن هنگام است که استرس و ریسک های پروژه خود را نشان می دهند. استرس زیاد برای یک دانشجو غیر قابل تحمل است و امکان لطمه زدن به تحصیل و بخش های دیگر زندگی او وجود دارد.
البته من قصد نداشتم که فقط از بدی های این روش بگویم. بدون شک روش انجام پروژه مزایای بسیاری دارد که شما بهتر از من از آن ها اطلاع دارید. در این روش نسبت به روش های دیگر اصولاً دستمزد شما بالاتر است، اما به مراتب ریسک های آن نیز بیشتر خواهد بود. به نظرم بهتر است قبل از گرفتن هر پروژه ای ابتدا امکان سنجی کنید; یعنی ببینید آیا می توانید با دانش خود و با استفاده از ابزارهای موجود این پروژه را انجام دهید؟ شخصیت کارفرما را حتماً در نظر بگیرید، اگر کارفرما خودش هم از چیزی که می خواهد برایش بسازید تعریف درستی ندارد به هیچ وجه پروژه را قبول نکنید.
همیشه زمان و قیمت پروژه را دست بالا بگیرید و قبل از شروع پروژه یک قرارداد محکم با کارفرما ببندید تا احتمال سوء استفاده را به حداقل برسانید. در قراردادتان حتماً بندهایی قرار دهید که اگر کارفرما در وسط کار پشیمان شد باید خسارت بدهد. حتماً قرارداد را در دو نسخه تهیه کنید و یکی را با مهر و امضای کارفرما نزد خود نگه دارید تا اگر احیاناً پول شما را ندادند یا از نرم افزارتان سوء استفاده کردند شما مدرکی در دست داشته باشید.
به نظرم بهتر است دانشجویانی مثل خودم که پشتیبانی مالی به خصوصی ندارند و کم تجربه هستند از پروژه های بسیار کوچک شروع کنند و همان ها را به بهترین نحو انجام دهند تا بعداً به عنوان رزومه و نمونه کار ارائه کنند.
برای تکمیل بحث پیشنهاد می کنم این مطلب از وبلاگ یادداشت های نرم افزاری رادمان را حتماً مطالعه کنید.
پ.ن : در مطالبی که با عنوان «یافتن کار نیمه وقت و کسب تجربه در زمینه نرم افزار» ارسال می شوند، با دیدی متفاوت به مسئله کار کردن در دوران دانشجویی و نحوه کسب تجربه در زمینه نرم افزار برای دانشجویان این رشته خواهیم پرداخت. کامنت هایی که دوستان لطف می کنند و در زیر هر مطلب ارسال می کنند، تکمیل کننده بحث های ما خواهد بود. اگر شما هم اطلاعات سودمندی در زمینه مباحث ما دارید از من و خوانندگان وبلاگ دریغ نفرمایید و زیر پست نظر خودتان را بیان کنید.
farasun.wordpress.com
مشترک فراسان شويد
farasun.wordpress.com
مطالب مرتبط :