You are on page 1of 7

Rekayasa Perangkat Lunak

Extreme Programming (XP)



Oleh :
Mahadi Siregar (1206328572)

Ekstensi Fakultas Ilmu Komputer
Universitas Indonesia
Sejarah XP
Pertengahan tahun 1980, Kent Beck dan Ward Cunningham yang merupakan penemu metodlogy
Extreme Programming (XP) bekerja di bagian research di perusahaan Tektronix. Ide awal
tentang XP mereka temukan ketika membangun Smalltalk systems di tahun 1980 s/d 1990-an.
Kemudian ditahun di awal tahun 1990, mereka berdua membuat rangkuman dari setiap proyek-
proyek yang mereka kerjakan,dan mengembangkannya menjadi metode pengembangan
aplikasi/software.
Kent Beck terus melanjutkan untuk mengembangkan idenya ketika mengerjakan proyek C3
(Chrysler Comprehensive Compensation) dari Chrysler. Proyek tersebut terancam gagal karena
kerumitan sistem saat pembangunan dan mengalamai kegagalan saat melakukan testing aplikasi.
Kent Beck, seorang ahli software engineering bersama rekannya Ron Jeffries yang disewa oleh
Chrysler untuk menyelematkan proyek tersebut diberikan kewenangan untuk membuat
perubahan pada proyek C3. Pada akhirnya, proyek tersebut berhasil dikerjakan sesuai permintaan
Chrysler. Dan proyek tersebut dikenal sebagai proyek yang menciptakan lahirnya metode
pengembangan XP. Istilah extreme programming mulai digunakan sejak tahun 1997.

Gambaran Umum Extreme Programming
XP lebih mengutamakan kepuasan customer, dan hal inilah yang membuat XP populer. XP
menekankan bahwa manager, kustomer, pengembang berada pada kedudukan yang sama di
dalam tim. Dalam pengembangan proyek (perangkat lunak), terdapat lima kunci utama pada XP
yang menyebabkan XP efisien. Antara lain communication, simplicity, feedback, respect, and
courage.

Communication
Komunikasi merupakan hal yang sangat penting pada metodologi XP. Komunikasi perlu untuk
mendiskusikan setiap perubahan dan solusi terhadap masalah. Komunikasi tidak hanya di
internal pengembang, tetapi juga dengan kustomer. Pada XP, komunikasi yang baik dianggap
lebih efisien dibandingkan dengan dokumentasi proyek.

Simplicity
Hal yang kompleks akan dipecah-pecah pada XP. Hal yang tidak penting akan dibuang.
Demikian juga untuk desain dan hal lain, diusahakan sederhana. Dengan demikian, pengerjaan
lebih mudah dan yang sederhana-sederhana tersebut nantinya akan digabung kembali.
Feedback
Pada XP, feedback didapat dengan mengadakan testing terhadap delivery dari pengembang.
Aplikasi diberikan secepat mungkin dan setiap perubahan akan diimplementasikan sesuai
permintaan.


Respect
XP menganggap kesuksesan didapat dari kombinasi kontribusi-kontribusi kecil dari setiap
anggota tim. Sehingga setiap pekerjaan, pada XP akan diberikan respect.
Courage
Setiap anggota tim harus selalu komitmen dan memiliki integritas terhadap tujuan bersama.
Dalam situasi dengan kemungkinan perubahan yang tinggi, komitmen ini harus terus dijaga dan
setiap anggota tim harus saling percaya.

Tahapan/Fase pada Extreme Programming
1. Exploration Phase
Merupakan fase awal pengembangan proyek (software). Hal yang dikerjakan pada fase
ini adalah pembuatan tim beserta role masing-masing anggota tim.
2. Planning Phase
Fase untuk mendapatkan requirement atau sering disebut user story. Kemudian masing-
masing requirement ditentukan prioritas sehingga jelas urutan pengerjaan setiap masing-
masing requirement tersebut.
3. Iteration to Release Phase
Merupakan tahap implementasi. Kemudian dilakukan pembuatan kode dan pengujian
kode yang disesuaikan dengan prioritas masing-masing requirement. Ditahap ini akan
dilakukan beberapa iterasi sampai dinyatakan sepakat.
4. Productionizing Phase
Fase yang berfokus kepada demo kepada klien, mendapatkan feedback atau masukkan
dari klien untuk selanjutnya menjadi bahan revisi pada iterasi berikutnya.
5. Maintenance Phase
Mengerjakan perubahan yang diperlukan pada kode program untuk meningkatkan
kualitas dari aplikasi tersebut.
6. Death Phase
Fase pertanda berakhirnya proyek tersebut.

Pada implementasinya, fase diatas dilaksanakan dengan menggunakan beberapa teknik
(practices) yang sebenarnya terdapat juga pada metologi secara umum. Namun XP menekankan
beberapa diantaranya yang membedakan XP dengan metodologi lain. Sebernya terdapat 28
teknik, tetapi kemudian dirangkumkan menjadi 12 teknik. Teknik-teknik tersebut adalah :
1. User stories (planning)
Permintaan pengguna (User stories) dilihat sebagai versi yang lebih kecil dari use case.
Dengan cara ini, pengguna mendefinisikan sesingkat mungkin spesifikasi aplikasi baru
(fitur, nilai, prioritas). Permintaan-permintaan ini akan menjadi dasar bagi tim proyek
untuk melakukan estimasi biaya dan manajemen proyek.

2. Small releases (building blocks)
XP memecah semua requirement aplikasi menjadi bagian-bagian kecil. Bagian-bagian ini
dikerjakan dan menjadi versi pembaharuan. Aplikasi dikerjakan per-bagian dan sering di-
update. Setiap requirement yang baru akan ditambahkan pada versi berikutnya.
3. Metaphor (standardized naming schemes)
Developers dan programmer harus mengikuti standar penamaan kelas, method, atau
penamaan lain yang telah disepakati.
4. Collective ownership
Pada metodologi XP, semua kode program adalah milik semua anggota tim. Dengan
demikian, semua kode juga di-review oleh semua anggota tim.
5. Coding standard
Format, aturan, dan model kode program setiap anggota tim harus sama sehingga setiap
kode kompatibel dengan yang lain.
6. Simple design
Dengan memecah requirement, desain dan implementasi dilakukan sesederhana
mungkin.
7. Refactoring
Setiap pekerjaan harus dikomunikasikan dengan baik sehingga tidak terdapat duplikasi
pekerjaan.
8. Testing
Setiap rilis versi yang dikeluarkan harus lolos testing dengan baik sehingga tidak
menggangu rilis versi berikutnya. Keunikan pada XP yaitu metode testing dibuat diawal
kemudian kode program dibangun dan harus lulus test tersebut yang telah dibuat.
9. Pair programming
Programmer XP bekerja secara berpasangan. Setiap kode program yang dibuat, ditulis
oleh dua programmer yang bekerja bersamaan. Hal ini dilakukan karena metode ini
dianggap akan meningkatkan kualitas kode program yang dibuat.
10. Continuous integration
Aplikasi yang dibangun berdasarkan bagian-bagian kecil hasil pemecahan semua
requirement, sehingga sering melakukan build aplikasi. Sehingga perlu integrasi
berkelanjutan guna mencegah fragmentasi.
11. 40-hour workweek
Menurut Beck, bekerja 8 jam satu hari dan 5 hari satu minggu efisien untuk programmer
guna menjaga konsentrasi, kondisi mental, dan fisik tetap baik.


12. On-site customer
Pengguna harus dilihat sebagai bagian integral dari proyek. Pengguna diminta untuk
tersedia setiap saat untuk memastikan bahwa proyek dikerjakan sesuai dengan
permintaan dan kebutuhan pengguna.

Proses yang terdapat pada XP dapat digambarkan seperti diagram berikut:



Gambar 1. Diagram proses pada metodologi XP

Perbandingan Fase pada Extreme Programming dengan Tahapan pada Generic
Framework Activities

Berdasarkan penjelasan tahapan dan teknik XP diatas, berikut pembandingan aktivitas pada XP
dengan aktivitas metodologi pengembangan aplikasi secara umum.

Generic XP Penjelasan aktivitas pada XP
Communication Exploration Phase Merupakan pertemuan antara dua pihak, yaitu pihak
developer dan pengguna untuk membicarakan project
yang akan dibangun.
Planning Planning Phase Hampir sama dengan metodologi pada umumnya.
Bertujuan untuk mendapatkan requirement pengguna
atau pada XP disebut user story.
Modeling Planning Phase Pada XP fase ini menjadi dari planning phase yaitu
dengan membuat arsitektur perangkat lunak pada
proses metaphor.
Implementasi/
Construction
Iteration to Release
Phase,
Productionizing
Phase
Pembuatan kode program dilakukan berpasangan pada
XP. Untuk demo kepada pengguna, terdapat
productionizing phase dan untuk menerapkan
perubahan dilakukan pada proses refactoring.
Deployment Maintenance Phase
dan Death Phase
Untuk tahap deployment aplikasi, pada XP dilakukan
pada fase Maintenance Phase dan Death Phase untuk
menandakan proyek tersebut telah selesai.

Meskipun metodologi XP dapat dianggap lebih efisien, lebih mudah diprediksi, dan lebih
fleksibel, namun XP juga memiliki kelemahan seperti :
1. Kesulitan dalam mengkoordinasi tim yang besar
2. Dapat mengakibatkan proyek tidak pernah berakhir jika tidak dikelola dengan baik
3. Dokumentasi yang kurang baik
4. Sulitnya memprediksi fitur/fungsi, waktu penyelesaian, dan kesesuain anggaran

Metodologi XP baik diterapkan pada proyek-proyek yang memiliki karakteristik seperti:
1. Proyek yang menggunakan teknologi baru atau teknologi prototype yang masih
berkembang. Karena dengan demikian proyek akan banyak mengalami perubahan dan
banyak masalah implementasi belum terprediksi dengan baik.
2. Sering rilis (rilis kecil-kecil)
3. Proyek-proyek untuk tujuan penelitian
4. Proyek skala kecil yang lebih mudah dikelola dengan metode informal.

Berikut merupakan diagram kondisi yang baik untuk menerapkan XP


Gambar 2. Kondisi yang Cocok untuk Agile
Daftar Pustaka

Scott Withrow, Extreme Programming: Do these 12 practices make perfect?
, http://articles.techrepublic.com.com/5100-22_11-1046488.html

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.

Awad ,M. A, A Comparison between Agile and Traditional Software Development
Methodologies, 2005


www.xprogramming.com/xpmag/whatisxp.htm [Diakses 24 02 2014].

http://www.ddj.com/dept/architect/184411706 [Diakses 24 02 2014].

http://my.safaribooksonline.com/book/software-engineering-and-development/agile-
development/0131111558/extreme-programming/ch08lev1sec11 [Diakses
23 02 2014].

You might also like