Extreme Programming (XP) adalah model pengembangan perangkat lunak yang mencoba menyederhanakan berbagai tahapan dalam proses pengembangan tersebut sehingga menjadi lebih adaptif dan fleksibel.
Apa yang dimaksud dengan Extreme Programming ?
Extreme Programming (XP) adalah model pengembangan perangkat lunak yang mencoba menyederhanakan berbagai tahapan dalam proses pengembangan tersebut sehingga menjadi lebih adaptif dan fleksibel.
Apa yang dimaksud dengan Extreme Programming ?
Sumber : XP flow Chart
Seiring berkembangnya jaman, teknologi informasi juga ikut berkembang. Perkembangan teknologi informasi sangat berpengaruh pada kehidupan manusia saat ini. Perkembangan teknologi informasi tidak bisa lepas dari perkembangan ilmu pengetahuan. Perkembangan ilmu pengetahuan yang tinggi membuat para pembuat perangkat lunak menciptakan berbagai macam variasi perangkat lunak, dikarenakan permintaan para pengguna yang tinggi. Untuk menjamin terpenuhinya kebutuhan para pengguna, pengemabangan perangkat lunak memerlukan langkah-langkah yang tepat, efektif, dan efisien. Untuk itulah berkembang berbagai metodologi pengembangan perangkat lunak. Salah satunya yaitu ekstrim pemrograman (XP). Ekstrim pemrograman (XP) adalah metodologi pengembangan perangkat lunak untuk meningkatkan kualitas perangkat lunak dan responsif terhadap perubahan kebutuhan pelanggan.
Ada empat kegiatan dasar mengenai XP untuk proses pengembangan perangkat lunak :
1. Merancang
Iterasi pemrograman XP dimulai dengan merancang. Prinsip-prinsip dari tahap ini adalah:
Dorongan pada kesederhanaan dengan mengekspresikan hal hanya sekali dan tidak menambahkan fungsi antisipasi.
Menggunakan sistem metafora atau standar pada nama, nama kelas dan metode, dan menyepakati gaya seragam dan format untuk memastikan kompatibilitas antara kerja anggota tim yang berbeda.
Menggunakan Tanggung Jawab Software Class dan Kolaborasi (CRC) Kartu yang memungkinkan untuk keberangkatan dari pola pikir prosedural tradisional dan membuat teknologi berorientasi objek mungkin. kartu tersebut memungkinkan semua anggota tim proyek untuk menyumbangkan ide-ide, dan menyusun ide-ide terbaik dalam desain.
Menciptakan solusi lonjakan atau program sederhana yang mengeksplorasi solusi potensial untuk masalah tertentu, mengabaikan semua masalah lain, untuk mengurangi risiko.
2. Coding
Coding merupakan fase paling penting dalam siklus hidup Programming Extreme. pemrograman XP memberikan prioritas kepada coding yang sebenarnya atas semua tugas-tugas lain seperti dokumentasi untuk memastikan bahwa pelanggan menerima sesuatu yang substansial dalam nilai pada akhir hari. Standar terkait dengan coding meliputi:
Mengembangkan kode berdasarkan metafora dan standar yang telah disepakati, dan mengadopsi kebijakan kepemilikan kode kolektif.
Pasangan pemrograman atau kode berkembang oleh dua programer bekerja sama pada satu mesin, yang bertujuan untuk menghasilkan kode berkualitas tinggi dengan biaya yang sama atau kurang.
Kepatuhan yang ketat untuk 40 jam workweeks tanpa lembur. Hal ini memastikan para pengembang bekerja di puncak kemampuan mental dan fisik mereka.
Integrasi sering kode ke repositori khusus, hanya dengan satu pasangan mengintegrasikan pada suatu waktu untuk mencegah konflik, dan optimasi di akhir.
3. Pengujian
Program ekstrim terintegrasi pengujian dengan tahap pengembangan daripada di akhir tahap pengembangan. Semua kode memiliki unit test untuk menghilangkan bug, dan kode melewati semua tes unit tersebut sebelum rilis.
Tes kunci lain adalah tes penerimaan pelanggan, berdasarkan spesifikasi pelanggan. tes penerimaan dijalankan pada penyelesaian coding, dan pengembang menyediakan pelanggan dengan hasil tes penerimaan bersama dengan demonstrasi.
4. Mendengarkan
Dasar pemrograman ekstrim adalah mekanisme berkelanjutan keterlibatan pelanggan melalui umpan balik dalam tahap pengembangan. Terlepas dari pelanggan, pengembang juga menerima umpan balik dari manajer proyek.
Dasar dari umpan balik adalah tes penerimaan pelanggan. Setiap umpan balik dari pelanggan yang menentukan persyaratan revisi menjadi dasar dari desain baru, dan proses desain-coding-tes-mendengarkan berulang. Jika pelanggan tetap puas dengan hasil tes iterasi berakhir di sana, dan desain untuk iterasi baru dimulai, yang lagi-lagi mengikuti siklus desain-coding-testing-mendengarkan. [1]
Peraturan dan Praktek
Dalam XP empat aktivitas dasar ini diterapkan dengan menggunakan praktek-praktek rekayasa perangkat lunak tradisional tetapi ditinggikan untuk mewujudkan dan mendorong nilai-nilai XP.
Meskipun benar-benar ada 28 peraturan dan praktik Extreme Programing [2] mereka dapat dipadatkan menjadi dua belas aturan sederhana [3] [4]:
Cerita Pengguna (perencanaan) : Cerita Pengguna dapat dilihat sebagai versi yang lebih kecil dari kasus penggunaan. Dengan cara ini, pelanggan menentukan sesingkat mungkin spesifikasi aplikasi baru (fitur, nilai, prioritas). Cerita-cerita ini akan menjadi dasar bagi tim proyek untuk melakukan estimasi biaya dan manajemen proyek.
Rilis Kecil (blok bangunan) : XP menekankan pada versi kecil, sederhana namun sering update dari aplikasi. Setiap persyaratan baru ditambahkan akan langsung dimasukkan dan sistem ini dirilis ulang.
Metafora (skema penamaan standar) : Pengembang dan programmer harus mematuhi standar pada nama, nama kelas dan metode.
Kepemilikan kolektif : Dalam metodologi XP, semua kode dianggap dimiliki oleh seluruh tim dan bukan milik perorangan. Oleh karena itu, semua kode ditinjau dan diperbarui oleh semua orang.
Coding standar : Gaya dan format coding harus sama untuk memungkinkan kompatibilitas antara anggota tim. Pendekatan ini menghasilkan kolaborasi yang lebih cepat.
Desain sederhana : Selalu mencari implementasi sistem yang semudah mungkin pelaksanaan sistem belum memenuhi semua fungsi yang diperlukan.
Refactoring : Aplikasi harus terus disesuaikan dan ditingkatkan oleh semua anggota tim. Ini membutuhkan komunikasi yang sangat baik antara anggota untuk menghindari duplikasi pekerjaan.
Pengujian : Setiap rilis kecil (disebut blok bangunan) harus lulus tes sebelum dibebaskan. Keunikan XP dalam aspek ini adalah bahwa tes diciptakan pertama dan kemudian kode aplikasi dikembangkan untuk memenuhi dan lulus cahllenges dari mereka tes pra-ditulis.
Pemrograman Pair : programmer XP bekerja berpasangan. Semua kode dikembangkan oleh dua programmer yang bekerja bersama-sama di satu mesin. Harapannya adalah bahwa pasangan pemrograman menghasilkan kode berkualitas tinggi dengan biaya yang sama atau kurang.
Integrasi berkelanjutan : Software membangun selesai beberapa kali sehari. Dengan cara ini semua pengembang dapat menghindari fragmentasi pekerjaan karena mereka terus-menerus melepaskan dan mengintegrasikan kode bersama-sama.
40-jam kerja seminggu : Jaga kondisi mental dan fisik harus bangun dan berjalan dengan tidak bekerja lebih dari apa yang tubuh dapat menangani.
Customer On-site : Pelanggan harus dilihat sebagai bagian integral dari proyek. Pelanggan harus diatur akan tersedia setiap saat untuk memastikan bahwa proyek ini di jalur yang benar.
Meskipun metodologi XP dapat menghasilkan suatu perbaikan proses yang lebih efisien, lebih dapat diprediksi, lebih fleksibel dan lebih menyenangkan [5], [6] tetapi juga memiliki beberapa kelemahan seperti :
Extreme Programming (berikutnya akan disingkat sebagai XP) adalah sebuah pendekatan atau model pengembangan perangkat lunak yang mencoba menyederhanakan berbagai tahapan dalam proses pengembangan tersebut sehingga menjadi lebih adaptif dan fleksibel. XP bukan hanya berfokus pada coding tetapi meliputi seluruh area pengembangan perangkat lunak. XP mengambil pendekatan ‘ekstrim’ dalam iterative development.
XP Pertama kali diusulkan oleh Kent Beck dan Ward Cunningham pada bulan Maret 1996, asal mula XP digunakan karena pada saat itu permintaan dari customer yang sering berubah dengan cepat sehingga mengakibatkan putaran kehidupan metode pengembangan perangkat lunak tradisional menjadi lebih pendek dan tidak selaras dengan metode tradisional karena pada umumnya memerlukan desain yang luas dan itu mengakibatkan perubahan desain yang terjadi dan tentu saja memerlukan biaya yang lebih tinggi. Tujuan XP adalah meminimalisir biaya yang diperlukan jika ada perubahan dalam pengembangan perangkat lunak.
Whole TeamSeluruh kontributor dalam proyek yang menggunakan pendekatan XP duduk bersama sebagai suatu tim. Tim ini terdiri beberapa peran, antara lain programmer, penguji,orang yang mengerti bisnis, analis, manajer, dan lain-lain. Setiap peran yang ada tidak mutlak menjadi peran dari satu orang saja. Tim terbaik dalam XP tidak harus memiliki pakar, hanya kontributor umum dengan keterampilan khusus saja. Semua orang di tim XP memberikan kontribusi dengan cara apapun yang mereka dapat lakukan.
Customer Tests sebagai bagian dari presentasi masing-masing fitur yang diinginkan, Customer XP mendefinisikan satu atau lebih tes penerimaan otomatis untuk menunjukkan bahwa fitur tersebut bekerja dengan baik. Tim membangun tes ini dan menggunakannya untuk membuktikan pada kepada Customer bahwa fitur ini telah diimplementasikan dengan benar. Tes secara otomatis ini penting karena dalam XP hanya diberikan waktu yang singkat sehingga tes manual tidak akan digunakan karena memakan waktu yang lama.