متدولوژی Agile

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

در متدولوژی های اولیه که engineering methodologies یا plan-driven methodologies نامیده می شوند، هدف جداسازی کامل طراحی از ساخت و ایجاد یک طرح و زمان بندی دقیق و قابل پیش بینی است که قابل استفاده توسط افراد با توانایی های کمتر باشد. این روش ها کاملا موفق نبوده اند. بزرگترین مشکل بروکراتیک بودن آنهاست. برای پیروی از متدولوژی ها جزئیات زیادی باید دنبال شود که منجر به کند شدن روند تولید می گردد.

Agile تعادلی بین no process و too much process برقرار می کند.تفاوت های بسیاری بین agile و روش های اولیه وجود دارد، از جمله در agile حجم مستندسازی به طور قابل توجهی کمتر است و می توان گفت که روشی code-oriented می باشد. کلیدی ترین بخش یک سند کد برنامه است. اما دو تفاوت عمیق و اساسی:

  1. روش های agile تطبیقی هستند و نه قابل پیش بینی. روش های plan-driven می کوشند کل پروسه تولید را با جزئیات کامل، برای مدت طولانی طرح یزی نمایند. این روش تنها تا زمانی که تغییراتی پدید نیامده کاراست. ذات این متدها در مقابل تغییرات مقاوم است. در حالی که agile از تغییرات استقبال کرده و می کوشد که سیستم و حتی روند تولید را تطبیق دهد.
  2. agile، people-oriented است و نه process-oriented. developerها باید قادر باشند خود تمام تصمیمات تکنیکی را اتخاذ کنند. در واقع مسئولیت ها بایستی به طور مساوی میان مدیر پروژه و developerها تقسیم شود.

Iterative development راه حل کنترل یک پروسه غیرقابل پیش بینی است. در این روش ها دائما ورژن هایی از سیستم نهایی تولید می شود که شامل زیرمجموعه ای از جنبه های مورد نیاز سیستم هستند. این ورژن ها عملیات کم اما کاملا صحیح و مطمئنی را انجام می دهند. Iterative development در پروسه های تطبیقی ضروری است. در یک پروسه تطبیقی باید طرح هایی کوتاه مدت و برای یک iteration ایجاد شوند. مدت زمان یک iteration بر حسب نوع متد متفاوت است، 1-2 هفته (XP)، 1 ماه (SCRUM) ، …

تطبیق دو جنبه دارد:

  1. تغییر در نرم افزار برای تطبیق با تغییرات خواسته ها.
  2. تغییر در پروسه تولید بدین مفهوم که روند تولید در پایان هر iteration بازدید، نقاط ضعف و قوت بررسی و تصمیماتی برای iteration بعدی اتخاذ می شود.

انواع مختلفی از متدهای agile وجود دارد، مانند: XP، SCRUM، Crystal، Lean، Rational Unified Process، …

منبع / اطلاعات بیشتر:Agile Alliance


دیدگاه‌ها

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *