تالار گفتمان مانشت
تفاوت بین روش های سنتی و چابک در توسعه نرم افزار - نسخه‌ی قابل چاپ

تفاوت بین روش های سنتی و چابک در توسعه نرم افزار - مهرگان - ۲۱ مهر ۱۳۹۵ ۰۶:۳۵ ب.ظ

سلام
مقاله ای دارم میخونم.  تفاوت بین متد های چابک و سنتی رو فقط اشاره ای کرده یه جاش.  نوشته مثلا متد های سنتی،  controlling هستند.  در صورتی که در چابک، team in control هست.  منظورش چی هست؟  من اینجور برداشت کردم که در  روش سنتی، این متد هست که تیم رو کنترل میکنه، در صورتی که در چابک، عکس این رو داریم و تیم هست که متد رو کنترل میکنه.  درست میگم آیا؟
باز یه تفاوت دیگه اش این بود که روش سنتی یک plan رو دنبال میکنه. در صورتی که روش چابک یک trend رو دنبال میکنه.  این یعنی چی؟  تفاوت plan و trend چی هست؟
منظور از outsider viewpoint در روش های سنتی چی هست؟
ممنون میشم کمکم کنید.

RE: تفاوت بین روش های سنتی و چابک در توسعه نرم افزار - Happiness.72 - 22 مهر ۱۳۹۵ ۱۲:۲۹ ق.ظ

(۲۱ مهر ۱۳۹۵ ۰۶:۳۵ ب.ظ)مهرگان نوشته شده توسط:  سلام
مقاله ای دارم میخونم.  تفاوت بین متد های چابک و سنتی رو فقط اشاره ای کرده یه جاش.  نوشته مثلا متد های سنتی،  controlling هستند.  در صورتی که در چابک، team in control هست.  منظورش چی هست؟  من اینجور برداشت کردم که در  روش سنتی، این متد هست که تیم رو کنترل میکنه، در صورتی که در چابک، عکس این رو داریم و تیم هست که متد رو کنترل میکنه.  درست میگم آیا؟
باز یه تفاوت دیگه اش این بود که روش سنتی یک plan رو دنبال میکنه. در صورتی که روش چابک یک trend رو دنبال میکنه.  این یعنی چی؟  تفاوت plan و trend چی هست؟
منظور از outsider viewpoint در روش های سنتی چی هست؟
ممنون میشم کمکم کنید.

درود و احترام
ابتدا نکته ای عرض کنم که اصلا چرا متدهای چابک بوجود اومدن ؟ خب کاملا واضحه چون متدهای سنتی پاسخگویی نیازهای توسعه ی نرم افزاری نبودن اما چرا ؟
روش های سنتی چه ایراداتی داشتند ؟
بیشتر به صورت فاز به فاز اجرا می شدندو نتیجه کار از قبل به صورت یک طراحی اولیه دقیق (Up-front Design) پیش بینی می شد یک سری ایراد اساسی و کلی داشت :

۱ - اتلاف وقت برای طراحی اولیه ی دقیق
۲ - مشخص نبودن دقیق نیازمندی ها به دلیل ارتباطات کاغذی و عدم ارتباطات فیس تو فیس
۳ - هزینه ی تغییرات زیاد
۴ - طولانی تر شدن پروژه بیش از موعد مقرر (Expired)
۵ - عدم مشخص بودن تایم دقیق برای تست نرم افزار -> نتیجه -> نرم افزاری بی کیفیت و پر از باگ
۶ - عدم واضح بودن میزان توسعه و پیشرفت پروژه -> حتی مدیر هم نمی دانست چقدر از پروژه تکمیل شده و چقدرش باقی مونده (UnClear)


بزرگترین مشکل این پروژه ها این بود که ناکارآمدی داشتند (Not Effective)

متدهای چابک گروهی از متدهای توسعهٔ نرم‌افزار مبتنی بر تکرار و به شکل تدریجی است که در آنها، راه‌حل‌ها از طریق خودسازمان‌دهی و همکاری بین تیم‌های مختلف کاری، انجام می‌شوند.
نکات :
  • یک نوع برنامه ریزی تطبیقی است
  • وسعه و تحویل تکاملی و رویکرد زمان بسته‌بندیِ تکرارشونده را ارتقا می‌بخشد
  • پاسخ‌های سریع و انعطاف‌پذیر برای انجام تغییرات را تقویت می‌کند.
  • چابک‌سازی یک چارچوب مفهومی است که پیش‌بینی تعاملات در سراسر چرخهٔ توسعه را بهبود می‌بخشد

متدهای توسعهٔ چابک مشخص زیادی وجود دارند، که بیشترشان توسعه، کار تیمی، همکاری و سازگاری فرایند در چرخهٔ حیات پروژه را ترفیع می‌دهند.متدهای چابک وظایف را به گام‌های کوچک با کمترین میزان برنامه‌ریزی می‌شکنند که به طور مستقیم با برنامه‌ریزی‌های طولانی‌مدت درگیر نیستند.
متدهای چابک، وقتی تیم‌ها با هم در یک مکان هستند، بر ارتباطات رو در رو برای تمام مستندات نوشته‌شده تأکید دارد. بیشتر تیم‌های چابک در یک دفتر تک‌واحدی (به نام bullpen) کار می‌کنند، که چنین ارتباطاتی را تسهیل می‌کند. به منظور ساده کردن ارتباطات و همکاری تیمی، گروه معمولاً کوچک (بین ۵ تا ۹ نفره) است.
پروژه‌های بزرگ توسعه می‌توانند توسط تیم‌های کاری چندگانه در راستای یک هدف رایج یا در بخش‌های متفاوت یک پروژه تحویل شوند.
اما چه ابزارهایی برای افزایش بهبود کیفیت چابکی بکار میرن ؟
۱ - یکپارچه سازی مستمر (Continious Integrity)
۲ - تست اتوماتیک (XUnit)
۳ - برنامه نویسی دو جزیی
۴ توسعه آزمون محور (Test Based Development)
۵ - الگوهای طراحی (Design Patterns)
۶ - طراحی دامنه محور
۷ - Code Refactroing


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

و اما تفاوت Plan و Trend :
plan در واقع یه طرح از پیش تعین شده هستش و ثابت اما Trend یک روندی هستش که برای توسعه پروژه همزمان با اجرای اون بکار گرفته میشه . البته من اینطور متوجه شدم باز هم تحقیق کنید.

RE: تفاوت بین روش های سنتی و چابک در توسعه نرم افزار - poldasht - 22 مهر ۱۳۹۵ ۰۷:۵۶ ق.ظ

سلام

ببخشید اطلاعات تکمیلی در مورد Agile و اینا رو از کجا میتونیم مطالعه کنیم؟ کدوم کتاب در مورد اینا نوشته است؟