# Native Code > برنامه نویسی در Delphi >  بهترین روشهای انجام پروژه .

## آیدا رضایی

تابحال بحث های زیادی در مورد چگونگی انجام پروژه ها . مطرح شده .
اما اگه دوستان بیان و تجارب خودشون در روشهای انجام پروژه ها بگن میشه کاربرانی تازه کار مثل من رو راهنمایی بسیار خوبی در زمینه انجام پروژه ها کرد.
غیز از اینکه یک فرهنگ سازی بسیار خوب در زمینه انجام پروژه و برنامه نویسی خواهیم داشت .
بطور مثلا دوستان بیان بگن که از ابتدای قبول یک پروژه و یا حتی در هنگام پیشنهاد پروژه به اونها از سمت کارفرما چه کارهایی رو انجام میدن .
نمونه اینکه در هنگام دریافت پروژه ابتدا شروع به تجزیه و تحلیل . الگوریتم نویسی . طراحی فلوچارت . تقسیم کار بین برنامه نویسان (در صورت وجود گروه) و از اینجور بحث ها .
اما کاملا بصورت طبقه بندی شده .
خلاصه اینکه کاملا توضیحات رو ارائه بدن .
حتی دوستانی که بعضی از اینکارها رو در طول پروژه انجام نمیدن بیان و دلیل رد کردن اونها رو عنوان کنن و در نهایت به یک نتیجه بسیار مفید برسیم که برای انجام یک پروژه از چه روشها و چه ابزارهایی استفاده کنیم تا در نهایت برنامه ای کامل تر و بهتر داشته باشیم.

----------


## Ehsansh

خانم رضایی این چیزایی که شما مطرح کردین خودش چند تا تاپیک هستش!
بعضی از مواردش مثل الگوریتم نویسی و حتی تحلیل مربوط به دانشگاه ها هست!
اما بقیه موارد که بسیار مهم هستند:
از زمانی که شما میرید برای صحبت در مورد پروژه لحظه به لحظه حرکات شما و تک تک کلمات شما میتونه در قبول یا رد پروژه موثر باشه. اینجا دو حالت وجود داره:
1) شما مشتتون پره و تا حالا کلی پروژه انجام دادین وکلی درآمد از این راه کسب کردین. که در این حالت کار شما بسیار راحته. چند تا بروشور از محصولات و کارهای خودتون ارائه میدین و سپس وارد بحث در مورد پروژه میشن و در هر چند جمله یکبار به کارهایی که تابحال انجام دادین اشاره میکنید. ضمنا در اینصورت شما نرخ خاص خودتون رو دارین که بیشترشو هنگام قرارداد میگیرین و مخاطب در صورتی که نتونه نرخ رو پرداخت کنه باید بره سراغ یم برنامه نویس دیگه!
2)شما یک تازه کارهستین. پس از طریق آشنایی با افراد و ایجاد رابطه های قوی تر باید برای گرفتن سفارشها اقدام کنید. نرخ شما پایین تر از مورد اول است. دائما تاکید میکنید که بالاخره چون شما رو آقای فلانی معرفی کرده ما یک برنامه ویژه با نرخ منایب برای صرفا شما تهیه میکنیم قابل شما رو هم نداره. اصلا میخواین کل پول رو بعد از رضایت از برنامه پرداخت کنید! (اما با چک).

در هر دو حالت باید قبل از مصاحبه با شخص یا اشخاص مورد نظر تمامی موارد کاربردی و مفید اینچنین سیستمی را بررسی کرده و در حین صحبت به آنها اشاره کنید. و نمونه کار آماده هم داشته باشید. همراه داشتن بروشور یک برنامه هم میتواند موثر باشد.

خیلی مسائل دیگه هم هست که بعدا میگم. الان خسته شدم اینقدر نوشتم.
این نظر شخصی منه. امیدوارم کمکتون کنه.

----------


## shayan_delphi

تو انجام پروژه حتما حتما حتما از همان اول کار عادت کنید به مستند سازی.
کار مهمی که به اون توجهی نمیشه یا خیلی کمرنگ و سطحی.

----------


## آیدا رضایی

> از زمانی که شما میرید برای صحبت در مورد پروژه لحظه به لحظه حرکات شما و تک تک کلمات شما میتونه در قبول یا رد پروژه موثر باشه.


خوب این میشه هنگام گرفتن پروژه که شما به نکات خوبی و تقسیم مناسبی در گرفتن پروژه ها اشاره کردید .



> تو انجام پروژه حتما حتما حتما از همان اول کار عادت کنید به مستند سازی.


کمی بیشتر توضیح بدید . شما بعد از گرفتن پروزه چه کارهایی رو انجام میدید.
دوستان بیان عنوان کنن بعد از گرفتن پروژه دوستان چه مراحلی رو طی میکنند .
مثلا چند نفر بعد از گرفتن پروژه برنامه ریزی روند کدنویسی و تست و اینجور مراحل رو انجام میدند.
میخوام در آخر به یک راه و روش یا استاندارد (البته استانداردی که از روی بهترین گزینه ها و روش ها انتخاب میشه ) برسیم.
اگه دوستان دیگه هم بیان و شرکت کنند خیلی خوب میشه .

----------


## shayan_delphi

انجام پروژه 2 حالت داره :یکی کار بدون اصول و  برنامه ریزی  (که با عرض معذرت تو کشور ما بیشتر اینجوری عمل میشه) یکی هم طبق استاندارهای خاص و قواعد معین مثل SSADM
راه اول که مشخصه!!کار را تحویل می گیری میری پشت سیستم شروع می کنی کد نویسی .
حالت دوم هم بر مبنای اون استاندارد خاص پیش میره که اصولا باید تحت مدیریت یک مدیر پروژه باشه.
1-ارزیابی پروژه 2-برنامه ریزی 3-تحلیل و بررسی نیازها 4- مشخصات و ویژگیها 5-طراحی
6- برنامه نویسی 7-تایید 8-پیاده سازی 9-پشتیبانی (و به روز رسانی)
هر کدام از موارد در تخصص شخص و گروه خاص زیر نظر مدیر پروژه انجام می گیره

----------


## آیدا رضایی

> حالت دوم هم بر مبنای اون استاندارد خاص پیش میره که اصولا باید تحت مدیریت یک مدیر پروژه باشه.
> 1-ارزیابی پروژه 2-برنامه ریزی 3-تحلیل و بررسی نیازها 4- مشخصات و ویژگیها 5-طراحی
> 6- برنامه نویسی 7-تایید 8-پیاده سازی 9-پشتیبانی (و به روز رسانی)


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

----------


## راحله سعادتی

خانم رضایی بحث بسار عالی راه انداختید .
ما که تجربه نداریم .
اما آرزو میکنیم دوستان ما در این سایت اطلاعات خود را در این تایپیک قرار دهند

----------


## Ehsansh

برای دوستان مبتدی (از نظر فعالیت اقتصادی) این رو عرض کنم که:
حتما سعی کنید یم پروژه برای یک سازمان هر چند کوچک بنویسید. حتی با نرخ پایین و اقساط چند ماهه! این میتونه در تبلیغات کاریتون خیلی موثر باشه.
من خودم چند سال پیش یه برنامه برای سازمان تبلیغات اسلامی نوشتم.
اون زمان با 250 تومان کار رو انجام دادم که البته ارزش کار به نظر من حداقل 600 700 تومان بود.
اما بیشتر از اون 600- 700 تومن تاحالا از اسمش پول درآوردم!
هرجا میرم نمونه کار میخوان اینو که میگم طرف خوشش میاد و احتمالا باخودش میگه اینا کارشون خیلی درسته سازمانی کار میکنن. چی کار میشه کرد ملت ما اینجوری فکر میکنن.
یک نکته بسیار مهم:
هیچ وقت در صحبتهاتون این رو مطرح نکنید که شما یک نفر هستین. همیشه بگید گروه ما این پروژه ها رو انجام داده و ما ایم کار رو کردیم و اون کارو کردیم. این یک مسئله روانشناسی ساده هست. خودتون در موردش فکر کنید میتونید دلیلش رو بفهمید.

اینم از این. امیدوارم کمکتون کنه.

----------


## mzjahromi

> حتما سعی کنید یم پروژه برای یک سازمان هر چند کوچک بنویسید. حتی با نرخ پایین و اقساط چند ماهه! این میتونه در تبلیغات کاریتون خیلی موثر باشه.


این درسته.
متاسفانه تو جامعه ما به نرم افزار اهمیت داده نمیشه و هیچ کس براش ارزشی قائل نیست. (چون هیچ وقت مجبور نیستیم کپی رایت رو رعایت کنیم) از یک طرف کسانی که درخواستی برای نرم افزار دارن می خوان مطمئن بشن که طرف می تونه کار رو انجام بده البته حق هم دارن.
 چون وقتی به اشتباهشون پی می برند که چند ماه گذشته و.... در نتیجه حتما رزومه می خوان.
از طرفی یک عده فقط مبلغ براشون مهمه و کاری به این حرفها ندارن(چون بی تجربه هستند) 
بعضی وقتها هم ضرر میکنن(البته این به ما ربطی نداره)
اینجور افراد معمولا حاضر میشن به من که تجربه کمی دارم پروژه بدن( یعنی تجربه رو در نظر نمیگیرن)
ولی در عوض پول خوبی نمی دن. عیب نداره ندن. هیچ کاری اولش سود آور نیست.
پس همونطور که دوستمون گفتن اول کار نباید فکر این رو بکنید که من ... کار کردم برای ... 
اول اینکه تجربه بدست آوردید.
دوم اینکه رزومه بدست آوردید.
و ...

----------


## mzjahromi

یک مورد دیگه که تو پروژه های بازاری باید در نظر بگیریم زمان هست.
معمولا پروژه ها خیلی بیشتر از اونی که به نظر میرسه زمان بر هستن.
یا به عبارتی دیگه معمولا پروژه ها بزرگتر از اونی که میبینیم هستند.
سعی کنید توی براورد زمانی (مخصوصا برای پروژه های اول ) دو برابر اون چیزی که فکر میکنید(شاید هم بیشتر) زمان لازم دارید وقت بگیرید. اگر این زمان برای طرف شما قابل قبول نیست پروژه رو فاز بندی کنید. بگید تا اینجا رو فلان موقع تحویل میدیم و ...
یادمون باشه بدقولی بدترین ضربه رو به ما میزنه.و هیچ وقت کسی گله نمی کنه که چرا پروژه 1 ماه زود تر تمام شد.
یکی دیگه اینکه پروژه نیمه کاره کسی رو ادامه ندید. اگر هم خواستید برش دارید فرض رو بر این بذارید که می خواهید از اول شروع کنید.(این کار رو بکنید.(از اول شروع کردن) چون وقت کمتری می بره)

----------


## mzjahromi

نکته بعد اینکه کسانی  که می خواهید باهاشون کار کنید(اعضای تیم) رو بشناسید. بعضی وقتها آدم اگه تنهائی یک کار رو انجام بده خیلی زودتر میشه تا اینکه بخواهید مشکلات بقیه رو هم برطرف کنید(امیدوارم  بعد از صرف وقت روی کارای بقیه مجبور نشی خودت از اول بنویسی شون بعد کارفرما بهت بگه .... همون مشکل زمانی که تو پست قبلی ام گفتم)

یک نکته دیگه و خیلی مهم :
وقتی قرارداد رو تموم کردیم و شروع به کار کردیم باید سعی کنیم کار رو به بهترین نحو اجام بدیم حرفهائی مثل" مگه چقدر پول میخواهد بدهد " و امثال اون باعث میشه که ارزش کار شما پائین بیاد(مخصوصا کارهای اول).

بعدی اینکه روی رابط کاربر زیاد کار کنید. کاربر نمیفهمه که زیرکار شما روی برنامه چقدر کار کردید. ولی خیلی خوب میفهمه که مثلا Taborder ها دارن اذیت میکنن و ... 

و
فراموش نکنیم که پروژه عملی پروژه دانشجوئی نیست که اگه یه جا ارور داشته باشه (و استاد متوجه بشه )1 نمره ازت کم بشه. پروژه های عملی اگه ارور داشته باشه (و *کاربر متوجه میشه* ) نمرات صفر میشه. پس پروژه تون رو خوب تست کنید.
درسته تست همیشه ایرادها رو در نمیاره و آخرش یه سری چیزا به کاربر میرسه(فلسفه نسخه بتا همینه) ولی بالاخره یخورده مشکلات شما رو کم میکنه.

من چیز زیادی بلد نیستم و تجربه چندانی ندارم. اینجا اساتید خیلی بزرگی هستند.

----------


## Mahmood_M

واقعا بحث فوق العاده عالی ایه.
من که خیلی چیزها یاد گرفتم. آقای ذولقدری دستتون بابت این توضیحات درد نکنه ...
آقا احسان از شما هم ممنونم و از بقیه دوستان هم تشکر می کنم.
راستش من سنم اونقدر نیست که بخوام پروژه تحویل بگیرم یا در مورد این جور چیزها صحبت کنم ولی یه تجربه در این زمینه دارم :
راستش من برای کتابخونه مدرسمون یه برنامه نوشتم ولی حیف که قبل نشون دادنش زیاد امتحانش نکردم ( فقط توی 2 تا کامپیوتر )
واقعا آقای ذولقدری راست می گن ، اونایی که برنامه رو می بینن نمی دونن که با چه عذابی درست شده و فقط می خوان که خوب کار کنه واگه خوب کار نکرد دیگه ...
خلاصه وقتی برنامه رو بردم و نشون دادم یه دو سه تا اشکال ضایع داشت:
1. با یه قسمت از فونتهاش مشکل داشت ( نمی دونم چرا ویندوز اونا اصلا فونت Tahoma نداشت ).
2. یادم رفته بود که صفحه کلید پیشفرضش رو فارسی بزارم !!! ( چقدر ناظممون رو این یکی گیر داد )
خلاصه این واسم تجربه شد که برای بار دوم دیگه توی حدود 7 یا 8 کامپیوتر امتحانش کردم تا خدا رو شکر دیگه مشکلی نداشت.
فقط می خواستم بگم که امتحان نرم افزار یکی از مهمترین کارها قبل از ارائه محصول نهاییه ...
یه چیز دیگه هم می خواستم بگم اینه که بهتره سعی کنیم که خودمون یه سیستم کاملا استاندارد داشته باشیم و هیچ موقع هم سعی نکنیم که نرم افزار رو بر اساس امکانات سیستم خودمون درست کنیم.
مثلا در انتخاب فونت یا اندازه یا ... معیار اصلی ویندوز خودمون نباشه، یا اگه مثلا از فونت دلخواه خودمون استفاده می کنیم، اونو توی کامپیوتر کاربر نصب کنیم.
چون این جور اشکالها واقعا اعصاب خورد کنه، شاید واسه ما که برنامه رو نوشتیم مشکل کوچیکی به نظر برسه ولی برای کاربری که داره استفاده می کنه خیلی مهمه .
چیز دیگه ای که خیلی مهمه و آقا احسان و آقای ذولقدری هم بهش اشاره کردند تجربه است.
چقدر خوبه که آدم در اوقات بیکاری بره و چندتا از این برنامه های استاندارد رو نگاه کنه و از روی اونا چندتا برنامه کاربردی ولی کوچیک بنویسه تا برای پروژه های بزرگ آمادگی بیشتری داشته باشه.
امیدوام من رو هم توی بحثتون شریک بدونید ...
به امید موفقیت تمام برنامه نویسان ایرانی...

----------


## Mahmood_M

آقای ذولقدری توی پست قبلیتون منظور از *رزومه* چی بود؟ می شه یه خورده توضیح بدید؟

آقای ذولقدری یه سئوال دیگه هم داشتم ( در مورد قیمت گذاری روی پروژه ):
آقا احسان یه چیزهایی گفتند ولی کامل ترش کنید ممنون می شم از آقا احسان و سایر دوستان هم تقاضا می کنم که اگه چیزی می دونن اینجا مطرح کنن ...
واقعا اگه دوستان همکاری کنن تاپیک خیلی خوبی میشه برای مبتدیهایی مثل من ...

----------


## Ehsansh

رزومه شامل لیست و آمار کارهای اجرایی شماست.
قیمت گذاری چند تا فاکتور مهم داره.
از نظر من:
1) نرم افزار رو برای کجا مینویسم. چون خیلی برام مهمه. ممکنه برای جایی بنویسم که از نظر مالی برام مهم نباشه. از نظر رزومه کاری برام مهم باشه. در اینصورت در مسئله مالی تا حد زیادی کوتاه میام. مثل تبلیغات اسلامی که براشون با 250 تومن پروژه نوشتم.
2) هزینه هایی که برای خودم داره. 
3) در صورت تعیین شدن ضرب العجل از طرف کارفرما درصدی قیمت بالاتر میره
4) امکاناتی که در پروژه استفاده شده. این روزها یک نرم افزار دیتابیس به راحتی از از عهده هر کسی برمیاد! هرکسی با خوندن یک کتاب دلفی میتونه دیتابیس کار بشه! اما هر کسی نمیتونه به راحتی کار با TAPI رو یاد بگیره. من از این مسئله هم برای رقابت با سایر نرم افزارها استفاده میکنم. برنامه آژانسی نوشتم که فقط بخاطر داشتن Caller ID تو بازار اینطوری بفروش میره.
5) اینو یادم رفت بگم: توان مالی طرف خیلی مهم هست. شما زمانی که دارید برای یک کارخانه چند میلیاردی برنامه مینویسید طبیعتا تفاوت داره کارتون و قیمت گذاریتون با یک مغاره یا فروشگاه.
اگه باز چیزی یادم اومد هستم در خدمت دوستان...

----------


## Mahmood_M

آقا احسان دسستتون درد نکنه.
یه سئوال



> مثل تبلیغات اسلامی که براشون با 250 تومن پروژه نوشتم.


250 تا تک تومن؟

----------


## Ehsansh

:قهقهه:   :قهقهه:   :قهقهه:   :قهقهه:   :قهقهه:  
بابا تو دیگه کی هستی!
دیگه گفتم ارزون نگفتم رایگان!
این روزا windowsXP (سمبل کم ارزش ترین نرم افزار در ایران!) هم کپی میکنن 500 تومن میگیرن.
250000 تومن.
 :چشمک:   :چشمک:   :چشمک:   :چشمک:

----------


## mzjahromi

> 4) امکاناتی که در پروژه استفاده شده. این روزها یک نرم افزار دیتابیس به راحتی از از عهده هر کسی برمیاد! هرکسی با خوندن یک کتاب دلفی میتونه دیتابیس کار بشه! اما هر کسی نمیتونه به راحتی کار با TAPI رو یاد بگیره. من از این مسئله هم برای رقابت با سایر نرم افزارها استفاده میکنم. برنامه آژانسی نوشتم که فقط بخاطر داشتن Caller ID تو بازار اینطوری بفروش میره.


????????????????
فکر کنم یه خورده فرق بکنه. برای یه برنامه کوچولو آره(البته همون هم....)
شما خودت آخرین پروژه ات رو با اولین پروژه ات یه مقایسه بکن.




> آقای ذولقدری یه سئوال دیگه هم داشتم ( در مورد قیمت گذاری روی پروژه ):


مثلما قیمت برنامه با توجه به میزان کاری که انجام میدی هست(حالا یه جاهائی باید کوتاه بیای و یه جاهیئی...)ولی یه چیزی که هست اینه که بعضی جاها پول تخصصت رو میگیری.
یعنی پول زمانی رو که قبلا صرف کردی نه زمانی که الان داری صرف میکنی
ولی یه چیزی که هست اینه که قیمت گذاری قانون خاصی نداره مهمترین معیارها ایناست
1- عرف چی میگه(البته اینهم نه صد درصد)
2-چقدر میتونی بگیری
3- انصاف چقدره
4- تخصصت چقدر ارزش داره( آیا همونطوری که دوستمون گفتن همه از پس این کار بر میان)
5- برای کجا مینویسی
و ...

تو پروژه ای که شما تنها مینویسید بماند.
ولی تو یه پروژه که تیمی کار میکنید حتما باید در نظر بگیرید ببینید چقد هزینه میبره. و اونهم به تجربه زیادی نیاز داره.
3

----------


## Ehsansh

> ????????????????
> فکر کنم یه خورده فرق بکنه. برای یه برنامه کوچولو آره(البته همون هم....)
> شما خودت آخرین پروژه ات رو با اولین پروژه ات یه مقایسه بکن.


از نظر من فرق میکنه اما از نظز کاربر که اصلا نمیدونه برنامه نویسی چیه نه!

----------


## mzjahromi

> از نظر من فرق میکنه اما از نظز کاربر که اصلا نمیدونه برنامه نویسی چیه نه!


دقیقا
--------------

----------


## Ehsansh

یه نکته جالب در این زمینه بگم:
یه بار برای مذاکره به یه رستوران رفتم. صاحب رستوران از آشنایان یکی از دوستام بود.
میگفت من حساب چکهام خیلی بهم ریخته. حساب کتابام از دستم در رفته و هزاره یک مشکل دیگه از این نوع.
منم بهش استفاده از کامپیوتر رو پیشنهاد دادم. طرف هم گفت مرد حسابی من وقت ندارم سرمو بخارونم حالا بیام با کامپیوتر بازی کنم!!!
حالا من چطور به این بابا فهموندم قضیه چیه بیشتر شبیه به یک معجزه هست!

حالا اینو گفتم که شما فرض کنید وقتی چنین مشتریهایی در حیطه کاری ما قرار دارند من چطور بیام بگم نرم افزار بهینه! نرم افزار ساده و زیبا! امنیت اطلاعات!!!

----------


## mzjahromi

> حالا اینو گفتم که شما فرض کنید وقتی چنین مشتریهایی در حیطه کاری ما قرار دارند من چطور بیام بگم نرم افزار بهینه! نرم افزار ساده و زیبا! امنیت اطلاعات!!!


اینو قبول دارم.
نمی خواهم بحث به بیراهه بکشه ولی یکی از خاطراتم رو حیف میدونم نگم
سال 79 ما واسه یه جائی برنامه نوشته بودیم.
طرف زنگ زد و شروع کرد به سر و صدا. که آقا این چه وضع برنامه نویسیه. این برنامه که قفل میکنه.
خلاصه پیگیری کردیم........
دیدم آره. آقا میخواد قیمت رو وارد کنه Num Lock خاموشه.
اینم یه جورشه دیگه

البته یه چیز هم بگم 
معمولا این جور آدما
1- حاضر نیستن پول خرج کنن واسه برنامه
2- ارزش برنامه رو نمیدونن. اصلا ارزش کامپیوتر رو نمیدونن.
3- اگه بخوان خودشون با برنامه کار کنن و کسی رو برای این کار نگیرن آخرش برنامه رو کنار میذارن
4- اینکه براشون کار بکنی یا نه تصمیمش با شما ولی من ترجیح میدم...

مدلهای مثل این رو من زیاد برخورد کردم ولی خوب اینجا جائی برای تعریف خاطرات نیست. اینو هم گفتم که دوستان با گوشه ای از مشکلات آشنا بشن.

----------


## Ehsansh

البته این مسائل اینجا میتونه مفید باشه دوست عزیز.
این تاپیک رو میشه برای مسائل حاشیه ای برنامه نویسی در نظر گرفت.
مسائل و مشکلات برنامه نویسی از قبیل قبول پروژه، پشتیبانی و...
چون بحث زیادی در زمینه قبول پروژه فکر نمیکنم مونده باشه.
این تجربیات میتونه برای سایر دوستان مفید باشه.

----------


## Mahmood_M

آقا احسان در رابطه با سئوال قبلیم باید بگم که یه خورده شوخی کردم.
آخه دیگه با 250 تومن یه بسته آدامس هم نمی شه خرید.
راستش شما یه جوری گفتید با طرف راه میام که ...
ولی یه سئوال داشتم:
به نظر خودتون چه ویژگیهایی باعث شده بود که نرم افزاری که شما درست کردید قیمتش 250 تومن بشه چون نرم افزار با این قیمت من خودم خیلی کم دیدم و اکثر برنامه هایی که حتی آگهی هاشون توی مجله ها و روزنامه ها هم هست قیمتشون بیشتر از 100 یا 150 تومن هم نیست. 
همین چند روز پیش هم توی یه مجله تبلیغ یه نرم افزار رو دیدم که خیلی ازش تعریف شده بود و به عنوان یک نرم افزار حرفه ای ، هوشمند و ... ازش اسم برده بودن ( ولی من خودم که دیدمش زیاد خوشم نیومد ) و قیمتش همش 60 تومن بود.
منظور از ویژگیها اینه که مثلا امکاناتی که واسه اون نرم افزار استفاده کردید چی بود.
به نظر من بیشترین چیزی که قیمت اون رو بالا برد اسم جایی بود که براش برنامه نوشتید !! ؟؟؟
راستی چرا برنامه هایی که ما برای یک شرکت یا ... درست می کنیم قیمتش خیلی بشتر از نرم افزارهای معروفیه که با قیمت پایین تو بازار فروخته می شه.
آیا دلیلش همون سفارشی بودنشه؟
آیا نرم افزارهای ما هم وقتی ( انشاالله ) به بازار رفت قیمتش پایین می یاد.
نمی دونم شما تک نفری برنامه می نویسید یا گروهی کار می کنید ولی اگه بخواید نرم افزارهاتون رو یه جا ارائه بدید چی کار می کنید؟
آیا مثلا یه تبلیغ توی اینترنت یا ... کافیه؟
مثلا من خودم رو در نظر می گیرم:
الان دوتا نرم افزار ( یکی برای مدیریت کتابخونه و یکی هم برای مدیریت توی ویدئو کلوپ ) نوشتم.
حالا می خوام این نرم افزارها رو یه جایی ارئه بدم.
با توجه به این که من سنم زیاد نیست و جایی هم پارتی مارتی ندارم.
حالا باید چی کار کنم؟
راستش این برنامه کتابخونه رو تونستم از طریق مدرسمون یه کاریش کنم.
نسخه اصلیش رو که نشون دادم اونا خوششون اومد و قرار شده که بعد از عید ( اگه خدا بخواد ) توی مدرسه های دیگه ( شهر رشت ) پخش بشه.
حالا اگه یه نرم افزاری بنویسم که مثلا به مدرسه ربطی نداشته باشه چه جوری می تونم معرفیش کنم؟
اگه یه خورده راهنماییم کنید ممنون می شم ...
از آقای ذولقدری و بقیه دوستان هم خواهشمندم که اگه اطلاعاتی دارن در اختیار من قرار بدن ...

----------


## mzjahromi

> به نظر خودتون چه ویژگیهایی باعث شده بود که نرم افزاری که شما درست کردید قیمتش 250 تومن بشه چون نرم افزار با این قیمت من خودم خیلی کم دیدم و اکثر برنامه هایی که حتی آگهی هاشون توی مجله ها و روزنامه ها هم هست قیمتشون بیشتر از 100 یا 150 تومن هم نیست. 
> همین چند روز پیش هم توی یه مجله تبلیغ یه نرم افزار رو دیدم که خیلی ازش تعریف شده بود و به عنوان یک نرم افزار حرفه ای ، هوشمند و ... ازش اسم برده بودن ( ولی من خودم که دیدمش زیاد خوشم نیومد ) و قیمتش همش 60 تومن بود.


ببینید دوست عزیز:
قیمت نرم افزار در دو مورد متفاوت زمین تا آسمون با هم فرق میکنه.
1- نرم افزارهای سفارشی: این نرم افزار ها خاص یه جا نوشته میشه و فقط همون جا کاربرد داره. واسه همین هم قیمت فوق العاده بالائی داره. نه اینکه قیمتش زیاد باشه ولی چون که بدرد جائی دیگه نمی خوره اون سازمان یا شرکت یا ... باید کل هزینه تولید نرم افزار رو بده. من نمی دونم برنامه آقای شیرزادی وسعتش چقدر بوده و چی هست ولی چون به نظر میرسه از این نمونه برنامه ها باشه پس قیمت خیلی پائینی گرفتن. این جور برنامه ها هر چقدر هم که ساده باشن دیگه کمتر از 500 تومن نمیشه.
2- نرم افزار های پکیج که به صورت انبوه پخش می شن. مثل برنامه کتابخانه خود شما . یا برنامه های حسابداری
به عنوان مثال یه برنامه حسابداری مثلا 10 میلیون هزینه تولید میبره. خوب اگر از این برنامه 1000 تا با قیمت 20 تومن فروش بره میشه 20 میلیون  که هزینه تولیدش در میاد و یه چیزی هم اضافه تر. اون چیزی که شما می گی دلیلش اینه. برنامه هائی که تو بازار هستن اونائی که پکیج هستن و پر کاربرد معمولا قیمتشون پائینه ولی برنامه هائی که سفارشی هستن و خاص یک اداره یا سازمان یا ... قیمت بالاتری دارن

----------


## Ehsansh

> به نظر خودتون چه ویژگیهایی باعث شده بود که نرم افزاری که شما درست کردید قیمتش 250 تومن بشه چون نرم افزار با این قیمت من خودم خیلی کم دیدم و اکثر برنامه هایی که حتی آگهی هاشون توی مجله ها و روزنامه ها هم هست قیمتشون بیشتر از 100 یا 150 تومن هم نیست.


قیمت یک برنامه که سفارشی نوشته بشه اصلا قابل مقایسه با نرم افزارهای عمومی نیست. شما دارید یک برنامه رو خاص یک شرکت مینویسید. وقت شما برای اون شرکت گرفته میشه. مخصوصا در مورد برنامه هایی که صاحب اول و آخرشون همون شرکتها هستن. شما فکر میکنید اگر به ایران خودرو یک ماشین سفارش بدین طبق نظر خودتون آیا اونا بازهام پول یک ماشین معمولی رو از شما میگیرن؟
ضمنا برنامه سازمان تبلیغات اسلامی جوری بود که به درد هیچ ارگان و یا شرکتی نمیخوره و این عامل قیمت رو میتونه حتی چند برابر کنه.




> همین چند روز پیش هم توی یه مجله تبلیغ یه نرم افزار رو دیدم که خیلی ازش تعریف شده بود و به عنوان یک نرم افزار حرفه ای ، هوشمند و ... ازش اسم برده بودن ( ولی من خودم که دیدمش زیاد خوشم نیومد ) و قیمتش همش 60 تومن بود.


نرم افزار حسابداری شرکت نسل جوان رو میتوانید با قیمت 5000 تومان تهیه کنید! واقعا جای تاسف داره!



> منظور از ویژگیها اینه که مثلا امکاناتی که واسه اون نرم افزار استفاده کردید چی بود.
> به نظر من بیشترین چیزی که قیمت اون رو بالا برد اسم جایی بود که براش برنامه نوشتید !! ؟؟؟


تا حدودی درسته. مسئله تخصصی بودنش هم هست.



> راستی چرا برنامه هایی که ما برای یک شرکت یا ... درست می کنیم قیمتش خیلی بشتر از نرم افزارهای معروفیه که با قیمت پایین تو بازار فروخته می شه.
> آیا دلیلش همون سفارشی بودنشه؟


بله همونطور که بالاتر هم گفتم.



> نمی دونم شما تک نفری برنامه می نویسید یا گروهی کار می کنید ولی اگه بخواید نرم افزارهاتون رو یه جا ارائه بدید چی کار می کنید؟
> آیا مثلا یه تبلیغ توی اینترنت یا ... کافیه؟


برای نرم افزار های معمولی یا برنامه هایی که برای کاربران عادی ساخته شده شاید اینترنت خوب باشه اما ضریب نفوذ اینترنت در شرکتها و کارخانجات کم هست.



> با توجه به این که من سنم زیاد نیست و جایی هم پارتی مارتی ندارم.
> حالا باید چی کار کنم؟


از بازاریاب استفاده کنی بهتره. برای کلوپ و کتابخونه پارتی لازم نیست.



> حالا اگه یه نرم افزاری بنویسم که مثلا به مدرسه ربطی نداشته باشه چه جوری می تونم معرفیش کنم؟


nv حالا اگه یه نرم افزاری بنویسم که مثلا به مدرسه ربطی نداشته باشه چه جوری می تونم معرفیش کنم؟
[/quote]
در حرفه ما روابط حرف اول رو میزنه.
شما هم ظاهرا در مدرسه ها کمی نفوذ کردی که این خیلی خوبه.

اینها نظرات من بود.
امیدوارم به دردت بخوره...

----------


## راحله سعادتی

شما خسته نشدید

یکی میگیه یکی جواب میده

تا کی

تاکی میخواهید برنامه های 200 هزار تا یک میلیون بنویسید

بهتر نیست یک برنامه جهانی بنویسید 

بس که واسه اینٌ اون برنامه های 200 تومانی نوشتید خسته نشدید .

پیشنهاد من به شما ساخت یک برنامه جهانی و به دو زبان 
فارسی و انگلیسی

بگردید ببینید چی بدرد میخوره

ویندوز چی احتیاج داره

تا کی میخواهید این روند را ادامه دهید

اگه نظر من را بخواهید راجب این بحث های آخر که شما کردید این را فقط میتوانم بگم

برید زبان ماشین را یاد بگیرید سپس روی سیستم عامل مطالعه کنید


نرم افزارهای سیستمی بنویسید
از یک نرم افزار ساده سیستمی شروع کنید بعد از چند سال میتوانید یک ویندوز بنویسید

یادتون نره که ما یک ایرانی هستیم
و تا حالا هر برنامه ای که خواستیم نوشتیم

پس برنامه های بزرگتر از ویندوز هم میتوانیم بنویسیم

----------


## Ehsansh

بله. متاسفانه ما ایرانی هستیم! ایرانی به کار گروهی عادت نداره.
ایرانی بلد نیست در جایی که براش نفع نداره کار کنه. ایرانی به خودش زحمت نمیده به دیگران کمک کنه اگه نفعی براش نداشته باشه. میگید اینطور نیست؟
آیا تاکنون سایت nehe.gamedev.net رو دیدین؟
کامل ترین سایت دنیا در زمینه آموزش OpenGL هست. اینو کسی درست کرده که هیچ چشمداشت مالی به این کار نداشته. با ورود به سایتش این مسئله مشهود هست.
البته من منظورم همه نیست. منظورم 99.9% مردم هستن.

ضمنا متاسفانه به دلیل نبود قانون کپی رایت در اینجا امکان تولید نرم افزار سیستمی نیست!
چرا؟ چون یا معادل خارجی اون به همراه کرکش در دست مردم هست یا اگر هم 1% بتونید نرم افزاری تهیه کنید که معادل خارجیش نباشه فردا همون رو میبینید که دست فروش ها دور میدون انقلاب به 500 تومان میفروشن! این درد برنامه نویسان ایرانی هست.

به امید پیشرفت و روزی که فرهنگ حمایت از برنامه نویسان در مردم ما بوجود بیاد و زمینه برای رشد برنامه نویسان فراهم بشه.

----------


## آیدا رضایی

خوب.
متاسفانه من تا این زمان به علت نداشتن اکانت اینترنت نتونستم بیام و این تاپیک رو چک کنم .
--------------
تا اینجا بحث های خیلی خوبی روی نحره گرفتن یک پروژه و مبلغ های انجام اون با کمک دوستای عزیز شد .
و با این حساب برای گرفتن یک پروژه ابتدا اشخاص برنامه نویس به 2 گروه تقسیم میشن :
1 - افرادی که از رزومه کاری و تجربه خوبی برخوردارند .
2 - افرادی که رزومه کاری چندان خوبی ندارن . (تجربه هم که واسه کارفرما بدون بودن رزومه نون و آب نمیشه !).
--------
حالا فرض کنید ما به هر صورتی که شده پروژه رو گرفتیم .
اولین کاری که بعد از دریافت پروژه میکنیم چی هست ؟ (اگه فرقی بین افراد با تجربه و بی تجربه هست عنوان کنید )
آیا منبعی برای بهترین روش انجام اینکار هست .
دوستان مطمئنا هرکدوم روش خاص خودشون رو دارن .
خواهشا اون کاری که خودتون انجام میدید رو بگید .
در ضمن به نظر من در حین ادامه دادن بحث های این تاپیک به چگونگی انجام پروژه های گروهی و انجام اونها هم اشاره بشه .

----------


## Mahmood_M

> اولین کاری که بعد از دریافت پروژه میکنیم چی هست ؟ (اگه فرقی بین افراد با تجربه و بی تجربه هست عنوان کنید )
> آیا منبعی برای بهترین روش انجام اینکار هست .
> دوستان مطمئنا هرکدوم روش خاص خودشون رو دارن .
> خواهشا اون کاری که خودتون انجام میدید رو بگید .


خانم رضایی فکر کنم دوستان جواب شما رو توی پستهای قبلی داده بودن،
ولی اگه نظر من رو بخواید من وقتی نوشتن یک برنامه رو شروع می کنم مراحل زیر رو طی می کنم:
( البته اینم اضافه کنم که من تاحالا از جایی پروژه تحویل نگرفتم ولی چند تا برنامه نوشتم که جاهای مختلف استفاده می شه )
مثلا فرض کنید که تصمیم گرفتید یک برنامه واسه کتابخونه ینویسید ( چون تجربه اش رو دارم می گم )
اول می یایم می بینیم که یک کتابخونه چه قسمتهایی داره و چه قسمتهایی از اون رو می شه با نرم افزار اداره کرد.
بعد ظاهر برنامه رو می یاریم رو کاغذ، یعنی می یایم اول ظاهر برنامه رو رسم می کنیم و مشخص می کنیم که توی کدوم قسمت فلان ابزار باید استفاده بشه و ...
بعد از اینکه کارها کم کم دیگه ساخت نرم افزار رو شروع کنیم.
بعد از شروع پروژه باید به قدرت و انعطاف پذیری برنامه ای که می نویسیم زیاد توجه کنیم.
من خودم بیشتر سعی می کنم که برنامه من ظاهری ساده داشته باشه اما قدرت زیادی داشته باشه. ( درسته که بعضی موقع ها ظاهر برنامه باعث بهتر نشون دادن اون می شه ولی من خودم بیشتر سعی می کنم که کار رو برای کاربرهای برنامه راحت کنم )
من فقط به یک چیز در برنامه خیلی اهمیت می دم اونم کنترل خطاها است که در نرم افزارهای بانک اطلاعاتی خیلی کاربرد دارن. ( همیشه دوست دارم که وقتی یک خطای حتی خیلی جزئی توسط کاربر رخ می ده با پیغامی که خودم بهش نشون می دم مواجه بشه نه با پیغامهایی که ابزارها صادر می کنند )
بقیه کارهایی هم که در طول انجام پروژه مد نظر قرار می گیره توسط دوستان توضیح داده شد.
مطمئنا کارهایی که من برای ساخت یک برنامه می کنم با کسائی که تجربه بیشتری دارن و برنامه های زیادتری نوشتن فرق می کنه ( مثل بقیه دوستانی که در همین بحث شرکت کردند ) ولی باز دوستان مطمئنا جواب شما رو خواهند داد.

----------


## coder

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

----------


## Ehsansh

یک نکته مهم رو در انجام پروژه از یاد نبرید:
پروژه ای که الان مینویسید میتونه در پروژه های بعدی خیلی به کارتون بیاد.
پس در نوشتنش دقت کنید.
این یک از کارهایی هست که با تجربه تر ها انجام میدن.

----------


## Yalda2005

سلام تاپیکه جالبیه ... مخصوصاً قسمت این که چه جوری قیمت تعیین کنیمش ... بنظر من تو هر پروژه ای همون طور که یکی از دوستان اشاره کردن مستند سازی خیلی مهمه ... نکات ریز و مهم از یاد ادم می رن !!!

----------


## Ehsansh

تقسیم برنامه به ماژولهای مجزا و واضح میتونه از مستندات هم واجب تر باشه.
چون نه تنها در این پروژه بلکه در پروژه های بعدی هم کمک میکنه.

----------


## Yalda2005

بله درسته ... من این رو گفتم که فقط اشاره ای کرده باشم ! ... درمورد این تقسیمات بیشتر توضیح بدید ... ممنون می شم ...

----------


## آیدا رضایی

جناب coder شما به نکته های بسیار بسیار خوبی اشاره کردید .



> هزینه نگهداری و خدمات پس از فروش سیستمهایی که فروخته اند بیش از هزینه تمام شده


من خودم هم اینرو به واقع تجربه کردم که سر یک پروژه تا الانش پس از گذشت 1 سال هنوز هزینه هایی برای پشتیبانی دارم پرداخت میکنم .
مبلغی دریافتی برای پروژه 1 تومن بود اما با حسابی که تا الان شده مبلغ پیشتیبانی همینطور کنتر میندازه و متوقف نمیشه .! 
دوستان در مورد نحوه قبول پشتیبانی و شرایط وزن اون هم از تجربه هاشون در اختیار ما بذارن . 
آیا پشتیبانی مدت دار در قرارداد وزن منند (البته عرف هم همینه) . دوره های پشتیبانی و مبلغ های هر دوره رو به چه صورت وزن میکنند ؟.
هزینه پشتیبانی رو نسبت به چه چیزایی در نظر میگرین و در کل محاسبه هزینه پشتیبانی از نظر دوستان به چه صورت هست ؟ 
آیا در هنگام پروژه مبلغی رو برای پشتیبانی اولیه در نظر میگیرید ؟
//---
نگته بسیار جالب بعدی که جناب Coder اشاره کردند :



> "یک دلیل طولانی شدن پروژه اینه که معمولا برای تکمیل برنامه، شما نیاز به اطلاعات یا توضیح گردش کار از طرف کارفرما دارید که اگر دولتی باشد، خود این بخش میتونه یک پروژه بزرگتر 
> باشه! ولی کارفرما معمولا حاضر نمیشه تاخیر مربوط به خودشو بعهده بگیره. من پیشنهاد میکنم موقع قرارداد یه جوری شرط کنین که مثلا زمان قرارداد بعد از ارائه کلیه اطلاعات درخواستی شما محاسبه بشه.


به نظر من این یک روش کار هست . اما خوب مسلما همونطور که اشاره کردید کارفرما حاضر نمیشه تاخیر مربوط به خودشو به عهده بگیره و در هنگام قرارداد اومدیم شرط کرد پروژه باید تا 
این تاریخ چه با اطلاعات و بی اطلاعات تموم بشه . (کارفرماست دیگه و در پست های قبلی اشاره به طرز فکر بعضی هاشون شد ( "موضوع رستوران و بازی با کامپیوتر ! o: ) .
دوستان آیا از روش های دیگه هم استفاده میکنند .
مثلا در همون ابتدا شرط کنند که تاریخ شروع پروژه بعد از در اختیار دادن کلیه اطلاعات مورد نیاز نرم افزار هست ؟ .
-----
جناب Mahmood_N : 



> " بعد ظاهر برنامه رو می یاریم رو کاغذ، یعنی می یایم اول ظاهر برنامه رو رسم می کنیم و مشخص می کنیم که توی کدوم قسمت فلان ابزار باید استفاده بشه و ... "  .


به نظر من در تا رسوندن برنامه به نسخه ی beta ظاهر برنامه بخش خیلی کوچکی از برنامه رو  از لحاظ اهمیت تشکیل میده .
اصل برنامه عملکرد اون نسبت به نیازهای کاربر هست .
من خودم به شخصه قبلا در روشهای قبلی از همون اول شروع به کدزنی میکردم و به همین خاطر اکثر برنامه هام دچار مشکل بود  .
اما به تازگی دارم از تجزیه و تحلیل پروژه روی کاغذ . الگوریتم و فلوچارت استفاده میکنم .
به نظر الگوریتم نوشتن و کشیدن فلوچارت یک برنامه که بعدا در صورت بروز اشکال بخوایم اون رو اصلاح کنیم کار رو خیلی راحت میکنه و تنها کار برای رفع اشکال خطایابی در الگوریتم 
اجرایی اون هست . (البته این از نظر منه و در ضمن من به روشهای کدنویسی و خطایابی اون ها فعلا کاری ندارم . منظورم انجام صحیح یک پروژه هست ).
//---



> "تقسیم برنامه به ماژولهای مجزا و واضح میتونه از مستندات هم واجب تر باشه.چون نه تنها در این پروژه بلکه در پروژه های بعدی هم کمک میکنه."


دقیقا . به نظر من این روش یکی از اصولی ترین روشهای برنامه نویسی هست . به نظر من اینکار ارزشش مثل استفاده از Procedure و Function در کدنویسی هست .
اما این هم خودش مستلزم داشتن تجربه در تجزیه و تحلیل یک برنامه هست که ابتدا قسمتهای خاص برنامه رو از بقیه جدا کنیم و اونها رو طوری طراحی کنیم که همیشه با یک تغییرات 
جزئی در جاهای دیگه ازشون استفاده کنیم و یا اگر قبلا قسمتهای مورد نیاز رو ایجاد کرده بودیم از کار اضافی جلوگیری کنیم و از دسترنج گذشته استفاده کنیم .

----------


## Mahmood_M

> من خودم به شخصه قبلا در روشهای قبلی از همون اول شروع به کدزنی میکردم و به همین خاطر اکثر برنامه هام دچار مشکل بود .
> اما به تازگی دارم از تجزیه و تحلیل پروژه روی کاغذ . الگوریتم و فلوچارت استفاده میکنم .


خانم رضایی منظور من هم همین بود.
منظور من این بود که قبل از انجام هر پروژه ای ابتدا باید به خوبی اون رو بررسی کرد و یکی از راههاش هم پیاده سازی اون روی کاغذ است مثلا من خودم قبل از ساخت هر برنامه ای منوها و ابزارهای اون رو که به هم مرتبط هستند در نرم افزار ورد رسم می کنم ( مثلا منوهای برنامه و چگونگی ارتباط فرمها با هم رو به صورت شاخه ای رسم می کنم ) تا در موقع کد نویسی با مشکل زیادی مواجه نشم.
در ضمن همونطور که گفتم من خودم هم زیاد به ظاهر برنامه اهمیت نمی دم و بیشتر روی رابط کاربر اون کار می کنم.
راستش این یکی از روشهایی بود که یک شرکت کامپوتری در تهران ازش استفاده می کرد و چون یکی از بستگانم در اون شرکت حضور داشت من هم این روش رو از اون یاد گرفتم و خیلی هم در بهتر شدن برنامه هام کمک کرد.
من یک نمونه از کارهای اونا رو که برای نرم افزار سازمان مدیریت و بودجه بود رو داشتم ولی الان دستم نیست ولی بعدا حتما براتون توی همین تاپیک میزارم تا با نحوه کار اونها هم آشنا بشید ( چون واقعا شرکت خوبی هستند و نرم افزارهای مهمی می سازند )
موفق باشید ...

----------


## Ehsansh

> بله درسته ... من این رو گفتم که فقط اشاره ای کرده باشم ! ... درمورد این تقسیمات بیشتر توضیح بدید ... ممنون می شم ...


در تقسیم بندی و خوانا کردن کد چند نکته رو باید مد نظر قرار داد:
1) از تکرار کد هرچند کم بپرهیزید. (با استفاده از procedures)
2) کد ها را بلوک بندی کنید با استفاده از پروسیجر ها. مثلا اگر در قسمتی از کدتون قرار هست 10 خط کد برای انجام مثلا Shutdown کردن ویندوز بنویسید بهتره اونو داخل پروسیجر بنویسید و پروسیجر رو فراخوانی کنید. این کار به خوانایی کد کمک زیادی میکند.
3) ما‍ژولهایی که در برنامه های دیگر هم مشترکند را مجزا بنویسید که قابل کپی در برنامه های دیگر هم باشند. مثلا گزارشهای انبار.
4) الگوریتمهای کاربردی رو بصورت مجزا داشته باشید. مثلا الگوریتمهای کد گذاری.

فعلا چیز بیشتری به ذهنم نمیرسه.
امیدوارم اینها کمکتون کنه.

----------


## Yalda2005

ممنون من یه چیز دیگه ای فکر می کردم !

----------


## m_nejad

کسی نمونه فرم قرارداد فروش نرم افزار و تعهداد دو طرف و همین طور قرارداد پشتیبانی داره؟

----------


## rostamkhani

پروژه های مختلف کار کردم ولی بگم که از چند نوع این پروژه ها خیلی خوشم میاد
یکی پروژه های که گرفتم و هیچ تجربه ای در اون مورد نداشتم و در تول مدت زمان قرار دادم یاد گرفتم و انجام دادم
یکی پروژه های که بلد بودم ولی حال نوشتنشو نداشتم و خلاصه از تو این اینترنت پیداش کردم البته نتیجه یکی دو هفته جستجو
یکیم پروژه هایی که به پستم خورد ولی چون بلد نبودم قیمت بالا دادم طرف بپره
راستی بگم که یکی از این پروژه ها با این که قیمت بالا بود قبول طرف داشت قبول میکرد 
ولی به خودم گفتم خیالی نیست اگه قبولم کرد به پولش میرزه برم بخونم یا هزینه کنم یاد بگیرم یا خلاصه شریکی با یکی انجام بدم 
خلاصه ما چیمو از بیل کمتره
یکیم کلاسایه آموزشی که داشتم همون موقه آموزش دادن یاد گرفتم و به بچه ها یاد دادم 
یکیم پروژه های که واقن روشون کار کاردم و وقت گزاشتم 
جسارت- شجاعت - نترس بودن - همیشه در ارتباط بودن - آموزش دادن - بخیل نبودن تو برنامه نویسی - قانع نبودن - مجرد نماندن :چشمک:   - و  غیره همش تاثیر گذاره

----------


## vcldeveloper

Off Topic: اگه وقت کردی و دوست داشتی، یخورده هم روی املاء خودت هزینه کنی بد نیست.

----------


## Delphi_OnLine999

سلام دوستان این بحث یکی از مفید ترین بحث ها بود.
 نکات ارزنده و خوبی اشاره کرده بودند دوستان من هم تاکید می کنم 
_اگر پروژه اول شما است در مورد زمان اتمام آن دچار اشتباه نشوید و زمان که یکی از فاکتور های مهم انجام یک پروژه است را به طور تقریبی می توان گفت دو برابر زمان پیش بینی خود تعیین کنید ...
_سعی کنید کدهای برنامه را از هر جهت تست کنید که در مراحل بعدی کار -پیشرفت پروژه-دچار اشتباه و خطا نشوید.
_کدهای خود را تا حد ممکن مستقل و دسته بندی کنید تا در پروژه های بعدی به راحتی قابل دسترسی و استفاده قرار گیرند.
و نکته آخر اینکه قبل از شروع پروژه اهداف خود مشخص کنید و تا حد امکان با برنامه ریزی برنامه خود را تکمیل کنید.

----------


## negar84

سلام دوستان 
بحث بسیار جالبیه چرا ادامه نمی دین ؟؟؟؟؟
از همتون به خاطر تا همین جاشم ممنون ...
شما می تونید چشم ما را به دنیا ی برنامه نویسان حرفه ای باز کنید 
راستش من یه سئوال داشتم من یه پروژه ای رو قبول کردم حدود 5 ماهه در مورد تلفن گویاست که البته تنهایی دارم انجامش می دم الان حدس میزنم حدود 70 یا حتی 80 در صد کار را انجام داده باشم . تا اینجای کار من بدون قرارداد پیش اومدم به نظر شما حالا باید چی کار کنم ؟؟؟؟ 
چند نکته :
1. این اولین پروژه ی کاریه منه ...
2. در مورد این که چقدر از کار را انجام دادم به قول دوستان من نمی تونم دقیقا معلوم کنم یه لحظه فکر می کنم فقط یه هفته دیگه کار داره 5 دقیقه بعدش به این نتیجه می رسم 2 ماه دیگه کار می بره ... خلاصه در این مورد من کلی با خودم درگیری دارم 
حالا می شه لطفا یه کم هم منو راهنمایی کنید !!!
راستی من چند روزه که دیگه واقعا زدم به سیم اخر و فکر می کنم که دیگه بدون قرارداد نمی تونم ادامه بدم 
ممنون می شم راهنمایی کنید

----------


## vesal

اگر اشتباه نکنم فکر کنم RUP مربوط به همین می شد نه؟

----------


## delphiprog3000

سلام به تمامی دوستان و اساتید محترم...

در این مورد یه pdf جالب داشتم. امیدوارم برای دوستان مفید واقع بشه. 

به امید موفقیت.........

----------


## alinaghiha

دوست عزیز تاپیک خوبی انتخاب نکردید 
لطفا تاریخ درج آخرین مطلب رو ببینید
فایل جالبی بود 
ممنون
اما بهتره تو یه تاپیک جدید ادامه بدید
موفق باشید

----------


## ebnsina

ولو اینکه این تاپیک قدیمی است و با حضور اساتید اظهار نظر من بی ادبیه اما :

من به همه دوستان توصیه می کنم حتما با دو روش RUP و MSF آشنایی پیدا کنن و مطالعه عمیقی داشته باشن. (MSF متعلق به Microsoft است)

اینها همون درسهایی که در دوره دانشگاه ناپلئونی قبول شدیم و راحت از کنارشون رد شدیم!

برای مطالعه RUP کتاب مرجع کاربردی متدولوژی RUP از انتشارات دانشگاه اصفهان رو پیشنهاد میکنم. بسیار آسان و تشریحی در قالب داستان توضیح داده !!
برای MSF هم مرجع فارسی ندیدم. کتاب مرجع اون 
Analyzing Requirements and Defining .NET Solution Architecture
است (وای خدا چقدر اسمش بلنده !) که از انتشارات مایکروسافته و آفست اون در بازار پیدا میشه.
(بطور خلاصه Solution میگن)

بعدش هم بنظر من یک ترکیبی از سه متد مهندسی نرم افزار سنتی (کتاب "روگر اس پرسمن" رو ببینید) و RUP و MSF رو در پروژه هاتون بکار ببرید. 

یعنی چی ؟  :متفکر: 

یعنی اینکه بر اساس نوع پروژه به یکی از روشها بیشتر متمایل بشید و بتدریج نوع خاصی از روش اجرای پروژه خودتون رو بدست بیارید.

جالب به اینه که استاد بنده جناب آقای فرامرز فروزان روش جدیدی رو که ترکیبی است و بیشتر جنبه پیاده سازی اون قوی هستش رو با نام XMethod معرفی کرده اند که در مجلات نرم افزار داخلی (بخصوص متعلق به مجتمع فنی تهران) میتونید اونها رو پیدا کنید.

اگر خدا عمری داد و وقتی شد تجارب خودم رو براتون می نویسم.

----------


## Ahmad Chehreghani

با سلام
چند روزی بود که به سایت نیومده بودم
تاپیکتون خیلی جالب بود!
من نظر خودم رو درباره برنامه نویسی دارم، البته با گفته ebnsina  مخالف نیستم و گفته ایشون درسته اما تو ایران و با برنامه های *زرد* که ما می نویسیم زیاد تاثیر نداره.
خیلی مهمه که روی کاغذ شما چیزی نوشته باشید که یادتون بندازه دارید چیکار می کنید یا چیکار باید بکنید.(در زمان آینده)  اینکه شما برای یک پروژه مثلا اندیکاتور که در یک اتاق کوچیک قرار مورد استفاده قرار بگیره نباید الگوریتم بنویسید (باید تو ذهنتون همه چی باشه) و یا اینکه فلوچارت بکشید! یا اینکه RUP را پیاده سازی کنید.

مشتری رو باید قافلگیر کنید. خودتون باید کاری که مشتری انجام میده رو یاد بگیرید. یه برنامه نویس می شناسم که برای نوشتن برنمه طلا فروشی حدود 2 ماه رفت اونجا کار کرد، حتا برای برنامه فرش فروشیش 2 تا مشاور گرفت.

وقتی تو یک شرکت کار می کردم ، یک همکار داشتم که می رفت پیش مشتری ها و خدماتشون رو انجام می داد. با همشون دوست می شد و حتی بعد از 2 ماه براشون CD های نرم افزار های دیگه می برد و یا با هم می رفتن بیرون!!! اما الان که من که از اون شرکت اومدم بیرون (حدود 2 ساله) مشتری همون شرکت اومد و نرم افزار حسابداری رو از جایی دیگه می خواست بخره ، چرا ، چون می گفت خدمات پشتیبانیشون خوب نیست ! چون اون همکارم هم از اونجا اومده بیرون و بجاش کسه دیگه ای اومده.  خود مشتری گفت که اون قدیمیه خیلی بهتر بود.
فقط با عوض شدن خدمات دهنده یک مشتری که امکان آوردن مشتری دیگری هم داشت از بین رفت!!!

تو نرم افزار ها قیمت خیلی مهمه : اگه یک شرکت بزرگ بگه 100.000 و شما بگید 50.000 اون شرکت برنده هستش. چون اون خیلی پروژه داده. اون تعداد کارمنداش زیاده. تیپ اونا فرق میکنه. شما یک نفرید و تجربتون کمه. اونا خدمات پشتیبانیشون قویه و ....
به نظر من این راسته که خدمات پشتیبانیتون ضعیف خواهد بود، 100%. شما اگه 5 تا برنامه نوشته باشید حتما توش خطا خواهید داشت (مامولا افراد حرفه ای خطاهای بزرگ می کنن!) و یا اگر هم خطا نداشته باشید ، مشتری سفارش کار جدید رو میده و شما اگه همین کار تو 5 تا برنامتون تکرار شه ، نخواهید توانست خدمات دهنده خوبی باشید و اگر هم مشتری از شما راضی نباشه باید با ترس و لرز رزومه کاریتون رو جایی بدید چون ممکنه مشتری جدید بره تحقیق کنه و بقول معروف زیرابتون بره.

درباره پروژه های بزرگ من یک برنامه نویس می شناسم که اون به من دلفی رو یاد داده. اینم بگم که ایشون 2 ماه پیش تو سایت عضو شد و به من "خیلی سایت باحالیه" و بعد از 1 ماه دوباره گفت "احمد خیلی سایتش تکراری و کنده" (البته به بچه های سایت بی احترامی نشه ها)
این آقایی که میگم مدیر برنامه نویسی یک شرکت هستش و تا اونجا که من می دونم تو دو جا کار می کنه و روزی 150 صفحه مطالعه داره ، اما تنها برنامه بزرگش ، یک برنامه حسابداری بوده و چون میدونه که شرکتی نیست که بتونه خوب ساپورتش کنه و کار تیمی قوی توش باشه نمیره جای دیگه.وقتی برنامه املاک بهش پیشنهاد شد 2 هفته ای نوشت، زیاد بزرگ نبود اما تحت شبکه با 5 کاربر داره کار یک املاکی معروف تو قم رو راه می اندازه. من خودم برنامه نویسای نرم افزارهای حسابداری رو میشناسم ، بیشترشون تک نفری برنامه رو نوشتن و حتا می ترسن با یکی دیگه کار کنن. ترس از اینکه کسی که جدید میاد جاشونو بگیره ، کودن باشه ، نتونن گروهی کار کنن و ...

یکی دیگه از بچه ها رو میشناسم که تو یک سایت برنامه رایگان گذاشته و حتا از تهران و خوزستان برای برنامش تماس داشته که می خواستن رمز برنامش رو بپرسن! برنامش کوچیکه اما کارایی بالا داره. (http://www.CheIT.Net) این برنامه ها رو فقط برای تست کیت ها و زیربرنامه های جدیدش نوشته و هر چند ماه ورژن جدیدش رو میزاره تو سایت(اینم بگم که نسخه جدیدش تو راهه). خوب این هم یه راه یاد گرفتن برنامه نویسیه.

سرتون رو درد آوردم. 
موفق و پیروز باشید.

----------


## Ahmad Chehreghani

دوباره سلام 
تو این تاپیک خیلی بحثها باید بشه و نمی شه همه رو یک جا گفت.
راستی
"Off Topic: اگه وقت کردی و دوست داشتی، یخورده هم روی املاء خودت هزینه کنی بد نیست."
من خودم میدونم املام خوب نیست  :قهقهه: 
اگه میشه  آقای کرامتی هم درباره پروژه هاشون تعریف کنن ممنون میشم. :لبخند گشاده!:

----------


## Deris.J

در ابتدا پس از دریافت خواسته های مشتری(امکانانی که نرم افزار در شرایط کمینه یا بیشینه باید داشته باشد)  می بایست ارزیابی درستی از توانائی مالی مشتر ی بنمائید بعد از این مرحله بر اساس ارزیابی پیشین خود سه طرح کاری (منظور توانائی ههای مختلف نرم افزار) در سه سطح توانائی ارائه نمائید پس از تائید یکی از طرحها و عقد قرارداد، تازه می بایست مدتی را به شناخت سیستم دستی یعنی پروسه ای که تاکنون به صورت دستی انجام انجام شده و بر اساس آن قرار است یک سیستم مکانیزه طراحی گردد صرف نمائید در یک سیستم بزرگ این زمان ممکن است تا دو ماه به طول بکشد. این کار می بایست توسط بیش از یک نفر انجام گیرد. در پروسه شناخت سیستم دستی با تمام افراد آن سیستم در بخشهای مختلف مصاحبه انجام شود و فرایند کار را به درستی نوشت و یا حتی اگر لازم بود تصحیح کرد. طی این پروسه الزامی می باشد چون بر اساس این شناخت است که دیتا فلو ها و دیتا دیاگرام ها طراحی می شود و بر اساس آن اسکریپت ها و روالها تنظیم گردیده و بر اساس دیتا دیاگرام ها موجودیت ها Entity و روابط بین آنها که به Relationship ها بوجود می آید (بحث طولانی است و در این مقال نمی گنجد

----------


## SYNDROME

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

----------

