Apa yang dimaksud dengan Extreme Programming ?

rekayasa_perangkat_lunak
agile_development

(Danastri Luna Badira) #1

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 ?


Apakah yang dimaksud dengan Agile software Development ?
(Widya Estrella) #2

Sumber : http://www.extremeprogramming.org/map/project.html

Latar Belakang

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.

Kegiatan Dasar

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

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

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

  3. Metafora (skema penamaan standar) : Pengembang dan programmer harus mematuhi standar pada nama, nama kelas dan metode.

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

  5. Coding standar : Gaya dan format coding harus sama untuk memungkinkan kompatibilitas antara anggota tim. Pendekatan ini menghasilkan kolaborasi yang lebih cepat.

  6. Desain sederhana : Selalu mencari implementasi sistem yang semudah mungkin pelaksanaan sistem belum memenuhi semua fungsi yang diperlukan.

  7. Refactoring : Aplikasi harus terus disesuaikan dan ditingkatkan oleh semua anggota tim. Ini membutuhkan komunikasi yang sangat baik antara anggota untuk menghindari duplikasi pekerjaan.

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

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

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

  11. 40-jam kerja seminggu : Jaga kondisi mental dan fisik harus bangun dan berjalan dengan tidak bekerja lebih dari apa yang tubuh dapat menangani.

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

Kelemahan dan Tantangan

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 :

  • Kesulitan koordinasi tim yang lebih besar
  • Bisa menghasilkan sebuah proyek yang tidak pernah berakhir jika tidak dikelola dengan baik
  • Kecenderungan untuk tidak mendokumentasikan secara menyeluruh
  • Memprediksi fitur yang tepat untuk diselesaikan dalam waktu yang tetap / anggaran.

Referensi
  1. http://www.brighthubpm.com/methods-strategies/88996-the-extreme-programming-life-cycle/
  2. www.extremeprogramming.org
  3. Scott Withrow, Extreme Programming: Do these 12 practices make perfect?, http://articles.techrepublic.com.com/5100-22_11-1046488.html
  4. B. Rumpe, P. Scholz, Scaling the Management of Extreme Programming Projects, Projects & Profits Special Issue on Management of Extreme Programming Projects, Vol. III (8), pp. 11-18. ICFAI Press, Hyderabat, August 2003.
  5. http://positivesharing.com/2006/01/extreme-projects
  6. John Noll, Darren C. Atkinson, Comparing Extreme Programming to Traditional Development for Student Projects: A Case Study, Department of Computer Engineering Santa Clara University, year unknown