Share to: share facebook share twitter share wa share telegram print page

Pemrograman ekstrem

Perencanaan dan umpan balik berkesinambungan dalam 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).

Sejarah

Kent 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-usul

Pada 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]

Saat pertama kali diminta untuk memimpin tim, saya meminta mereka untuk melakukan beberapa hal yang saya rasa masuk akal, seperti pengujian dan tinjauan. Kali kedua, ada banyak yang dipertaruhkan. Saya berpikir, "Persetan dengan urusan-urusan ini, setidaknya ini akan jadi artikel yang bagus," dan saya meminta tim untuk memaksimalkan segala hal yang saya anggap penting, dan meninggalkan semua yang lainnya.


Beck mengundang Ron Jeffries ke proyek untuk membantu mengembangkan dan menyempurnakan metodologi mereka. Jeffries kemudian bertindak sebagai pelatih untuk menanamkan praktik-praktik tersebut sebagai kebiasaan dalam tim C3.

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 (lihat pula pengembangan perangkat lunak tangkas). 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 terkini

XP 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.

Praktik

Pemrograman ekstrem dapat diterangkan memiliki 12 praktik, dikelompokkan menjadi empat jenis:

Umpan balik skala halus

Proses berkesinambungan

Pemahaman bersama

  • Standar kode
  • Kepemilikan kode kolektif[5]
  • Rancangan sederhana[5]
  • Metafora sistem

Kesejahteraan pemrogram

  • Kecepatan berkelanjutan

Kritikan

Omongan 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

  1. ^ "Human Centred Technology Workshop 2006 ", 2006, PDF, Human Centred Technology Workshop 2006
  2. ^ a b UPenn-Lectures-design-patterns "Design Patterns and Refactoring", University of Pennsylvania, 2003 Diarsipkan August 2, 2010, di Wayback Machine..
  3. ^ a b USFCA-edu-601-lecture Extreme Programming.
  4. ^ "Manifesto for Agile Software Development". Agilemanifesto.org. 2001. Diakses tanggal March 26, 2019.
  5. ^ a b c d e f g Computerworld-appdev-92 "Extreme Programming", Computerworld (online), December 2001.
  6. ^ a b Rosenberg, Doug; Stephens, Matt (2003). Extreme Programming Refactored: The Case Against XP. Apress. ISBN 978-1-59059-096-6.
  7. ^ Larman & Basili 2003.
  8. ^ Interview with Kent Beck and Martin Fowler. March 23, 2001.
  9. ^ McBreen, P. (2003). Questioning Extreme Programming. Boston, MA: Addison-Wesley. ISBN 978-0-201-84457-3.
  10. ^ Boehm, B.; R. Turner (2004). Balancing Agility and Discipline: A Guide for the Perplexed. Boston, MA: Addison-Wesley. ISBN 978-0-321-18612-6.
  11. ^ Stephens, Matt; Doug Rosenberg (2004). The irony of extreme programming. MA: Dr Dobbs journal.
  12. ^ sdmagazine Diarsipkan March 16, 2006, di Wayback Machine.

Bacaan lebih lanjut

Pranala luar

Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia

Kembali kehalaman sebelumnya