Agile usullari asosidagi g'oyalar 1990-yillarda bir necha insonlar tomonidan bir vaqtning o'zida ishlab chiqilgan. Ammo, ehtimol, dasturiy ta'minotni ishlab chiqish madaniyatini o'zgartirishga eng muhim yondashuv Extreme Programming (XP) ni ishlab chiqish edi. Bu nom Kent Bek (Bek 1998) tomonidan ishlab chiqilgan, chunki yondashuv iterativ rivojlanish kabi tan olingan yaxshi amaliyotni "ekstremal" darajalarga surish orqali ishlab chiqilgan. Misol uchun, XP da tizimning bir nechta yangi versiyalari turli dasturchilar tomonidan ishlab chiqilishi, birlashtirilishi va bir kunda sinovdan o'tkazilishi mumkin. 3.3-rasmda ishlab chiqilayotgan tizimning o'sishini ishlab chiqarish uchun XP jarayoni ko'rsatilgan.
Select user stories for this release - Bu versiya uchun foydalanuvchi stsenariyalarini tanlash
Break down stories to tasks - stsenariyalarni vazifalarga ajrating
Plan release – rejani ishlan chiqish
XP da talablar to'g'ridan-to'g'ri bir qator vazifalar sifatida amalga oshiriladigan stsenariylar (foydalanuvchi hikoyalari deb ataladi) sifatida ifodalanadi. Dasturchilar juftlikda ishlaydi va kod yozishdan oldin har bir topshiriq uchun testlar ishlab chiqadi. Tizimga yangi kod kiritilganda barcha testlar muvaffaqiyatli bajarilishi kerak. Tizimning versiyalari o'rtasida qisqa vaqt oralig'i mavjud.
Ekstremal dasturlash munozarali edi, chunki u o'sha davrdagi rivojlanish amaliyotidan mutlaqo farq qiladigan bir qator tezkor amaliyotlarni joriy qildi. Ushbu amaliyotlar 3.4-rasmda jamlangan va agile manifestining tamoyillarini aks ettiradi:
Incremental rivojlanish tizimning kichik, tez-tez chiqarilishi orqali qo'llab-quvvatlanadi. Talablar mijozlarning oddiy stsenariylariga asoslangan bo'lib, ular tizim joriy versiyasiga qanday funksiyalarni kiritish kerakligini hal qilish uchun asos sifatida ishlatiladi.
Mijozlarning ishtiroki ishlab chiqish guruhidagi doimiy ishtiroki bilan ifodalanadi. Mijoz vakili ishlab chiqishda ishtirok etadi va tizim uchun qabul qilish testlarini belgilash uchun javobgar bo’ladi.
Jarayon emas, balki insonlar juft dasturlash, tizim kodiga jamoaviy egalik qilish va haddan tashqari uzoq ish soatlarini talab qilmaydigan barqaror rivojlanish jarayoni orqali qo'llab-quvvatlanadi.
O'zgarishlar mijozlar uchun muntazam tizim versiyalari, birinchi sinovdan o'tgan ishlab chiqish, kod degeneratsiyasining oldini olish uchun refaktoring va yangi funksiyalarning uzluksiz integratsiyasi orqali amalga oshiriladi.
Oddiylikni saqlashda kod sifatini yaxshilaydigan doimiy refaktoring va tizimning kelajakdagi o'zgarishlarini keraksiz ravishda kutmaydigan oddiy loyihalardan foydalanish orqali ifodalanadi.