بخشی از مقاله
چکیده
نقطه عطف توسعه نرم افزار به سال 2001 بازمی گردد که تعدادی از متخصصین بیانیه چابک را منتشر نمودند. پیاده سازی متدهای چابک در عمل با مشکلاتی مواجه شد، بنابر این تئوریسینها و متخصصین نرم افزار با هدف بهره گیری همزمان از مزایای متدهای سنتی و چابک دیدگاه های ترکیبی توسعه نرم افزار را ایجاد نمودند. در این دیدگاه معمولا از یک طرف RUP به عنوان یک متد سنتی کامل،با یک یا دو متد چابک از طرف دیگر در هم ادغام میشوند تا مساله ناکارآمدی متدهای توسعه نرم افزار در مقابل نیازمندیهای جدید و متغیر مشتریان برطرف گردد. روند تکامل متدهای توسعه هنوز دارای ضعفهایی میباشد چراکه یک مساله کیفی است و مانند همه امور کیفی دیگر یک فعالیت مداوم و فاقد نقطه پایان خواهد بود. در این تحقیق جدیدترین کوششها برای دستیابی به مدلهای ترکیبی و علت استفاده از آنها را مرور خواهیم نمود.
-1 مقدمه
[6-11] اوج بلوغ روشهای مبتنی بر طرح و نقشه، متعلق به روشی به نام 6RUPمیباشد .[6] بنابر این در تمام ترکیبهای مراجع 6 تا 11 از آن به عنوان نماینده متدهای سنتی در ترکیب با روش های چابک استفاده شده است و در طرف مقابل نیز متدهای Scrum و7XPبیشترین استفاده را در متدهای ترکیبی داشته اند. در ادامه این مقاله به معرفی مختصر این سه متد پرداخته و چند ترکیب از آنها را مورد بررسی قرار می دهیم.
-2 متد مبتنی بر طرح و نقشه RUP
آر.یو.پی. را به طور خلاصه میتوان در چند جمله تعریف نمود: آر.یو.پی رویکردی افزایشی 8تکراری 9و مبتنی بر معماری 10 برای توسعه نرم افزار ارایه می دهد . این رویکرد به دلیل تمرکز زیاد بر طراحی و آنالیز، برای پروژه های بزرگ مناسب است .[6] در آر.یو.پی فرآیند به خوبی تعریف شده است به این معنا که اجزای یک فرآیند یعنی چهکسی، چهکاری، چگونه و چه موقع، توسط تقشها، فعالیتها، دستاوردها و جریان کار در یک ساختار دو بعدی متشکل از فازها و نظم ها به خوبی تبیین شده است.[7] شکل - - 1 این ساختار را نشان میدهد.بعضی از مزایای این متد عبارتند از:الف - مستندات کامل در تمام مراحل توسعه.ب - باز بودن و قابل استفاده برای عموم.پ - یادگیری آسان و در دسترس.ت - قابلیت بالا در استفاده مجدد از کد[8]
شکل - : - 1ساختار دوبعدی [9] RUP
معایب استفاده از RUPعبارتند از: الف - پیچیدگی بسیار زیاد: فهم روند اجرای فرآیند و یادگیری آن مشکل است و پیاده سازی درست و دقیق آن به جز برای افراد متخصص و ماهر بسیار دشوار است.ب - ضعف در جنبه های جامعه شناختی: هر چند ادعای توسعه افزایشی در این متد مطرح شده است اما جزئیات دقیق و کافی برای این کار وجود ندارد.پ - توسعه فاقد سازمان دهی: باوجود نظم های مجزایی که در این متد تعریف شده اما ممکن است در جمع بندی نهایی توسعه نامنظمی صورت گیرد.[8]
-3 متدهای چابک Scrumو XP
اسکرام یکی از متدهای محبوب و پرطرفدار تفکر چابک است.[6]در این متد تیم توسعه نرم افزار رابطهی بسیار نزدیکی با مشتری دارد و هر چند هفته یک بار خروجی نرم افزار را بیرون می دهد و بازخورد ذینفعان را دریافت نموده و بر اساس آن مسیر تولید محصول را با رضایتمندی مشتری منطبق می سازند. در این متد نماینده مشتری یا »مالک محصول« ارتباط مستقیم بین ذینفعان و تیم توسعه را برقرار مینماید.
[10] مالک محصول اهداف و خواسته هایی دارد که در لیستی به نام بک لاگ محصول قرار دارند که وظیفه اولویت بندی این خواسته ها نیز بر عهده مالک محصول است.تیم توسعه در این متد دو ویژگی مهم دارد:خود سازماندهی و کار برمبنای افزایش و تکرار.[11]در این متد همچنین نقشی به نام مدیر اسکرام وجود دارد که معمولا بر عهده فردی از تیم توسعه قرار داده می شود و وظیفه او این است که تیم توسعه و مالک محصول را در راستای صحیحی که تفکر چابک و متد اسکرام تعیین نموده است قرار دهد تا هدف مطلوب حاصل گردد. بخشی از این وظیفه از طریق هدایت ملاقات های کوتاه روزانه افراد صورت میگیرد.[7] شکل - - 2 اصول این متدولوژی را بیان میکند.
شکل - : - 2متدولوژی [2] Scrum
اسکرام نیز مانند بسیاری از پدیدههای دیگر در کنار مزایای بسیار، معایب و نواقصی نیز دارد که در ادامه به آن خواهیم پرداخت:
الف - در بسیاری موارد پیش بینی زمان و دامنه درگیر در پروژه در پروژه های اسکرام از قبل قابل سنجش یا برآورد نیست.
ب - اسکرام بسیار به اعضای تیم خود وابسته است و در صورت وجود یک عضو غیر متعهد - بی انگیزه یا بدون حسن نیت - ، امکان شکست پروژه بسیار بالا خواهد بود.
پ - پذیرش چارچوب اسکرام مانند هر روش چابک دیگری برای تیمهای بزرگ و دارای سابقه حرفه ای قبلی اندکی با مقاومت آنها مواجه خواهد شد.
ت - موفقیت پروژه ها با چارچوب اسکرام بسیار وابسته به تجربیات حرفه ای و کارآمدی اعضای تیم اسکرام است.
ث - جلسات روزانه اسکرام برای اعضای تیم اسکرام گاهاً می تواند بسیار سخت و خسته کننده شود.
ث - در صورت خروج موقت یا دائم یکی از اعضای تیم از پروژه، فعالیتهای آن پروژه بسیار تحت تاثیر قرار خواهد گرفت.
ج - اگر در طول پروژه ها، به مقوله تست محصول، جدی نگریسته نشود، کیفیت محصول نهایی بسیار تحت تاثیر قرار خواهد گرفت.[14-16]
از بین متدهای چابک، متد دیگری به نام متد XP نیز مورد استقبال و توجه توسعه دهندگان قرار گرفته است. این روش جزء روش های سبک وزن محسوب شده و افزایشی و چرخشی است که چرخه های کوتاه ویژگی بارز آن می باشد.[1] این چرخه های کوتاه و رابطه مداوم با مشتری باعث بالا رفتن کیفیت محصول، هم از لحاظ کیفیت خارجی که رضایت مشتری را به دنبال دارد و هم کیفیت داخلی که به طراحی درست و دقیق بستگی دارد خواهد بود.[15] بعضی از اصطلاحات مهم در این متدولوژی عبارتند از:
الف - برنامه ریزی: به معنی این است که برنامه نویس مدت زمانی تقریبی را برای اجرای نیازهای مشتری تخمین می زند.
ب - انتشار سریع: به معنی این است که نرم افزار در دفعات متعدد و در بازه های زمانی کوتاه انتشار یافته و مرحله به مرحله تکامل می یابد.
پ - استعاره: توصیف چگونگی کارکرد سیستم توسط برنامه نویس برای انتقال مفاهیم به مشتری.
ت - سادگی طراحی: برای افزایش سرعت هرگونه اضافه کاری در مراحل طراحی و متعاقبا در مراحل بعدی حذف میشود.
ث - برنامه نویسی دوتایی: کد برنامه توسط دو نفر روی یک کامپیوتر نوشته می شود که باعث افزایش دقت و سرعت برنامهنویسی خواهد بود.
ج - مالکیت جمعی: تمام برنامه یا پاسخگویی به کارکرد آن برعهده یک شخص نیست که باعث شود تغییرات به صورت شخصی و در هر زمان به کدها اعمال شود.[1] شکل - - 3 این متدولوژی را نشان میدهد.
شکل - : - 3متدولوژی [16] XP
اما در کنار نقاط قوت فوق تعدادی نقطه ضعف در این متدولوژی وجود دارد: الف - مانند سایر روشهای چابک، در سازمانهای بزرگ و با سابقه به علت وجود پیشینه سنتی توسعه نرمافزار، به آسانی قابل پذیرش و پیاده سازی نیست.ب - برای پروژه های بزرگ و حتی متوسط مناسب نیست. ج - قابلیت استفاده مجدد از کد در این متدولوژی فراهم نشده است.[17]