Pemrograman ekstrem![]() Pemrograman ekstrem (bahasa Inggris: extreme programming, XP) adalah metodologi pengembangan perangkat lunak yang dimaksudkan untuk memperbagus mutu perangkat lunak dan ketanggapan untuk keperluan pelanggan yang terus berubah. Sebagai suatu jenis pengembangan perangkat lunak tangkas,[1][2][3] pemrograman ekstrem menganjurkan rilis yang sering dalam daur pengembangan pendek, dimaksudkan untuk memperbagus keproduktifan dan memperkenalkan titik pengecekan (checkpoints) di mana keperluan pelanggan baru dapat diangkat. Unsur lain pemrograman ekstrem termasuk pemrograman secara berpasangan atau melakukan peninjauan kode secara luas, pengujian unit pada semua kode, tidak memprogramkan fitur baru sampai memang dibutuhkan, struktur pengelolaan datar, kejelasan dan kesederhanaan kode, mengharapkan perubahan dalam keperluan pelanggan begitu waktu berlalu sehingga masalah dipahami lebih baik, dan komunikasi sering dengan pelanggan dan pemrogram sejawat.[2][3][4] Metodologi ini memperoleh namanya dari gagasan bahwa praktik-praktik tradisional dari rekayasa perangkat lunak dapat dibawa unsur bermanfaatnya ke tahap yang "melampau". Misal, peninjauan kode dianggap praktik yang bermanfaat, dan bila dilaksanakan secara ekstrem, kode dapat ditinjau secara "berkesinambungan" (dengan kata lain, adalah praktik pemrograman berpasangan). SejarahKent Beck mengembangkan pemrograman ekstrem selama pekerjaannya di proyek penggajian Chrysler Comprehensive Compensation System (C3).[5] Beck menjadi pemimpin proyek C3 pada Maret 1996. Dia mulai memperhalus metodologi yang digunakan dalam proyeknya dan menulis sebuah buku tentang metodologinya, berjudul Extreme Programming Explained, yang diterbitkan pada Oktober 1999.[5] Chrysler membatalkan proyek C3 pada Februari 2000, setelah tujuh tahun, ketika Daimler-Benz mengambil alih perusahaan.[6] Dalam pengembangan metodologi ini juga, Ward Cunningham menjadi salah satu yang turut memberi pengaruh. Banyak praktik yang terkait pemrograman ekstrem telah ada sejak lama, sebab dalam gagasannya metodologi ini membawa praktik-praktik terbaik ke tahap melampau. Misal, "praktik pengembangan, perencanaan, dan penulisan pengujian terlebih dahulu sebelum setiap peningkatan mikro" telah digunakan sejak Proyek Merkurius NASA, pada awal tahun 1960-an.[7] Untuk mempersingkat waktu pengembangan secara keseluruhan, beberapa dokumen uji formal (seperti untuk pengujian penerimaan) telah dikembangkan secara sejalan dengan (atau sesaat sebelum) perangkat lunak yang siap diuji. Sehingga misal, sebuah kelompok penguji mandiri dari NASA dapat menulis tata cara pengujian, berdasarkan persyaratan formal dan batasan logis, sebelum pemrogram menulis perangkat lunak dan menyatupadukannya dengan perangkat keras. XP membawa konsep ini ke tingkat yang ekstrem, termasuk memprogrtamkan pengujian otomatis (terkadang di dalam modul perangkat lunak) yang mengabsahkan pengoperasian bahkan bagian kecil dari pengodean perangkat lunak, alih-alih hanya menguji fitur yang lebih besar. Asal-usulPada tahun 1990-an, terdapat dua pengaruh besar yang membentuk pengembangan perangkat lunak:
Dari sinilah pada dunia komputer, muncul keperluan pelanggan yang terus berubah dalam waktu singkat, yang membuat metode tradisional pengembangan perangkat lunak kurang efisien. Keperluan demikian menuntut daur hidup produk yang lebih pendek. Chrysel Comprehensive System (C3) dimulai untuk menentukan cara terbaik memakai teknologi objek dengan digunakannya sistem payroll oleh Chrysler sebagai objek penelitan, dengan Smalltalk sebagai bahasa dan GemSyone sebagai lapisan akses data. Chrysler mendatangkan Kent Beck,[5] seorang pelaksana Smalltalk terkemuka, untuk melakukan penyetelan kinerja pada sistem, tetapi perannya meluas saat dia mencatat beberapa masalah dengan proses pengembangan. Dia memanfaatkan kesempatan ini untuk mengusulkan dan menerapkan beberapa perubahan dalam praktik pengembangan - berdasarkan hasil karyanya dengan seorang pekerja sejawatnya, Ward Cunningham. Beck menguraikan pengonsepanbawal metode ini (diterjemakan dari bahasa Inggris):[8]
Informasi mengenai landasan dan tata laksana di balik XP disebarluaskan ke seluruh dunia, melalui perbincangan di WikiWikiWeb milik Cunningham (yang merupakan wiki pertama yang diterbitkan). Berbagai kontributor memperbincangkan dan mengembangkan gagasan tersebut, dan dari situlah muncul beberapa metodologi hasil sampingan . Selain itu, konsep XP telah dijelaskan, selama beberapa tahun, menggunakan peta sistem hiperteks di situs web XP pada http://www.extremeprogramming.org ca 1999. Beck menyunting serangkaian buku tentang XP, dimulai dengan bukunya sendiri Extreme Programming Explained (1999, ISBN 0-201-61641-6), yang menyebarkan gagasannya ke khalayak yang jauh lebih luas. Keadaan terkiniXP menarik minat besar di kalangan komunitas perangkat lunak pada akhir tahun 1990-an dan awal 2000-an dengan adanya penerimaan metodologi tersebut di sejumlah lingkungan yang sangat berbeda dari asalnya. Tata tertib tinggi yang dituntut oleh praktik-praktik asli XP seringkali terlupakan yang menyebabkan beberapa diantaranya sering terlipakan, seperti praktik-praktik yang dianggap terlalu kaku, ditinggalkan atau dikurangi, atau bahkan dibiarkan tak selesai, di situs-situs individu. Misal, praktik uji integrasi di penghujung hari untuk proyek tertentu dapat diubah ke jadwal akhir pekan, atau cukup dikurangi bebannya menjadi pengujian pada tanggal yang disetujui bersama. Jadwal yang lebih longgar demikian dapat menghindari orang-orang merasa terdesak membuat rintisan setengah-setengah hanya demi lulus pengujian di penghujung hari. Jadwal yang kurang kaku malahan memungkinkan pengembangan fitur-fitur kompleks selama beberapa hari. Sementara itu, praktik pengembangan tangkas lainnya tidak tinggal diam, dan Templat:Aa of XP terus berkembang, menyerap lebih banyak pelajaran dari pengalaman di lapangan, untuk digunakan dalam praktik lain. Dalam edisi kedua Extreme Programming Explained (November 2004), lima tahun setelah edisi pertama, Beck menambahkan lebih banyak nilai dan praktik serta membedakan antara praktik utama dan praktik pelengkap. PraktikPemrograman ekstrem dapat diterangkan memiliki 12 praktik, dikelompokkan menjadi empat jenis: Umpan balik skala halusProses berkesinambungan
Pemahaman bersamaKesejahteraan pemrogram
KritikanOmongan awal tentang pemrograman ekstrem dan landasan kontroversialnya, macam pemrograman berpasangan dan rancangan berkesinambungan, telah mendapat kecaman tertentu, seperti yang datang dari McBreen,[9] Boehm and Turner,[10] Matt Stephens dan Doug Rosenberg.[11] Namun, sebagian besar kecaman tersebut diyakini oleh pelaksana tangkas sebagai kesalahpahaman tentang cara pengembangan tangkas dikerjakan.[12] Secara khusus, pemrograman ekstrem telah ditinjau dan dikritik oleh Extreme Programming Refactored karya Matt Stephens dan Doug Rosenberg.[6] Referensi
Bacaan lebih lanjut
Pranala luar
|