Extreme Programming (XP) merupakan salah satu metodologi dalam rekayasa perangkat lunak dan juga merupakan satu dari beberapa agile software development methodologies yang berfokus pada coding sebagai aktivitas utama di semua tahap pada siklus pengembangan perangkat lunak (software development lifecycle).
Metodologi ini mengedepankan proses pengembangan yang lebih responsive
terhadap kebutuhan customer (”agile”) dibandingkan dengan metode-metode
tradisional sambil membangun suatu software dengan kualitas yang lebih
baik.
Extreme Programming muncul menawarkan sebuah disiplin baru dalam pengembangan software secara agile. Nilai dasar yang terkandung di dalam Extreme Programming adalah: Komunikasi (Communication), Kesederhanaan (Simplicity), Umpan balik (Feedback) Keberanian (Courage) dan menghormati (Respect).
Kata Kunci: Extreme Programming, agile, coding, komunikasi, kesederhanaan, umpan balik, keberanian, menghormati.
Latar Belakang XP
Requirement yang berubah dengan cepat menuntut lifecycles
yang lebih pendek, dan tidak selaras dengan metoda pengembangan
tradisional, yang pada umumnya memerlukan disain luas di awal dan
mengakibatkan perubahan desain yang terjadi kemudian memerlukan biaya
yang lebih tinggi atau kehilangan milestones.
Berdasarkan
hal ini kemudian dilahirkan konsep XP yang digagas oleh Kent Beck dan
Ward Cunningham pada Maret 1996. Metode XP merupakan yang terpopuler
dari beberapa metodologi pengembangan software yang dipakai untuk
mengimplementasikan proyek pengembangan perangkat lunak.
Tujuan XP
Tujuan utama XP adalah menurunkan biaya dari adanya perubahan software.
Dalam metodologi pengembangan sistem tradisional, kebutuhan sistem
ditentukan pada tahap awal pengembangan proyek dan bersifat fixed. Hal
ini berarti biaya terhadap adanya perubahan kebutuhan yang terjadi pada
tahap selanjutnya akan menjadi mahal. XP diarahkan untuk menurunkan
biaya dari adanya perubahan dengan memperkenalkan nilai-nilai basis
dasar, prinsip dan praktis. Dengan menerapkan XP, pengembangan suatu
sistem haruslah lebih fleksibel terhadap perubahan.
Kunci Utama XP
Menurut penggagas dari metode XP, Kent Beck mendefinisikan empat kunci utama (inti) dari XP yaitu:
1. Communication (Komunikasi)
Tugas
utama developer dalam membangun suatu sistem perangkat lunak adalah
mengkomunikasikan kebutuhan sistem kepada pengembang perangkat lunak.
Komunikasi dalam XP dibangun dengan melakukan pemrograman berpasangan
(pair programming). Developer didampingi oleh pihak klien dalam
melakukan coding dan unit testing sehingga klien bisa terlibat langsung
dalam pemrograman sambil berkomunikasi dengan developer. Tujuannya untuk
memberikan pandangan pengembang sesuai dengan pandangan pengguna
sistem.
2. Simplicity (Kesederhanaan)
XP
mencoba untuk mencari solusi paling sederhana dan praktis. Perbedaan
metode ini dengan metodologi pengembangan sistem konvensional lainnya
terletak pada proses desain dan coding yang terfokus pada kebutuhan saat
ini daripada kebutuhan besok, seminggu lagi atau sebulan lagi. Lebih
baik melakukan hal yang sederhana dan mengembangkannya besok jika
diperlukan.
3. Feedback (Masukan)
Hal
ini diperlukan untuk mengetahui kemajuan dari proses dan kualitas dari
aplikasi yang dibangun. Informasi ini harus dikumpulkan setiap interval
waktu yang singkat secara konsisten. Ini dimaksudkan agar hal-hal yang
menjadi masalah dalam proses pengembangan dapat diketahui sedini
mungkin. Setiap feed back ditanggapi dengan melakukan tes, unit test
atau system integration dan jangan menunda karena biaya akan
membengkak (uang, tenaga, waktu).
4. Courage (Keberanian)
Berani
mencoba ide baru. Berani mengerjakan kembali dan setiap kali kesalahan
ditemukan, langsung diperbaiki. Contoh dari courage adalah komitmen
untuk selalu melakukan design dan coding untuk saat ini dan bukan untuk
esok. Ketika ada kode yang terlalu rumit, sulit dibaca dan dipahami,
tidak sesuai dengan kemauan pelanggan, dll maka seharusnya kode program
seperti itu di refactor (kalau perlu dibangun ulang). Hal ini menjadikan
pengembang merasa nyaman dengan refactoring program ketika diperlukan.
5. Respect (Menghormati)
Pentingnya
respect terhadap anggota team lainnya karena dengan siklus pendek dan
integrasi continue, programmer tidak boleh melakukan perubahan yang
dapat merusak kompilasi dan menyebabkan keberadaan unit uji gagal atau
memperlambat kerja team. Respects tiap individu akan selalu menghasilkan
kualitas tinggi.
Beberapa hal yang harus dipertimbangkan sebelum seseorang masuk dalam dunia XP adalah sebagai berikut:
1. User
harus memahami konteks bisnis yang akan dikembangkan sistemnya,
sehingga developer dapat menangkap sistem secara aplikatif dan dapat
mengusulkan teknologi apa yang dapat dikembangkan dalam sistem barunya.
2. Akan
lebih efektif apabila developer pernah menangani proyek pengembangan
sistem yang sejenis sehingga dapat memberikan usulan model sistem baru,
di samping alasan bahwa developer telah memiliki template aplikasi
sistem tersebut untuk dijadikan prototype sistem baru. Hal ini akan
berimplikasi kepada kemudahan dalam konstruksi sistem karena
dikembangkan berdasarkan template yang sudah ada.
3. Extreme
programming menuntut komunikasi antar developer dan user secara
intensif dan komunikasi internal antar developer secara komprehensif,
sehingga akan lebih representatif apabila tahap pengembangan sistem
dilakukan di lokal yang mendukung proses komunikasi tersebut.
XP
adalah suatu bentuk pembangunan perangkat lunak yang berbasis nilai
kemudahan, komunikasi, umpan balik, dan keberanian. Bekerja dalam whole team bersama-sama dengan praktek yang mudah. Adapun inti penerapannya adalah:
- Planning Game
- Small, frequent releases
- System metaphors
- Simple design
- Testing (unit testing & TDD)
- Frequent refactoring
- Pair programming
- Collective code ownership
- Continuous integration
- Sustainable pace
- Whole team together
- Coding standards
Kesimpulan
Keuntungan XP:
- Menjalin komunikasi yang baik dengan client.
- Meningkatkan komunikasi dan sifat saling menghargai antar developer.
Kerugian XP:
- Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
- Tidak bisa membuat kode yang detail di awal (prinsip simplicity dan juga anjuran untuk melakukan apa yang diperlukan hari itu juga).
Tidak ada komentar:
Posting Komentar