Scrum و Extreme Programming (XP) به شدت مشابه هم هستند. در واقع باید گفت، اگر به میان تیمی برید که در حال انجام یکی از این دو روش برای مدیریت فرآیند تولید و توسعه باشند، تشخیص اینکه آنها تیم اسکرام هستند یا تیم xp بشدت سخت است. این اختلافات غالباً ظریف هستند، اما بسیار مهم.
در ادامه چهار تفاوت مهم بین Scrum و XP از زبان Mike Cohn را با هم مرور میکنیم:
1- تیم های اسکرام معمولاً در تکرارهایی با عنوان اسپرینت (iterations or sprint) به طول دو هفته تا یک ماه کار می کنند. اما در مقابل تکرارهای تیمهای XP معمولاً به مدت یک الی دو هفته زمان میبرد.
2- تیم های اسکرام اجازه تغییر در دوره اسپرینت خود را نمی دهند1. اصولا زمانی که برنامهریزی یک اسپرینت انجام میگردد، آیتمهایی که از بک لاگ محصول قرار است تحویل داده شود، تعیین میگردد و این آیتمها تا پایان اسپرینت غیر قابل تغییر است. اما تیمهای XP در موقابل تغییرات این چنینی انعطافپذیرتر عمل می کند. تا زمانی که تیم کار روی یک آیت خاص را شروع نکرده باشد، می تواند در ازای ویژگی آغاز نشده، یک آیتم جدید هم وزن و اندازه با ویژگی قبلی را به تکرار تیم XP اضافه نماید.
3- تیم های XP به ترتیب اولویت تسکها کار می کنند. اولویتی توسط مشتری (مالک محصول در Scrum) مشخص شدهاند و تیم ملزم است به ترتیب بر روی آنها کار کند. در مقابل و در فریم ورک اسکرام، مالک محصول اسکرام مسئولیت اولویتبندی آیتمهای بک لاگ محصول را داراست.
4- Scrum هیچ روش مهندسی را تجویز نمی کند، این در حالیست که XP این کار را میکند. مواردی مانند توسعه آزمون محور (test-driven development)، تمرکز بر آزمایش خودکار (automated testing)، برنامه نویسی جفت و یا دو نفره (pair programming)، طراحی ساده، بازسازی (refactoring) و غیره. با این حال ، فکر می کنم این اشتباه است که به تیم بگوییم “شما خود سازمانده هستید و ما به شما اعتماد داریم، اما شما باید این روش های خاص مهندسی را انجام دهید …” من روشهای XP را دوست دارم اما دستور دادن به تیم را دوست ندارم. من می خواهم تیم ها این ارزش را به تنهایی کشف کنند.
این تفاوتهای کوچک بین Scrum و XP است. با این حال، می توانند تأثیر عمیقی در تیم داشته باشند.
1 در این مورد، البته که می توان بحثهای زیادی داشت.