Extreme Programming (XP) adalah sebuah pengembangan perangkat lunak Agile kerangka kerja yang dirancang untuk menghasilkan perangkat lunak berkualitas lebih tinggi dan meningkatkan kualitas hidup tim. XP adalah kerangka kerja Agile yang paling spesifik dalam hal praktik rekayasa yang tepatpraktik rekayasa.
Scrum adalah kerangka kerja di mana orang-orang dapat menyelesaikan masalah kompleks yang bersifat adaptif sambil menghasilkan produk bernilai tinggi secara efisien dan kreatif. Scrum sendiri adalah kerangka kerja sederhana yang memungkinkan kolaborasi tim yang efektif pada produk-produk kompleks.
Kedua Scrum dan XP adalah metodologi Agile, yang berbagi konsep-konsep umum seperti pengembangan iteratif, perangkat lunak yang berfungsi, rilis dan perencanaan iterasi,rapat harian, refleksi, dan semua elemen proses Agile lainnya. Dua pendekatan ini sangat konsisten sehingga sulit membedakan antara tim yang menerapkan XP dan tim lain yang menerapkan Scrum.

Extreme Programming

Siklus Sprint
Namun, ada beberapa perbedaan, beberapa di antaranya cukup halus, terutama dalam empat aspek berikut:
- Biasanya dua hingga empat minggu.
- Biasanya satu hingga dua minggu.
- Tidak mengizinkan perubahan pada sprint.
- Setelah perencanaan sprint selesai dan satu set daftar produkitem telah ditetapkan, maka item-item tersebut tetap tidak berubah hingga akhir sprint.
- Lebih mudah untuk diubah selama iterasi.
- Selama fitur tertentu belum dimulai, fitur baru dengan ukuran serupa dapat diganti dalam iterasi tim XP sebagai pengganti yang belum dimulai.
- Bekerja dalam urutan prioritas yang ketat.
- Fitur yang akan dikembangkan ditentukan prioritasnya oleh pelanggan (Pemilik Produk Scrum)Pemilik Produk), dan tim harus menanganinya secara berurutan.
- Pemilik Produk Scrum menentukan prioritas pada daftar backlog produk, tetapi tim menentukan urutan dalam pengembangan item-item backlog.
- Tim tim Scrummungkin memilih untuk bekerja pada item yang paling penting kedua.
- Tidak mengharuskan praktik teknik tertentu.
- Ya, XP melakukannya.
- Misalnya: TDD, pemrograman pasangan, desain sederhana, refactoring, dll.
Kita dapat merangkum perbedaan antara XP dan Scrum sebagai berikut:
| Aspek | Praktik | XP | Scrum |
| Panjang Iterasi | Apakah Persyaratan Bisa Diubah Selama Iterasi | 1–2 minggu | 2–4 minggu |
| Penanganan Perubahan Selama Iterasi | Apakah Persyaratan Dipesan Secara Ketat Berdasarkan Prioritas | Dapat diganti dengan persyaratan lain yang berukuran sama jika belum diimplementasikan. | Scrum tidak mengizinkan ini. Tidak ada perubahan yang diizinkan setelah sprint dimulai, dan Master Scrum menerapkannya secara ketat. |
| Prioritas Fitur | Apakah Persyaratan Dipesan Secara Ketat Berdasarkan Prioritas | Ya | Tidak diperlukan |
| Praktik Teknik | Apakah Metode Teknik yang Ketat Digunakan untuk Menjamin Kemajuan atau Kualitas | Sangat ketat | Mengharuskan pengembang untuk sadar |
Oleh karena itu, kami percaya pendekatan XP dapat diterima, tetapi hal ini menimbulkan paradoks dalam Agile: menggabungkan filosofi XP dengan prinsip-prinsip Agile mengirim pesan yang membingungkan kepada tim: ‘Anda adalah organisasi yang sepenuhnya mandiri, tetapi Anda harus menerapkan TDD, Programming Pasangan, dll.’
Jelas bahwa keempat perbedaan ini cukup berbeda:
- Di Scrum, penekanan terletak pada otonomi diri.
- Di XP, penekanan terletak pada keterbatasan praktik teknik yang kuat.
Kesimpulan
Scrum adalah kerangka pengembangan produk—sebuah wadah di mana praktik lain dapat ditambahkan. XP adalah salah satu praktik yang dapat diterapkan dalam kerangka Scrum. Tidak ada alasan bagi tim untuk memilih antara Scrum dan XP. Aturan dan praktik XP tidak mudah, dan sebagian besar bersifat tidak dapat dinegosiasikan. Mengintegrasikan XP ke dalam Scrum mungkin merupakan perkembangan alami bagi tim yang memulai dengan Scrum dan berusaha menjadi tim Scrum yang profesional.