Pemrograman Ekstrim vs SCRUM | XP vs SCRUM
Ada sejumlah metodologi pengembangan perangkat lunak yang berbeda yang digunakan dalam industri perangkat lunak selama bertahun-tahun, seperti metode pengembangan Air Terjun, V-Model, RUP dan beberapa metode linier, iteratif dan kombinasi linear-iteratif lainnya. Model Agile (atau lebih tepatnya, sekelompok metodologi) adalah model pengembangan perangkat lunak yang lebih baru yang diperkenalkan oleh manifesto Agile untuk mengatasi kekurangan yang ditemukan dalam metodologi pengembangan perangkat lunak tradisional tersebut..
Metode tangkas didasarkan pada pengembangan berulang dan menggunakan umpan balik dari pengguna sebagai mekanisme kontrol utama. Agile dapat disebut pendekatan people-centric daripada metode tradisional. Model Agile memberikan versi produk yang berfungsi sangat awal dengan memecah sistem menjadi sub-bagian yang sangat kecil dan dapat dikelola, sehingga pelanggan dapat menyadari beberapa manfaat sejak dini. Pengujian waktu siklus Agile relatif singkat dibandingkan dengan metode tradisional, karena pengujian dilakukan paralel dengan pengembangan. Karena semua keunggulan ini, metode Agile lebih disukai daripada metodologi tradisional saat ini. Pemrograman Scrum dan Extreme adalah dua variasi metode Agile yang paling populer.
Apa itu SCRUM??
Seperti yang disebutkan di atas, SCRUM adalah proses manajemen proyek tambahan dan berulang, yang termasuk dalam keluarga metode Agile. SCRUM didasarkan pada pemberian prioritas tinggi pada partisipasi pelanggan di awal siklus pengembangan. Ini merekomendasikan menggabungkan pengujian oleh pelanggan lebih awal dan sesering mungkin. Pengujian dilakukan pada setiap titik ketika versi stabil tersedia. Fondasi SCRUM didasarkan pada mulai pengujian dari awal proyek dan berlanjut hingga akhir proyek.
Nilai kunci SCRUM adalah "kualitas adalah tanggung jawab tim", yang menekankan bahwa kualitas perangkat lunak adalah tanggung jawab seluruh tim (bukan hanya tim pengujian). Salah satu aspek penting lain dari SCRUM adalah memecah perangkat lunak menjadi bagian-bagian yang lebih kecil dan memberikannya kepada pelanggan dengan sangat cepat. Memberikan produk yang berfungsi adalah yang paling penting. Kemudian tim terus meningkatkan perangkat lunak dan memberikan secara terus menerus pada setiap langkah utama. Ini dicapai dengan memiliki siklus rilis yang sangat singkat (disebut sprint) dan mendapatkan umpan balik untuk perbaikan di akhir setiap siklus.
SCRUM mendefinisikan beberapa peran kunci untuk kelancaran operasi tim pengembangan. Mereka adalah pemilik Produk (yang mewakili pelanggan dan mempertahankan simpanan produk), Scrum master (yang bertindak sebagai pengatur dan koordinator tim dengan melakukan rapat scrum, mempertahankan tumpukan sprint dan membakar grafik) dan anggota tim lainnya. Sebuah tim dapat terdiri dari peran tradisional, tetapi kebanyakan mereka adalah tim yang mengatur diri sendiri. Artefak Scrum Utama adalah Product backlog / release backlog (wish list), Sprint backlogs / defect backlogs (tugas di setiap iterasi), membakar grafik (sisa pekerjaan vs tanggal). Upacara SCRUM utama adalah pertemuan Product Backlog, Sprint meeting, dan Retrospect meeting.
Apa itu Pemrograman Ekstrim?
Extreme Programming (disingkat XP) adalah metodologi pengembangan perangkat lunak yang termasuk dalam model Agile. Pemrograman ekstrim melakukan fase dalam langkah kontinu yang sangat kecil (dibandingkan dengan metode tradisional). Lulus pertama, yang hanya memakan waktu sehari atau seminggu, sengaja tidak lengkap. Untuk memberikan tujuan nyata untuk mengembangkan perangkat lunak, tes otomatis ditulis di awal. Kemudian para pengembang melakukan pengkodean. Fokusnya adalah melakukan pemrograman sebagai pasangan. Setelah semua tes lulus, pengkodean dianggap selesai. Fase berikutnya adalah desain dan arsitektur, yang berkaitan dengan refactoring kode oleh set programmer yang sama. Pada akhir fase ini, produk tidak lengkap (tetapi fungsional) disajikan kepada para pemangku kepentingan. Tepat setelah ini, fase berikutnya (yang berfokus pada set fitur paling penting berikutnya) dimulai.
Apa perbedaan antara Pemrograman Ekstrim dan SCRUM?
Pemrograman Ekstrim dan SCRUM dapat dipahami adalah metodologi yang sangat mirip dan selaras. Namun, ada perbedaan kecil namun penting antara kedua metode ini. SCRUM sprint berlangsung selama 2-4 minggu, sementara iterasi XP lebih pendek (1-2 minggu terakhir). Biasanya, tim SCRUM tidak memungkinkan perubahan dalam sprint, tetapi tim XP sedikit lebih fleksibel terhadap perubahan dalam iterasi. Misalnya, setelah perencanaan sprint, set item sprint itu tetap tidak berubah, tetapi fitur yang belum mulai bekerja kapan saja dapat ditukar dengan beberapa fitur lain di XP. Perbedaan lain antara XP dan SCRUM adalah bahwa, urutan fitur yang dikembangkan di XP adalah prioritas yang diprioritaskan oleh pelanggan, sementara tim SCRUM memutuskan urutan item (setelah simpanan produk diprioritaskan oleh pemilik Produk SCRUM).
Tidak seperti XP, SCRUM tidak menetapkan praktik rekayasa apa pun. Sebagai contoh, XP didorong oleh praktik-praktik seperti test-driven development (TDD), pemrograman pasangan, refactoring, dll. Namun, beberapa percaya bahwa mengamanatkan serangkaian praktik pada tim yang mengatur diri sendiri dapat memiliki dampak negatif, dan ini dapat dipertimbangkan kekurangan XP. Kelemahan lain dari pemrograman Extreme adalah bahwa tim yang tidak berpengalaman mungkin cenderung untuk melakukan refactor tanpa tes otomatis atau TDD (atau sekadar peretasan). Oleh karena itu, beberapa menyarankan bahwa SCRUM lebih baik untuk menatap (karena membawa perbaikan besar hanya melalui iterasi timebox terfokus) dan XP cocok untuk tim yang sedikit matang yang telah menemukan nilai praktik yang disebutkan di atas (daripada menggunakannya karena mereka telah diminta untuk melakukannya).