PDA

View Full Version : چگونگی زمان بندی پروژه ها بزرگ و گروهی



best_ariya
یک شنبه 23 اردیبهشت 1386, 02:19 صبح
سلام به دوستان عزیز
من مدتها است که بر روی یک سری نرم افزار ها کار کردم و آخر هر کدوم از اون ها به طوری به مشکل برخوردم به بررسی های که انجام دادم و تجربه های که تو این مدت به دست آوردم متوجه این مطلب شدم که اکثر مشکلات به دلیل تجزیه و تحلیل اشتباه برنامه ها و عدم نیاز سنجی دقیق نیاز های مشتری بود و نداشتن یه برنامه زمان بندی کامل در کارها بود. حالا از شما دوستان و اساتید بزرگ می خوام اگه اطلاعاتی در این مورد دارند و یا نرم افزار خاصی رو سراق دارند اینجا مطرح کنند.

Bahmany
یک شنبه 23 اردیبهشت 1386, 06:24 صبح
سلام
به نظر بنده Document سازی از تمام مراحل پروژه خیلی می تونه کمک کننده باشه
مثلا نیازهای مشتری در یک Doc داشته باشی و یکی یکی از بالا تا پایین نیازها رو مرتفع کنیم.

merced
دوشنبه 24 اردیبهشت 1386, 05:28 صبح
من مدتها است که بر روی یک سری نرم افزار ها کار کردم و آخر هر کدوم از اون ها به طوری به مشکل برخوردم


پیشنهاد می کنم مهندسی نرم افزار 2 رو دوباره پاس کنی ...

SYNDROME
دوشنبه 24 اردیبهشت 1386, 21:14 عصر
با سلام

پیشنهاد می کنم مهندسی نرم افزار 2 رو دوباره پاس کنی ...
از درس پاس کردن تا عمل فاصله بسیار زیاد است.
دوست عزیز من هم مشکل شما را داشتم.تا زمانی که به تنهایی کارها را انجام می دادم مشکلی نبود ولی امان از کار گروهی.اگر کمی اشتباه کنی خدا باید به فریادت برسد.
روشی را که من قبل از شروع کار انجام دادم.
1-تحلیل برنامه(تعداد فیلدها ، نوع فیلدها و نحوه ارتباطات)
2-طراحی فرم(جای فیلدها و محدودیت ورود اطلاعات.
3-اگر دو مرحله قبل خوب انجام شود این مرحله راحتر از آنهاست و باز هم کنترل دقیق می باشد.
شما باید شروع به Document نویسی کنید.(نام فرم ،Tableهای مرتبط و تعریف فیلدها و نحوه کار فرم و نکات کلیدی در رابطه با برنامه و ارتباطها با قسمتهای دیگر)

merced
دوشنبه 24 اردیبهشت 1386, 22:04 عصر
درباره متودلوژی XP تحقیق کنید .. . خیلی جالبه

www.extremeprogramming.org

این روی Document کردن بصورتی که از ابزارهای Case و داکیامنت سازی مثل Model Maker و ... استفاده کنیم. و از همون اول همه چیز رو تثبیت کنیم؛ (مثلاً توی rationnal rose همه Use Case ها و دیاگرام ها رو بکشی ، با خودش هم کلاس ها و تابع ها رو ایجاد کنی و بعد تولید کنی.. ) تاکید نداره .
اصلاً این جور قرتی بازی ها رو دست و پا گیر میدونه.
میگه که تحلیلگر، برنامه نویس، و طراح و مشتری (فکر کنم همینا بود) چهار بعد یه پروژه اند که همزمان باید پیش برند.

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

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

من که از این متدلوژی خیلی خوشم اومد

SYNDROME
دوشنبه 24 اردیبهشت 1386, 23:47 عصر
با سلام
نوشتن برنامه و دیدن آن توسط مشتری درسته خوبه ولی برای برنامه های خاص است.
شما زمانی یک سیستم یکپارچه می نویسید اگر بخواهید سیستم را بنویسید و هر چند هفته یکبار برنامه را نشان دهید(مانند برنامه حسابداری ، انبار ، حقوق و دستمزد و . . .)کاربر کلافه می شه.
در این جور مواقع شما باید اول سیستم را بنویسید و تست کنید و سپس به کاربر بدهید و نیازهای منطقی کاربر را دریافت و در سیستم پیاده کنید.
اگر شما بخواهید هر خواسته کاربر را بدون تحلیل اضافه کنید (مانند داستان پدر و پسر و خرشان می شود که آخر سیستم شما در آب می افتد)
با کمال احترام فقط فقط نظر بنده بود.
چاکریم

best_ariya
سه شنبه 25 اردیبهشت 1386, 00:27 صبح
با سلام

از درس پاس کردن تا عمل فاصله بسیار زیاد است.
دوست عزیز من هم مشکل شما را داشتم.تا زمانی که به تنهایی کارها را انجام می دادم مشکلی نبود ولی امان از کار گروهی.اگر کمی اشتباه کنی خدا باید به فریادت برسد.
روشی را که من قبل از شروع کار انجام دادم.
1-تحلیل برنامه(تعداد فیلدها ، نوع فیلدها و نحوه ارتباطات)
2-طراحی فرم(جای فیلدها و محدودیت ورود اطلاعات.
3-اگر دو مرحله قبل خوب انجام شود این مرحله راحتر از آنهاست و باز هم کنترل دقیق می باشد.
شما باید شروع به Document نویسی کنید.(نام فرم ،Tableهای مرتبط و تعریف فیلدها و نحوه کار فرم و نکات کلیدی در رابطه با برنامه و ارتباطها با قسمتهای دیگر)


دوست عزیز از راهنمایی شما ممنون هستم.و در جواب دوست عزیزم دیگر هم بگم که بنده دو ترم در دانشگاه پیام نور و یک ترم در دانشگاه آزاد و دولتی تدریس داشته ام و همکنون مدیر یک شرکت نرم افزاری هستم که عمده کار ما بروی پروژه های بزرگ استانی و یک پروژه کشوری می باشد . و همان طور که دوست عزیزمون گفتن نوشتن برنامه تک نفره بسیار ساده و راحت است ولی مشکل بزرگ ما در ایران کار بر روی پروژه های بزرگ به صورت گروهی می باشد و مشتری ایرانی با تمام مشتری های دنیا به نوعی فرق می کنند به خصوص پروژه های اداری و مشتری های اداری .
و حتی شهرستانها و افراد با اقلیت های مختلف . شما در نظر بگیرید اگر یک نرم افزار را در شرق کشور به فروش برسانید به مراتب راحتر و ساده تر از فروش یک نرم افزار در غرب و مرکز کشور می باشد و هزاران مورد دیگر که ما بر اساس تجربه چند ساله به این نتیجه رسیدیم . حال ما بسیار مشتاق هستیم که از تجربیات شما اساتید در موارد زیر استفاده کنم .
1 - نحوه تجزیه و تحلیل صحیح یک پروژه به طوری که پس از تحویل برنامه به مشتری به کمترین اصلاحات در برنامه نیاز داشته باشد ، که این یکی از بزرگ ترین و مشکل ترین قسمتها برای ما بوده ، به دلیل تجزیه و تحلیل اشتباه در پایان کار ، شاید بارها به این مورد برخوردیم که مجبور بودیم 20 تا 60 درصد از برنامه را دوباره اصلاح کنیم که این برای ما بسیار زیان بر و کمی نیز به اعتبار ما لطمه وارد کرده

2 - Document نویسی (اگه نرم افزار خاصی را سراغ دارید خواهشمند است معرفی نماید به طور مثال نرم افزار مستند سازی شرکت رایان کاوه اصفهان و یا نرم افزار خارجی)و چنانچه برای نرم افزار خاصی مستندات تهیه کردیم در اینجا قرار دهید تا دوستان همه استفاده کنند.

3 -نحوه مدیریت و زبان بندی صحیح گروه برنامه نویس و تیم پشتیبانی

4 - راضی نگاه داشتن مشتری در بدترین حالات ممکن (که این نیز برای ما بسیار مهم بوده زیرا تا کنون 2 قرار داد از ما فسخ شده و خسارت مالی سنگینی به ما وارد شده)

و هر چیز دیگر برای طراحی و پیاده سازی همراه با نصب و آموزش سیستم های اداری لازم می دانید

vcldeveloper
سه شنبه 25 اردیبهشت 1386, 08:35 صبح
- Document نویسی (اگه نرم افزار خاصی را سراغ دارید خواهشمند است معرفی نماید به طور مثال نرم افزار مستند سازی شرکت رایان کاوه اصفهان و یا نرم افزار خارجی)و چنانچه برای نرم افزار خاصی مستندات تهیه کردیم در اینجا قرار دهید تا دوستان همه استفاده کنند.برای مستند سازی سورس کد (نه سایر مستندات) می تونید از Doc-o-matic استفاده کنید. امکانات خیلی خوبی برای این منظور داره.

-نحوه مدیریت و زبان بندی صحیح گروه برنامه نویس و تیم پشتیبانیاین مورد بیشتر برمیگرده به توانایی و تجربه مدیر پروژه شما.

راضی نگاه داشتن مشتری در بدترین حالات ممکن (که این نیز برای ما بسیار مهم بوده زیرا تا کنون 2 قرار داد از ما فسخ شده و خسارت مالی سنگینی به ما وارد شده)برای این مورد بهتره از یکی از متدهای Agile استفاده کنید که در برابر تغییرات در پروژه انعطاف پذیری بیشتری دارند و معمولا در اونها رابطه بهتری بین مشتری و گروه توسعه پروژه برقرار میشه. XP Programming یکی از متدهای معروف این گروه هست. البته متدهای دیگه ایی هم وجود داره.

اگر شما بخواهید هر خواسته کاربر را بدون تحلیل اضافه کنید (مانند داستان پدر و پسر و خرشان می شود که آخر سیستم شما در آب می افتد)شما احتمالا به درک درستی از XP Programming نرسیدید. کی گفته باید خواسته های کاربر را بدون تحلیل تحویل داد؟! یا در این روش سیستم قبل از تست شدن تحویل داده میشه؟!
در متدهای Agile مثل همین XP، خواسته های کاربر اولویت بندی میشه و بر اساس فاکتورهای مختلف هربار در یک بازه زمانی مشخص یکی از این خواسته ها به سیستم اضافه میشه. در این متدها بر روی تست هم تاکید زیادی میشه. مثلا در XP برنامه نویس ها بصورت جفت کار می کنند و در هر جفت، یکی از برنامه نویسان وظیفه نوشتن کد و دیگری وظیفه نوشتن کدی برای تست کردن کد برنامه نویس اول را دارد. بعدا این تست ها را می توان بصورت اتوماتیک و به تعداد دلخواه اجرا کرد (DUnit را در گوگل جستجو کنید) تا با اضافه شدن قابلیت های جدید به پروژه، بخش های دیگر پروژه دچار مشکل نشوند.
البته هیچ متدی برای تمام پروژه ها مناسب نیست! این وظیفه مدیر پروژه است که تشخیص بده برای انجام یک پروژه خاص بهتره از چه متدی استفاده کنه.

در ضمن، چون این تاپیک مربوط به بخش مهندسی نرم افزار می شد، به اون بخش انتقال پیدا کرد.

best_ariya
چهارشنبه 26 اردیبهشت 1386, 02:43 صبح
اگه برات مکنه با یه مثال قسمتهای از موارد گفته شده رو توضیح بده .
به طور مثال یک سیستم EPR رو در نظر بگیر و زیر سیستم حقوق و دستمزد رو به صورت خیلی خلاصه وار با توجه به کارهای مشابه ای که انجام داده ای توضیح بده .

samira455
چهارشنبه 16 خرداد 1386, 13:19 عصر
سلام دوست عزیز. من به شما استفاده از xplanner را توصیه می کنم.این نرم افزار بر اساس تکنولوژی (extreme programing(XP است.برای مطالعه بیشتر در مورد XP می تونید به سایت زیر مراجعه کنید:
http://www.extremeprogramming.org/
xplanner نرم افزاری است جهت برنامه ریزی و زمان بندی تحت وب پروژه ها. برای نوشتن این برنامه از Java, JSP, and Struts, Hibernate and MySQL استفاده شده است.از این سایت هم می تونید اطلاعات جامعی راجع به xplanner به دست بیارید:
http://www.xplanner.org/


http://www.xplanner.org/images/screenshots/screen_collage.jpg
این هم لینک دانلود:
http://sourceforge.net/project/showfiles.php?group_id=49017&package_id=42226

samira455
چهارشنبه 16 خرداد 1386, 13:23 عصر
سلام دوست عزیز. من به شما استفاده از xplanner را توصیه می کنم.این نرم افزار بر اساس تکنولوژی (extreme programing(XP است.برای مطالعه بیشتر در مورد XP می تونید به سایت زیر مراجعه کنید:
http://www.extremeprogramming.org/
xplanner نرم افزاری است جهت برنامه ریزی و زمان بندی تحت وب پروژه ها. برای نوشتن این برنامه از Java, JSP, Struts, Hibernate, MySQL استفاده شده است.از این سایت هم می تونید اطلاعات جامعی راجع به xplanner به دست بیارید:
http://www.xplanner.org/


http://www.xplanner.org/images/screenshots/screen_collage.jpg
این هم لینک دانلود:
http://sourceforge.net/project/showfiles.php?group_id=49017&package_id=42226

SYNDROME
پنج شنبه 17 خرداد 1386, 12:20 عصر
با سلام


شما احتمالا به درک درستی از XP Programming نرسیدید. کی گفته باید خواسته های کاربر را بدون تحلیل تحویل داد؟! یا در این روش سیستم قبل از تست شدن تحویل داده میشه؟!

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

vcldeveloper
جمعه 18 خرداد 1386, 09:18 صبح
برای اینکه بعضی از کاربران از شما امکاناتی را می خواهند که فقط برای خود آنها کارآمد بوده و برای دیگران هیچ کارایی ندارد.
شما قرار نیست تمام کاربران را راضی نگه دارید. بلکه باید متناسب با نیاز کاربران و بازخوردی که از آنها دریافت می کنید، امکاناتی را که می توانید در برنامه اضافه کنید را اولویت بندی کنید و آن امکاناتی که بیشترین بازخورد را دارد پیاده سازی کنید.