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, model-V, RUP dan beberapa metode linier linier, iteratif dan gabungan lainnya. Model Agile (atau lebih tepatnya, sekelompok metodologi) adalah model pengembangan perangkat lunak yang lebih baru yang diperkenalkan oleh Agile Manifesto untuk mengatasi kekurangan yang ditemukan dalam metodologi pengembangan perangkat lunak tradisional tersebut.
Metode gesit didasarkan pada pengembangan iteratif dan menggunakan umpan balik dari pengguna sebagai mekanisme kontrol utama. Agile dapat disebut pendekatan orang-sentris daripada metode tradisional. Agile Model memberikan versi kerja produk yang sangat awal dengan memecah sistem menjadi sub bagian yang sangat kecil dan dapat dikelola, sehingga pelanggan dapat menyadari beberapa manfaat sejak awal. Pengujian waktu siklus gesit relatif singkat dibandingkan dengan metode tradisional, karena pengujian dilakukan sejajar dengan pengembangan. Karena semua keuntungan ini, metode gesit lebih disukai daripada metodologi tradisional saat ini. Scrum dan pemrograman ekstrem adalah dua variasi metode gesit yang paling populer.
Apa itu scrum?
Seperti disebutkan di atas, Scrum adalah proses manajemen proyek tambahan dan berulang, yang menjadi milik keluarga metode Agile. Scrum didasarkan pada memberikan prioritas tinggi pada partisipasi pelanggan di awal siklus pengembangan. Itu merekomendasikan untuk menggabungkan pengujian oleh pelanggan lebih awal dan seringkali mungkin. Pengujian dilakukan di setiap titik saat versi stabil tersedia. Fondasi Scrum didasarkan pada pengujian mulai 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). Satu aspek penting lainnya dari Scrum adalah memecah perangkat lunak ke bagian yang lebih kecil dan mengirimkannya ke pelanggan dengan sangat cepat. Memberikan produk yang berfungsi sangat penting. Kemudian tim terus meningkatkan perangkat lunak dan memberikan 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 memelihara simpanan produk), Scrum Master (yang bertindak sebagai penyelenggara dan koordinator tim dengan melakukan pertemuan scrum, memelihara backlog sprint dan membakar bagan) dan anggota tim lainnya. Sebuah tim dapat terdiri dari peran tradisional, tetapi kebanyakan mereka adalah tim yang mengelola diri sendiri. Artefak scrum utama adalah Backlog Produk/Rilis Backlog (Daftar Keinginan), Backlog Sprint/Backlog Cacat (tugas di setiap iterasi), Burn Down Charts (Work Lain Vs. tanggal). Upacara scrum utama adalah pertemuan penumpukan produk, pertemuan sprint dan retrospect rapat.
Apa itu pemrograman ekstrem?
Extreme Programming (Singkat XP) adalah metodologi pengembangan perangkat lunak yang dimiliki oleh model Agile. Pemrograman ekstrem melakukan fase dalam langkah kontinu yang sangat kecil (dibandingkan dengan metode tradisional). Pass pertama, yang hanya membutuhkan waktu satu hari atau seminggu, sengaja tidak lengkap. Untuk memberikan tujuan konkret untuk mengembangkan perangkat lunak, tes otomatis ditulis pada awalnya. Kemudian pengembang melakukan pengkodean. Fokusnya adalah melakukan pemrograman sebagai pasangan. Setelah semua tes lulus, pengkodean dianggap lengkap. Fase berikutnya adalah desain dan arsitektur, yang berkaitan dengan refactoring kode dengan set programmer yang sama. Pada akhir fase ini, produk yang 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 ekstrem dan scrum?
Pemrograman ekstrem dan scrum dimengerti sangat mirip dan metodologi yang selaras. Namun, ada perbedaan yang halus tetapi penting antara kedua metode ini. Sprint scrum bertahan selama 2-4 minggu, sedangkan iterasi XP khas lebih pendek (1-2 minggu terakhir). Biasanya, tim scrum tidak memungkinkan perubahan sprint, tetapi tim XP sedikit lebih fleksibel terhadap perubahan dalam iterasi. Misalnya, setelah perencanaan sprint, serangkaian item sprint tetap tidak berubah, tetapi fitur yang belum mulai bekerja kapan saja dapat ditukar dengan beberapa fitur lainnya di XP. Perbedaan lain antara XP dan Scrum adalah bahwa, urutan fitur yang dikembangkan dalam XP adalah yang diprioritaskan secara ketat oleh pelanggan, sementara tim Scrum memutuskan urutan barang (setelah simpanan produk diprioritaskan oleh pemilik produk Scrum).
Tidak seperti XP, Scrum tidak meletakkan praktik rekayasa apa pun. Misalnya, XP didorong oleh praktik-praktik seperti Test-Driven Development (TDD), pemrograman pasangan, refactoring, dll. Namun, beberapa orang percaya bahwa mengamanatkan serangkaian praktik pada tim yang mengatur diri sendiri dapat memiliki dampak negatif, dan ini dapat dianggap sebagai kekurangan XP. Kekurangan lain dari pemrograman ekstrem adalah bahwa tim yang tidak berpengalaman mungkin cenderung refactor tanpa tes otomatis atau TDD (atau hanya peretasan). Oleh karena itu, beberapa menyarankan bahwa scrum lebih baik untuk menatap (karena membawa perbaikan besar hanya melalui iterasi timebox yang 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).