جستجو در محصولات

گالری پروژه های افتر افکت
گالری پروژه های PSD
جستجو در محصولات


تبلیغ بانک ها در صفحات
ربات ساز تلگرام در صفحات
ایمن نیوز در صفحات
.. سیستم ارسال پیامک ..
چگونه يک پروژه نرم افزاري را با موفقيت انجام دهيم ؟!
-(5 Body) 
چگونه يک پروژه نرم افزاري را با موفقيت انجام دهيم ؟!
Visitor 407
Category: دنياي فن آوري
در دوران دانشجويي و حتي قبل از دانشجويي براي من خيلي پيش آمد که براي کسي برنامه بنويسم و پروژه نرم افزاري انجام بدم . بعضي هايش را قبول کردم و برخي را به علت هايي رد کردم . اوايل که جوگير شده بودم و فکر ميکردم خيلي برنامه نويسم ، اگر هر پروژه اي به من واگذار ميشد ، نه نمي گفتم . خوشبختانه آن اوايل به جز يک برنامه ، پيشنهاد ديگري به من نشد! به هر حال ، در اين اواخر رويه اي را پيش گرفتم در پروژه گرفتن و پروژه انجام دادن ، که فکر ميکنم رويه درستي است و از آن نتيجه هاي خوبي هم گرفتم . اگر دانشجو هستيد و مثل من کم تجربه ، حتماً قبل از گرفتن پروژه مسائلي که در اين مطلب ذکر کردم را در نظر داشته باشيد .

پروژه را قبول کنيم يا خير !
 

قبل از اينکه جواب اين سئوال را بدهيد ، بايد پروژه اي که قرار است انجام دهيد را بفهميد . براي اين کار هم بايد به صورت حضوري با کارفرما ملاقات کنيد و اگر ملاقات حضوري در دسترس نيست ، بوسيله تلفن با او صحبت کنيد . سئوالات و ابهامتان را در مورد پروژه از کارفرما بپرسيد . سعي کنيد تمام سئوال هايتان را از قبل در يک برگه بنويسيد تا هنگام صحبت با کارفرما سئوالي را فراموش نکنيد ، چون معمولاً کارفرما را کمتر در طول انجام پروژه ملاقات مي کنيد . بعضي از کارفرمايان عادت دارند که از جواب دادن به سئوالات شما فرار کنند و با گفتن جمله اي شبيه به " ببينيد من فقط ميخواهم اين پروژه کار من را راه بيندازد و فلان کار را به خوبي انجام دهد " و از اين دست جمله ها ، سر و ته صحبت را به هم بياورند . شما بايد بتوانيد هر اطلاعاتي که لازم داريد از زير زبان کارفرما بيرون بکشيد . اين يک مهارت است . خيلي وقت ها کارفرمايان شما از سيستم هاي کامپيوتري چيزي نمي دانند و نبايد تعجب کنيد که حتي دستشان به ماوس هم نخورده باشد ! اگر کاربر سيستم شما همان کارفرما باشد که کارتان خيلي سخت خواهد بود . در غير اين صورت حتماً بعد از صحبت با کارفرما با کاربراني که قرار است با سيستم شما کار کنند نيز صحبت کنيد و از سطح آشنايي با کامپيوتر و سواد آن ها اطلاع پيدا کنيد . آشنايي با کاربران سيستم ، ديد شما را بازتر خواهد کرد .

امکان سنجي کنيد
 

بعد از اينکه فهميديد کارفرما واقعاً چه مي خواهد ، امکان سنجي کنيد که آيا مي توانيد با دانش خود و ابزارهاي موجود اين پروژه را انجام دهيد يا خير . به هر حال خودتان بهتر مي دانيد چه توانايي هايي داريد و با چه ابزارهايي آشنايي داريد . اگر پروژه اي فقط با يک ابزار خاص بايد انجام شود و شما کار با آن ابزار را بلد نيستيد ، خيلي راحت پروژه را قبول نکنيد . هرگز به اميد اينکه طي انجام پروژه ، کار با ابزاري را ياد خواهيد گرفت ، پروژه اي را قبول نکنيد . فاکتورهاي بسيار مهم ديگري که بايد تخمين بزنيد و در نظر بگيريد ، زمان و هزينه پروژه هستد . معمولاً زمان تحويل را کارفرما تعيين مي کند ، اگر حتي يک درصد هم امکان مي دهيد که اين زمان براي انجام چنين پروژه اي کم است ، پروژه را قبول نکنيد يا وقت بيشتري از کارفرما بخواهيد . اگر زمان تحويل دست خودتان است ، زماني که تخمين مي زنيد را دو برابر کنيد و در قرارداد ذکر کنيد . دستمزد انجام پروژه معمولاً دست شما نسيت و کارفرما آنقدر چانه زني مي کند که شما را از رو خواهد برد . اگر پول برايتان مهم نيست و فقط براي کسب تجربه پروژه انجام مي دهيد که هيچ ، اما اگر دستمزدتان برايتان مهم است حتماً قيمت معقولي را بر اساس حجم کار و زماني که از شما خواهد گرفت ، بدهيد . اين قيمت مي تواند تحت تاثير اعتبارتلن نيز قرار گيرد . به هر حال من خودم هنوز به فرمول مشخصي براي قيمت دادن نرسيدم .

حتماً قرارداد ببنديد
 

هر چقدر هم پروژه مورد نظر کوچک باشد ، شما بايد با طرف مقابل قرارداد محکمي ببنديد و حتماً امضا و احتمالاً مهر کارفرما را زير آن قرارداد داشته باشيد . حتماً فاکتور زمان و استثناهايي که ممکن است در طول انجام پروژه پيش بيايد را در بندهاي قرارداد جاي دهيد . هزينه انجام پروژه را به صراحت در قرارداد ذکر کنيد و بندي قرار دهيد که مثلاً 50 درصد هزينه را کارفرما در طي انجام پروژه پرداخت کند و بقيه را حداکثر تا 10 روز پس از تحويل پروژه بپردازد . اگر کارفرما به پشتيباني نياز دارد ، حتماً و تاکيد مي کنم حتمآً چند بند را در قرارداد براي خدمات پشتيباني و استثناهاي مربوط به آن کنار بگذاريد . به طور مثال شما مي توانيد با همان هزينه انجام پروژه ، يک سال به صورت رايگان پشتيباني را انجام دهيد . در اين صورت بطور دقيق تاريخ اتمام يک سال خدمات پشتيباني رايگان را ذکر کنيد . براي استفاده از خدمات پشتيباني نرخي را در قرارداد ذکرکنيد و بندي هم قرار دهيد که ممکن است در سال هاي بعد اين نرخ افزايش يابد . حتماً مشخص کنيد که اين خدمات پشتيباني فقط مربوط به مشکلات مربوط به نرم افزار شماست نه چيز ديگر . مثلاً ذکر کنيد که شما در قبال مشکلات سخت افزاري و نصب ويندوز و اين جور چيزها مسئوليتي نداريد .

پروژه را تحليل کنيد
 

نيازهاي هر کاربر از سيستم را ليست کنيد . سرويس هايي که قرار است سيستم به کاربران مختلف بدهد را مشخص کنيد . اگر با مباحث مهندسي نرم افزار آشنايي داريد ، اين قسمت همان شناسايي Actor ها و Usecase هاي سيستم است . هر چقدر شناخت خود را از پروژه افزايش دهيد ، کيفيت خروجي کار شما بالاتر خواهد بود و در نتيجه کارفرما راضي تر . پس تا مي توانيد مرحله شناخت نيازها و تحليل سيستم را جدي بگيريد . خروجي فسمت تحليل ، مستنداتي است که بر اساس آن پروژه شکل مي گيرد . سعي کنيد همه چيز را مستند کنيد . از مصاحبه هايي که با کاربران سيستم انجام داده ايد تا مسائل فني را براي خودتان بنويسيد . حتي اگر پروژه خيلي هم به نظراتان کوچک باشد ، باز هم اين مستندات لازم و حياتي هستند . در قسمت طراحي و پياده سازي متوجه خواهيد شد که اين مستندات چقدر فهم مسئله را ساده تر مي کنند . در اينجا مي توانيد از يکي از روش هاي معمول مهندسي نرم افزار براي تحليل استفاده کنيد .

فاز طراحي را جدي بگيريد
 

با استفاده از مستندات قسمت تحليل ، بايد طراحي سيستم نرم افزاري را شروع کنيد . کلاس هاي سيستم را با توجه به مستندات و شناختي که از سيستم داريد مشخص کنيد . اين کلاس ها ممکن است در زمان پياده سازي تغييراتي بکنند . شما فعلاً به صورت کلي کلاس ها را ببينيد . سعي کنيد براي درک بهتر آن ها ، دياگرام کلاس ها را نيز رسم کنيد . در اين فاز معماري سيستم نيز مشخص مي شود . ابتدا معلوم کنيد که پلت فرمي که قرار است سيستم روي آن کار کند چيست . مثلاً قرار است نرم افزار تحت وب کار کند يا تحت ويندوز . البته پلت فرم بسياري از پروژه ها در هنگام سفارش ، معلوم مي شود . اگر پلت فرم بستگي به نظر شما دارد ، سعي کنيد پلت فرمي را انتخاب کنيد که هم روي آن تجربه و تخصص داريد و هم مناسب انجام اين پروژه است .

پياده سازي
 

اگر فازهاي قبلي را به درستي انجام داده باشيد ، در پياده سازي با مشکل حادي برخورد نخواهيد کرد . مستندات دو فاز قبلي مشخصات پياده سازي را تعيين مي کنند . اگر پروژه شما نياز به يک پايگاه داده براي ذخيره اطلاعات دارد ( که در اکثر پروژه ها همينطور است ) ، ابتدا داده هايي که قرار است ذخيره کنيد را بر اساس مستندات فازهاي قبلي شناسايي کنيد . اگر مي توانيد نمودار روابط بين موجوديت ها يا ERD و Data Model را براي درک بهتر بانک اطلاعاتي سيستم رسم کنيد . براي بانک اطلاعاتي خود يک RDBMS مناسب انتخاب کنيد . وقتي به طور مثال SQLite يا Access نياز شما را برطرف مي کنند ، بيخودي خود را درگير پيچيدگي هاي SQL Server يا Oracle نکنيد .
براي پياده سازي يک پروژه نرم افزاري ، احتياج به ابزارهاي توسعه نرم افزار و يک زبان برنامه نويسي داريد . اگر کارفرما اين ها را مشخص کرده که هيچ ، اما اگر بستگي به خودتان دارد ، ابزار و زباني را انتخاب کنيد که در آن تجربه داريد و متناسب با پروژه شماست . پلت فرم ها و محيط هاي معمول توسعه نرم افزار براي پروژه هاي شما مناسب هستند ، پس اصلاً نگران انتخاب ابزار و زبان نباشيد .
معمولاً بعد از پياده سازي و تحويل نهايي به کارفرما کارتان تمام نمي شود . تازه بعد از آن است که کارفرما هر روز با شما تماس مي گيرد که فلان قسمت برنامه را برايش عوض کنيد يا قابليت جديدي به آن اضافه کنيد . در اينجا فقط يک قرارداد محکم مي تواند شما را نجات بدهد . بايد در قراردادي که با کارفرما بسته ايد ، بندهايي براي تغيير در نرم افزار و اضافه کردن قابليت جديد به آن در نظر بگيريد که زبان شما هم در مقابل کارفرما دراز باشد .

در آخر
 

اگر صلاحيت فني و روحي انجام پروژه اي را در خودتان نمي بينيد ، به هيچ وجه قبولش نکنيد ، چون دردسرهاي زيادي برايتان پيش خواهد آورد . سعي کنيد به هيچ وجه با کارفرما خودماني نشويد و شوخي نکنيد ، کلاس کاري خود را حفظ کنيد و فاکتور زمان را حتمآً رعايت کنيد . پروژه را که سروقت تحويل دهيد در حقيقت به اعتبارتان افزوده ايد . کارفرمايان اصولاً در هنگام پول دادن کم پيدا مي شوند و شما اگر بهترين نرم افزار هم برايش توليد کرده باشيد ، باز ايراد خواهد گرفت و از شما تخفيف خواهد خواست .
منبع:وفاق
ارسال توسط کاربر محترم سايت : sajad2007
Add Comments
Name:
Email:
User Comments:
SecurityCode: Captcha ImageChange Image