Pengaturcaraan Melampau lwn SCRUM | XP lwn SCRUM
Terdapat beberapa metodologi pembangunan perisian berbeza yang digunakan dalam industri perisian selama bertahun-tahun, seperti kaedah pembangunan Waterfall, V-Model, RUP dan beberapa kaedah linear, iteratif dan gabungan kaedah lelaran linear yang lain. Model Agile (atau lebih tepat lagi, sekumpulan metodologi) ialah model pembangunan perisian yang lebih terkini yang diperkenalkan oleh manifesto Agile untuk menangani kelemahan yang terdapat dalam metodologi pembangunan perisian tradisional tersebut.
Kaedah tangkas adalah berdasarkan pembangunan berulang dan menggunakan maklum balas daripada pengguna sebagai mekanisme kawalan utama. Tangkas boleh dipanggil pendekatan berpusatkan rakyat daripada kaedah tradisional. Model Agile menyampaikan versi produk yang berfungsi dengan sangat awal dengan memecahkan sistem kepada sub bahagian yang sangat kecil dan boleh diurus, supaya pelanggan dapat menyedari beberapa faedah lebih awal. Masa kitaran ujian Agile agak singkat berbanding kaedah tradisional, kerana ujian dilakukan selari dengan pembangunan. Oleh kerana semua kelebihan ini, kaedah Agile lebih diutamakan berbanding metodologi tradisional pada masa ini. Pengaturcaraan Scrum dan Extreme ialah dua daripada variasi kaedah Agile yang paling popular.
Apakah SCRUM?
Seperti yang dinyatakan di atas, SCRUM ialah proses pengurusan projek tambahan dan berulang, yang tergolong dalam keluarga kaedah Agile. SCRUM adalah berdasarkan memberi keutamaan yang tinggi kepada penyertaan pelanggan pada awal kitaran pembangunan. Ia mengesyorkan memasukkan ujian oleh pelanggan awal dan sekerap mungkin. Ujian dilakukan pada setiap titik apabila versi stabil tersedia. Asas SCRUM adalah berdasarkan ujian bermula dari awal projek dan berterusan hingga akhir projek.
Nilai utama SCRUM ialah "kualiti adalah tanggungjawab pasukan", yang menekankan bahawa kualiti perisian adalah tanggungjawab seluruh pasukan (bukan hanya pasukan ujian). Satu lagi aspek penting SCRUM ialah memecahkan perisian kepada bahagian yang lebih kecil yang boleh diurus dan menyampaikannya kepada pelanggan dengan cepat. Menyampaikan produk yang berfungsi adalah yang paling penting. Kemudian pasukan itu terus menambah baik perisian dan menyampaikan secara berterusan pada setiap langkah utama. Ini dicapai melalui kitaran keluaran yang sangat singkat (dipanggil pecut) dan mendapatkan maklum balas untuk penambahbaikan pada penghujung setiap kitaran.
SCRUM mentakrifkan beberapa peranan penting untuk kelancaran operasi pasukan pembangunan. Mereka ialah pemilik Produk (yang mewakili pelanggan dan mengekalkan tunggakan produk), Scrum master (yang bertindak sebagai penganjur dan penyelaras pasukan dengan menjalankan mesyuarat scrum, mengekalkan tunggakan pecut dan membakar carta) dan ahli pasukan yang lain. Pasukan mungkin terdiri daripada peranan tradisional, tetapi kebanyakannya mereka adalah pasukan yang menguruskan diri. Artifak Scrum utama ialah tunggakan tunggakan/keluaran produk (senarai keinginan), tunggakan pecut/tunggakan kecacatan (tugas dalam setiap lelaran), Carta bakar (baki kerja berbanding tarikh). Upacara SCRUM utama ialah mesyuarat tertunggak Produk, mesyuarat Sprint dan mesyuarat Tinjau Kembali.
Apakah itu Pengaturcaraan Ekstrem?
Pengaturcaraan Extreme (disingkat XP) ialah metodologi pembangunan perisian yang dimiliki oleh model Agile. Pengaturcaraan ekstrem menjalankan fasa dalam langkah berterusan yang sangat kecil (berbanding kaedah tradisional). Pas pertama, yang hanya mengambil masa sehari atau seminggu, sengaja tidak lengkap. Untuk menyediakan matlamat konkrit untuk membangunkan perisian, ujian automatik ditulis pada permulaan. Kemudian pembangun melakukan pengekodan. Tumpuan adalah untuk melakukan pengaturcaraan sebagai pasangan. Setelah semua ujian lulus, pengekodan dianggap lengkap. Fasa seterusnya ialah reka bentuk dan seni bina, yang berkaitan dengan pemfaktoran semula kod oleh set pengaturcara yang sama. Pada akhir fasa ini, produk yang tidak lengkap (tetapi berfungsi) dibentangkan kepada pihak berkepentingan. Sejurus selepas ini, fasa seterusnya (yang memfokuskan pada set ciri paling penting seterusnya) bermula.
Apakah perbezaan antara Pengaturcaraan Ekstrem dan SCRUM?
Pengaturcaraan Extreme dan SCRUM adalah metodologi yang hampir serupa dan sejajar. Walau bagaimanapun, terdapat perbezaan yang halus tetapi penting antara kedua-dua kaedah ini. Pecutan SCRUM berlangsung selama 2-4 minggu, manakala lelaran XP biasa adalah lebih pendek (1-2 minggu terakhir). Biasanya, pasukan SCRUM tidak membenarkan perubahan dalam larian pecut, tetapi pasukan XP sedikit lebih fleksibel kepada perubahan dalam lelaran. Contohnya, selepas perancangan pecut, set item pecut itu kekal tidak berubah, tetapi ciri yang belum mula berfungsi pada bila-bila masa boleh ditukar dengan beberapa ciri lain dalam XP. Satu lagi perbezaan antara XP dan SCRUM ialah, susunan ciri yang dibangunkan dalam XP adalah satu keutamaan yang ketat oleh pelanggan, manakala pasukan SCRUM memutuskan susunan item (selepas tunggakan produk diutamakan oleh pemilik Produk SCRUM).
Tidak seperti XP, SCRUM tidak meletakkan sebarang amalan kejuruteraan. Sebagai contoh, XP didorong oleh amalan seperti pembangunan dipacu ujian (TDD), pengaturcaraan pasangan, pemfaktoran semula, dll. Walau bagaimanapun, sesetengah pihak percaya bahawa mewajibkan satu set amalan pada pasukan penganjur sendiri boleh memberi kesan negatif, dan ini boleh dipertimbangkan kekurangan XP. Satu lagi kelemahan pengaturcaraan Extreme ialah pasukan yang tidak berpengalaman mungkin cenderung untuk memfaktorkan semula tanpa sebarang ujian automatik atau TDD (atau hanya menggodam). Oleh itu, sesetengah pihak mencadangkan bahawa SCRUM adalah lebih baik untuk merenung (kerana ia membawa peningkatan besar hanya melalui lelaran kotak masa terfokus) dan XP sesuai untuk pasukan yang agak matang yang telah menemui nilai amalan yang disebutkan di atas (daripada menggunakannya kerana mereka telah diminta untuk berbuat demikian).