امروز: 8 December, 2024

آشنایی با متدولوژی XP (Extreme Programming) – قسمت سوم

در قسمت اول مقاله آشنایی با متدولوژی XP (Extreme Programming) با تاریخچه، بنیانگذار، ارزش ها و نقش های متدولوژی XP آشنا شدیم.
در قسمت دوم نیز 5 اصول از 12 عملیات اصلی متدولوژی XP آشنا شدیم که عبارتند از:
Planning Games
Simple Design
Test Driven Development – TDD
Code Standards
Refactoring
برای مطالعه قسمت دوم به لینک مراجعه نمایید.
حال با باقی موارد آشنا خواهیم شد:
6- On-site Customer:
همانطور که قبلاً اشاره کردیم، طبق XP، مشتری نهایی باید به طور کامل در توسعه شرکت کند. مشتری باید همیشه برای پاسخ به سوالات تیم، تعیین اولویت ها و حل اختلافات در صورت لزوم حضور داشته باشد.
7- Pair Programming
این عمل مستلزم آن است که دو برنامه نویس به طور مشترک روی یک کد کار کنند. در حالی که توسعه‌دهنده اول روی نوشتن تمرکز می‌کند، دیگری کد را بررسی می‌کند، پیشرفت‌هایی را پیشنهاد می‌کند و اشتباهات را در طول مسیر اصلاح می‌کند. چنین کار گروهی منجر به نرم افزار با کیفیت بالا و به اشتراک گذاری سریعتر دانش می شود، اما حدود 15 درصد زمان بیشتری را می طلبد. از این نظر، منطقی‌تر است که برنامه‌نویسی زوجی را برای پروژه‌های بلندمدت امتحان کنید.

8- Continuous Integration:
توسعه دهندگان همیشه سیستم را به طور کاملا یکپارچه نگه می دارند. تیم‌های XP توسعه تکراری را به سطح دیگری می‌برند زیرا چندین بار در روز کد را commit می‌کنند که به آن تحویل مداوم نیز می‌گویند. متخصصان XP اهمیت ارتباطات را درک می کنند. برنامه نویسان بحث می کنند که کدام بخش از کد را می توان دوباره استفاده کرد یا به اشتراک گذاشت. به این ترتیب، آنها دقیقا می دانند که چه عملکردی را باید توسعه دهند. خط مشی کد مشترک به حذف مشکلات یکپارچه سازی کمک می کند. علاوه بر این، تست خودکار به توسعه دهندگان اجازه می دهد تا قبل از استقرار خطاها را شناسایی و رفع کنند.
9- Small Releases:
این روش پیشنهاد می‌کند که MVP را به سرعت منتشر کنید و محصول را با به‌روزرسانی‌های کوچک و تدریجی توسعه دهید. نسخه‌های کوچک به توسعه‌دهندگان این امکان را می‌دهند که مکرراً بازخورد دریافت کنند، باگ‌ها را زود تشخیص دهند و بر نحوه عملکرد محصول در تولید نظارت کنند. یکی از روش‌های انجام این کار، Continuous Integration است که قبلاً به آن اشاره کردیم.
10- Collective Code Ownership:
این عمل مسئولیت کل تیم را برای طراحی یک سیستم اعلام می کند. هر یک از اعضای تیم می تواند کد را بررسی و به روز کند. توسعه دهندگانی که به کد دسترسی دارند در موقعیتی قرار نخواهند گرفت که مکان مناسبی را برای افزودن یک ویژگی جدید ندانند. این Practice به جلوگیری از تکرار کد کمک می کند. پیاده‌سازی مالکیت کد جمعی (collective code ownership)، تیم را تشویق می‌کند تا بیشتر همکاری کند و در ارائه ایده‌های جدید احساس راحتی کند.
11- System Metaphor:
استعاره سیستم یک داستان همه جانبه است که کل تیم می تواند با آن به منظور ارتباط ساده، طراحی یا معماری ارتباط برقرار کند. در ابتدا طرح و ساختار آن باید برای افراد جدید قابل درک باشد. آنها باید بتوانند بدون صرف زمان زیاد برای بررسی مشخصات، کار روی آن را شروع کنند. دوم، نام‌گذاری کلاس‌ها و متدها باید منسجم باشد. هدف توسعه دهندگان باید نامگذاری یک شی به گونه ای باشد که گویی از قبل وجود داشته است، که طراحی کلی سیستم را قابل درک می کند. برای درکی بیشتر از از مطلب، استعاره سیستم می تواند یک توافق نام گذاری که در طراحی و کد استفاده می شود نیز باشد، این امر کار را برای هر فردی در تیم راحت می کند و در نتیجه تنها با نگاه کردن به نام یک مولفه‌ی خاص، با کارکرد آن ارتباط بر قرار می شود. به‌عنوان مثال، با نگاه کردن به نام تابع debit_customer_account () می توان حدس زد که از تابع انتظار می رود چه کاری انجام دهد.
12- (Sustainable pace) 40-Hour Week
پروژه های XP به توسعه دهندگان نیاز دارند که سریع کار کنند، کارآمد باشند و کیفیت محصول را حفظ کنند. برای رعایت این الزامات، آنها باید احساس خوبی داشته باشند و استراحت کنند. حفظ تعادل بین کار و زندگی از فرسودگی شغلی حرفه ای ها جلوگیری می کند. در XP، تعداد بهینه ساعات کار نباید بیش از 45 ساعت در هفته باشد. یک اضافه کاری در هفته فقط در صورتی امکان پذیر است که هفته بعد وجود نداشته باشد.

مزایا و معایت روش XP:
روش‌های XP برای دهه‌ها مورد بحث بوده است، زیرا رویکرد و روش‌های آن در تعدادی از جنبه‌ها بحث‌برانگیز است و نمی‌توان آن را در هیچ پروژه‌ای به کار برد. در اینجا، ما سعی خواهیم کرد مزایا و معایب روش XP را تعریف کنیم.

مزایای XP:
چارچوب XP به دلایل زیر می تواند مفید باشد و به کاهش زمان و هزینه های توسعه کمک کند:

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

معایب XP:
از سوی دیگر، XP دارای معایبی است که باید هنگام تصمیم گیری در مورد اینکه کدام چارچوب را برای پروژه بعدی خود انتخاب کنید، در نظر بگیرید:

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

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

در این مقاله از کتب و سایت های مختلفی استفاده شد. و مرجع اصلی سایت Agile Alliance بود که سر نخ های اصلی را به خوبی ارائه داد.

پایان مقاله سه قسمتی آشنایی با متدولوژی XP

چابک باشید

اشتراک گذاری
avatar

محمد حمیدی: بنیان‌گذار گروه مشاوره و آموزشی چابک شو؛ مربی تحول چابکی و مدرس دوره های آموزشی مدیریت پروژه چابک، اسکرام، کانبان و تحول چابکی

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

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