# مباحث متفرقه برنامه نویسی > پروژه‌های Open Source > گفتگو: همکاری در توسعه یک ERP نیمه متن باز با C#‎

## PManager

سلام دوستان ، 
میخوام یه نرم افزار جامع ERP نیمه اوپن سورس با کمک همدیگه توسعه بدیم.
نیمه اوپن مفهومش اینه که اجزا و کلاسهای سمت سرور آماده میشه، کامپوننت ها و UI و بقیه چیزها توسط برنامه نویس های دیگه

ابزار مورد استفاده و متدلوژی :
- مایکروسافت TFS (Team Foundation Server 2010)
- VS 2010 Ultimate
- C#‎‎‎ 4.0
- SQL Server 2008
- برنامه نویسی Multi-Tier با وب سرویس و یا استفاده از تکنولوژی ریموتینگ بر اساس استانداردهای مایکروسافت

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

لطفا نظر بدین و دوستانی که آماده همکاری هستن اعلام کنن تا تصمیم بگیریم.
با تشکر :لبخند:

----------


## webpardaz

دوست عزیز میشه بیشتر توضیح بدید واطلاعات دقیق تری رو اعلام کنید من علاقه دارم تو این زمینه با شما همکاری کنم 
ID :  Webpardaz@gmail.com برای میل و Google Talk

----------


## PManager

همونطور که میدونید ERP مخفف Enterprise Resource Planning هست. این منابع که ازش یاد میشه عمدتا عبارتند از : پول ، مواد اولیه ، عوامل انسانی ، مشتریان و دارائیهای ثابت.
کار ERP این هست که رو این منابع برنامه ریزی کنه یا مدیران رو در جهت برنامه ریزی این منابع کمک کنه.
تو ایران به اشتباه مجموعه سه چهار تا برنامه رو که به هم پیوسته باشه رو میگن ERP. البته شاید اشتباهی هم نباشه و بیشتر برای اینکه تو تبلیغات استفاده بشه از این قضیه ، اینطوری بزرگ جلوه میدن.

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

حالا قصد من این هست که ببینم آیا ما افرادی با انگیزه داریم که رو چنین پروژه هایی وقت کوچیکی صرف کنن و البته در آینده استفادشو ببرن یا خیر؟

----------


## HollyGhost

به نظرت چقدر طول میکشه که چیزی مثل xtuple دربیارید؟
http://www.xtuple.com
http://sourceforge.net/projects/postbooks

دانشش رو دارید؟

قابل توجه شما که xTuple اوپن سورس هست و با QT و ++C توسعه داده شده

----------


## PManager

Xtuple رو کمی بررسی کردم ، یه شرکت سهامی عام در آمریکای شمالی ، سهامش با 12 تا مشتری جدید 0.3 افزایش پیدا کرده و نرم افزارش هم بسیار مدرن و قابل قبوله ولی نه برای بازار ایران و خاور میانه.

همونطور که میدونی کارهای تکنولوژیک در آمریکا در این سطح با Small-Business راه نمیفته و یه چنین بیزنسی حداقل گردشش چند صد میلیون دلار در ساله. 

مطمئن باش ما نمیتونیم خودمونو با یه چنین محصولی و شرکتی مقایسه کنیم. بزرگترین شرکت نرم افزاری ایران کل سهامش به 10 میلیون دلار تو بورس نمیرسه.

کلا میخوام بگم یه چنین مقایسه ای صحیح نیست. ما میخواییم با همکاری همدیگه :
- دانش برنامه نویسی رو ارتقا بدیم.
- کار تیمی صحیح رو تمرین کرده باشیم 
- هم یه محصول قابل قبولی ارائه کرده باشیم

همین.

----------


## webpardaz

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

----------


## PManager

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

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

حالا به این نتیجه رسیدم این کار رو میشه با تکنولوژی روز و حتی در سطح تجاری انجام داد.
ضمنا برنامه ریزی پروژه به نوعی صورت گرفته که ما میتونیم بعد از تولید سه یا چهار جزء از مجموع حدودا 27 جزء برنامه ارائه و فروش رو شروع کنیم.


اگر دوستانی وجود داشته باشن که تو این کار همکاری کنن صرفنظر از منافع مالی چند تا منفعت عایدشون میشه :
1- تمرین کار با TFS که خودش به تنهایی دانش روز و بسیار ارزشمند محسوب میشه 
2- تمرین کار تیمی که همه میدونیم تو ایران خیلی کم انجام میشه و اغلب بزرگترین تیمهای ما تعداد نفراتشون به اندازه انگشتایه یه دست هم نیست.
3- تمرین برنامه نویسی، تست و ارائه با استانداردهای روز مایکروسافت که خودتون میدونید چقدر ارزشمنده
4- ما یه گروه خواهیم بود که میتونیم مشکلات و نکات مورد نظر خودمونو از بقیه تیم بپرسیم. 

دیگه چی از این بهتر؟

----------


## webpardaz

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

----------


## PManager

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

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

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

همونطور که میدونید شرکت هایی که رو پروژه های اوپن کار میکنن فقط در صورت کسب موفقیت های قابل توجه به طور ناگهانی ارزش پیدا میکنن.

----------


## webpardaz

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

----------


## PManager

همینطوره ، در این نوع کارها همیشه یک نفر پیشقدم وجود داره ، وگرنه ما اگر سال ها راجع به این قضیه صحبت کنیم اتفاقی نمیفته.

اولین قدم اجرایی ما  :لبخند گشاده!:  اینه که هر کس بیاد اینجا یه نظر بده براش یه تشکر میفرستم و از دیگران هم میخوام که این کارو بکنن که بیننده ها زیاد شه.

ولی قدم اجرایی رسمی اول رو به زودی اعلام میکنم.

----------


## webpardaz

منتظر تصمیمات جدید شما هستم :)

----------


## PManager

بسیار خوب ، 
قسمتهای یک ERP شامل موارد زیر میتونه باشه :

الف - بخشهای پایه :
- سیستم امنیت و کاربران
- سیستم مدیریت سطوح دسترسی
- سیستم گردش کار یا ورک فلو

ب- بخشهای عملیاتی
- نرم افزار مالی (حسابداری مالی، خزانه داری ، حسابداری حقوق و دستمزد ، حسابداری انبار ، حسابداری فروش)
- نرم افزار لجستیک (مدیریت انبارها ، مدیریت تدارکات داخلی و خارجی)
- نرم افزار فروش (مدیریت محصولات و فروش ، توزیع و ارتباط با مشتریان)
- نرم افزار پرسنل ( حضور و غیاب ، تایم شیت )
- نرم افزار اسناد (مدیریت مکاتبات ، مدیریت قراردادها)

ج- نرم افزارهای مدیریتی و تصمیم سازی
- نرم افزار برنامه ریزی بودجه
- نرم افزار برنامه ریزی تامین مواد
- نرم افزار برنامه ریزی منابع انسانی
- نرم افزار مدیریت و برنامه ریزی دارائیهای ثابت
- نرم افزار مدیریت بهای تمام شده
- نرم افزار مدیریت کیفیت
- نرم افزار مدیریت ارزش مشتری
- نرم افزار مدیریت پروژه

(اگر فکر میکنید چیزی از قلم افتاده بگید، رودربایستی نکنید ها!)
حالا ، اولین قدم تعیین استراتژیه
فرضیات تعیین استراتژی :
1- مدت زمان انجام این کار میتونه حتی به سه یا چها سال برسه
2- ما ممکنه اولشو بتونیم بدون سرمایه جلو ببریم ولی تا آخر نمیشه
3- بازار بعضی از این محصولات عالیه و بازار بعضیاشون به شدت رقابتی و خرابه (خودتون بهتر میتونید تحلیل کنید که کدوماش!)
4- دوستانی که ممکنه ابتدای کار همکاری کنن یه روزی ممکنه بیخیال شن و برن
5- قصد ما رقابت در بازار یا ورشکست کردن شرکتهای نرم افزاری  :بامزه:  یا تولید یک نرم افزار کیفیت بیست نیست.
(فرض دیگه ای مونده؟ یا نه ؟ اگر مونده اسم ببرید)

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

نظر؟

----------


## PManager

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

در مورد گردش کار ما فعلا چیزی پیاده سازی نمیکنیم ولی اجراشو تو طراحی لحاظ میکنیم.

چون سیستم اپن سورس و تحت وب هست در واقع مرحله بعد به اشتراک گذاشتن طراحی سیستم هست.

فقط یک نکته میمونه و اونم این که نمیدونم این تاپیک جای درستی مطرح نشده یا اصولا دوستان به این مطلب بی علاقه هستن ؟ :متفکر:

----------


## m.hamidreza

حرکت شما جنبه های مثبت زیادی میتونه داشته باشه و قابل تحسین هست ولی بالاخره واقعیت ها رو هم باید دید و بهش توجه کرد. Scale پروژه ای که در نظر گرفتید خیلی خیلی بزرگ هست! یه ERP کامل هزینه ای بالای 500 میلیون داره و یه تیم حداقل بالای 30-40 نفر رو بصورت فول تایم میخواد که در یه بازه زمانی مثلا 2-3 سال این کار رو انجام بدن.
با فرض گذشتن از این موضوع، قبل از هر چیز و شروع کار شما باید متدولوژی توسعه نرم افزاری که باید بر اساس اون جلو برید رو مشخص کنید و محیط عملیاتی فرضی ای رو در نظر بگیرین و تحلیل و نیازسنجی رو بر اون اساس انجام بدید. اینکه با #C مینویسید یا جاوا در این نقطه از کار اصلا مهم نیست. در اینجا شما باید بر اساس اصولی که در یکی از روش های توسعه نرم افزار مطرح شده جلو برید.
بعبارت دیگه شما بدون نقشه راه (متدولوژی) دارین حرکت میکنین و ابزاری (تیم + زمان) که برای مسافرت (تولید محصول با موفقیت) دارید در حد مسافتی (Scale پروژه) که در نظر گرفتید نیست.
من اینا رو فقط برای این گفتم که پس فردا نگین چرا هیچ کس در یک محیط علمی عمومی این واقعیت ها رو نگفت.
موفق باشید.

----------


## PManager

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

توضیح اینکه با زبان C#‎‎ نوشته بشه یا نه مهمه (کی میگه مهم نیست؟) وقتی حجم زیادی کد قراره رد و بدل شه، مگه ممکنه انتخاب کد مهم نباشه. اصولا در اجرای چنین پروژه ای همه چیز مهمه.
30 یا 40 نفر رو قبول دارم ، حتی بیشتر ، مدیریت این تیم هم متدلوژی داره که روش کار شده.

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

----------


## m.hamidreza

> ابزار مورد استفاده و متدلوژی :
> - مایکروسافت TFS (Team Foundation Server 2010)
> - VS 2010 Ultimate
> - C#‎‎‎‎ 4.0
> - SQL Server 2008
> - برنامه نویسی Multi-Tier با وب سرویس و یا استفاده از تکنولوژی ریموتینگ بر اساس استانداردهای مایکروسافت


این چیزهایی که شما گفتی Tools هستند. چیزی از متدولوژی و Approach توسعه نرم افزار قید نشده. منظور دید مدیریت پروژه هست نه منظر پیاده سازی پروژه.
موفق باشید.

----------


## PManager

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

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

----------


## m.hamidreza

RUP، XP، SSADM، SCRUM، AUP.
موفق باشید.

----------


## PManager

بسیار خوب ، من متوجه شدم اختلاف نظر نداریم چون راجع  اینها در مراحل اجرایی توضیحات بیشتری میدیم.

اولین قسمت نرم افزار یک مدل  Explorer باید باشه ،یه چیزی مثل Document Explorer ویژوال استودیو یا Explorer خود ویندوز.

----------


## webpardaz

دوست عزیز ادامه ندادید چرا ؟

----------


## PManager

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

بر خلاف انتظار ظاهرا کسی ابراز علاقه نکرده ، همونطور که گفتم ممکنه محل مطرح کردن این مسئله مناسب نباشه و یا واقعا صورت مسئله جالب نیست.

همونطور که میدونید این کار نیاز به تعداد قابل توجهی برنامه نویس علاقمند داره. 
تا نظر شما در این مورد چی باشه ؟؟

----------


## siminhoseini

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

----------


## PManager

ممنون از اعلام آمادگی شما ،

منتظر میشیم تا چند نفر دیگه هم مثل شما اعلام آمادگی کنند.

----------


## webpardaz

من هم در زمینه برنامه نویسی شاید نتونم کمک چندانی انجام بدم ، اما آمادگی خودم رو در این حرکت اعلام میکنم چون تو خیلی از موارد مورد نیاز در راه اندازی تیم میتونم کمکتون کنم

----------


## PManager

طبق معمول فکر میکنم این بحث رو باید به یک تاپیک دیگه انتقال بدیم. ممکنه که تاپیک #c بهتر از بقیه باشه ، نظراتتون رو اعلام کنید.

----------


## ghahremani

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

----------


## mehran_sh_t

سلام دوستان.
منم پایه ام. تا آخرش

----------


## leonard

من نمی فهم چرا وقتی این همه پروژه ی اوپن سورس هست باز باید همچین چیزی مطرح بشه
تازه اونم توی همچین مسئله پیچیده ای 
خوب توی یکی از این پروژهای خارجی همکاری کنید و اون رو لوکالایذد و ترجمه کنید
من خودم خیلی به www.openerp.com علاقه دارم ولی خوب همین ترجمه اش هم یک کار پیچیده است
چه برسه به اینکه از صفر کد بنویسیم
در زمینه openerpکسی پایه بود خبرم کنه
البته من یک برنامه نویس آماتور پایتون هستم ولی فکر کنم توی تیم بتونم کار مفیدی انجام بدم
شما اون 4 سالی که میخواید صرف پروژه مذکور کنید 3 ماه صرف یادگیری پایتون و openerp کنید
تازه واسه erpفروش خود برنامه خیلی مهم نیست بلکه خدمات اون درآمد زاست

----------


## nasser.man

با سلام به همه دوستان ،
من هر چند مهارت خوبی در زمینه های فنی ندارم ولی تا حدودی با دنیای اپن سورس آشنا هستم و بهش علاقه مند هستم ، در صورتی که این پروژه ادامه داشته باشه خیلی دوست دارم در جریان پروژه قرار داشته باشم ،
این وب سایت ماست ،
iranis.ir

----------


## MJT2007

سلام 
در صورتی که می خواهید یک پروژه opensource را شروع کنید ابتدا باید طرح اولیه و برنامه اولیه آن توسط یک تیم نرم افزاری یا یک فرد (در صورت امکان) پایه گذاری و اجرا بشه سپس سورس اون در اختیار افراد دیگر قرار بگیره تا نظر و اصلاحات خود را در آن اعمال نمایند 
در ضمن برای نوشتن برنامه های opensource معمولا از نرم افزار های open مانند java و mysql و.... استفاده میشه نه از C#‎ !
در صورتی که نیاز باشد بنده مایل به همکاری می باشم.

----------


## ha2000

سلام
اگه حجم پروژه را بیارید پایین ، در حد یک برنامه حسابداری تا ببینیم چند مرده حلاجیم ، من هم هستم

----------


## majidheidary

خوب الان وضعیت این عنوان تاپیک به چ صورتی هستش؟

----------

