EXTREME
PROGRAMMING (XP)
Oleh:
KURNIA MULIA KHOIRUNNISAK (F1D016048)
MEGA LAELY (F1D016054)
Extreme Programming (XP) merupakan salah satu model yang ada dalam
pendekatan agile process. Agile process dikenal dengan model yang interaktif
dan incremental. Dalam pendekatan agile process suatu perangkat lunak
dikembangkan dengan desain minimalis, pengujian bertahap, dan dokumentasi yang
tidak berlebihan. Model Extreme Programming didefinisikan sebagai suatu metode
ringan yang menekankan pada komunikasi yang intens, hingga model pengerjaan
yang interaktif dan Incremental.
CORE VALUE XP
PROSES / TAHAPAN XP
CORE VALUE XP
1.
Komunikasi (Communication)
Kurangnya komunikasi merupakan penyebab utama
kegagalan pengembangan software. Oleh karena itu Extreme Programming (XP)
memfokuskan diri pada hubungan komunikasi yang baik antar tim-klien, anggota
tim, dan manajer proyek.Komunikasi dalam XP dibangun dengan melakukan
pemrograman berpasangan (pair programming).Klien harus dilibatkan dalam proses
pengembangan perangkat lunaknya dengan tujuannya untuk memberikan pandangan
pengembang sesuai dengan pandangan pengguna sistem yang dibangun.
2. Kesederhanaan
(Simplicity)
Extreme Programming (XP) melakukan semua pekerjaan
dengan sederhana dan praktis tanpa mengurangi fungsi utamanya. Dalam
pengerjaan, metode yang dipilih adalah metode yang pendek dan simpel. Jangan
terlalu rumit dalam membuat desain, hilangkan fitur yang tidak ada gunanya atau
hapus fungsi yang tidak terpakai. Dengan kata lain lebih baik melakukan hal
yang sederhana saat sekarang (sesuai kebutuhan) dan mengembangkannya nanti jika
diperlukan.
3. Umpan
balik (Feedback)
Selalu evaluasi perkembangan perangkat lunak yang
sedang dikerjakan. Segala informasi harus dikumpulkan setiap interval waktu
yang konsisten dan kesalahan-kesalahan yang muncul selama proses pengembangan
harus dibahas dan dicari solusinya. Umpan balik tersebut berfungsi sebagai indikator
kemajuan proyek dan menginformasikan pemimpin proyek apabila perubahan perlu
dibuat.
4. Keberanian
(Courage).
Programmer
Extreme Programming (XP) didorong untuk berani bereksperimen dan menulis ulang
kode jika mereka tidak puas dengan kode atau desain yang sudah ada. Hal ini
membantu mempertahankan moral serta intgritas para pengembang proyek dan dapat
mendukung lebih lanjut komunikasi dengan anggota proyek lainnya.
PROSES / TAHAPAN XP
Di dalam pengembangan sistem yang menggunakan Extreme Programming
terdapat empat tahapan, yaitu:
1. Planning/Perencanaan
Tahap ini dimulai
dengan pemahaman konteks bisnis dari aplikasi, mendefinisikan keluaran/output,
fitur yang ada pada aplikasi, fungsi dari aplikasi yang dibuat, penentuan waktu
dan biaya pengembangan aplikasi, serta alur pengembangan aplikasi yang
digambarkan dengan user story (cerita) berdasarkan data yang diperoleh dari
client. User story ini akan menjadi gambaran dasar dari sistem yang akan
dikembangkan.
2. Design/Perancangan
Tahap ini
menekankan pada desain aplikasi secara sederhana berdasarkan user story yang
telah dibuat sebelumnya. Alat untuk mendesain pada tahap ini dapat menggunakan
kartu CRC (Class Responsibility Collaborator). CRC digunakan untuk pemetaan
(membangun) kelas-kelas yang akan digunakan pada diagram use case, diagram
kelas, dan diagram objek.
3. Coding/Pengkodean
Pada tahap ini
dilakukan pembuatan sistem berdasarkan rancangan yang telah dibuat sebelumnya.
Tahap ini dapat dilakukan secara berulang-ulang (refactoring) apabila terdapat
koreksi. Hal utama dalam pengembangan aplikasi dengan menggunakan XP adalah
pair programming (dalam membuat program melibakan dua atau lebih programmer).
4. Testing/Pengujian
Tahap ini
memfokuskan pada pengujian fitur-fitur yang ada pada aplikasi sehingga tidak
ada kesalahan (error) dan aplikasi yang dibuat sesuai dengan proses bisnis pada
klien (pelanggan). Apabila masih belum sesuai dengan permintaan, maka akan
dilakukan perbaikan pada bagian yang dikoreksi. Jika sudah sesuai dengan
permintaan maka sistem sudah dapat diimplementasikan.
XP PRACTICES
Aspek dasar XP terdiri dari berbagai teknik atau metode yang diterapkan
Beck dan Jeffries pada C3 Project. Teknik-teknik tersebut antara lain:
1.
Whole Team
Seluruh
kontributor dalam proyek yang menggunakan pendekatan XP duduk bersama sebagai
suatu tim. Tim ini terdiri beberapa peran, antara lain programmer,
penguji,orang yang mengerti bisnis, analis, manajer, dan lain-lain. Setiap
peran yang ada tidak mutlak menjadi peran dari satu orang saja. Tim terbaik
dalam XP tidak harus memiliki pakar, hanya kontributor umum dengan keterampilan
khusus saja. Semua orang di tim XP memberikan kontribusi dengan cara apapun
yang mereka dapat lakukan.
2.
Planning game
Perencanaan
dalam XP mengemukakan dua pertanyaan kunci dalam pengembangan perangkat lunak,
yaitu memprediksi apa yang akan dicapai
pada waktu tertentu, dan menentukan apa yang harus dilakukan setelah itu. Ada
dua langkah kunci dalam perencanaan XP, yang menangani dua pertanyaan tersebut:
- Release Planning yaitu praktek dimana Customer mengutarakan fitur yang diinginkannya ke programer, dan programer memperkirakan tingkat kesulitannya. Dengan estimasi biaya di tangan, dan dengan pengetahuan tentang pentingnya fitur yang diinginkan, Pelanggan meletakkan satu rencana untuk proyek tersebut. Rencana rilis awal yang selalu tepat: baik prioritas maupun perkiraan yang benar-benar solid, dan sampai tim mulai bekerja, kita tidak akan tahu seberapa cepat mereka akan pergi. Bahkan rencana rilis pertama cukup akurat untuk pengambilan keputusan, namun, dan tim XP melakukan revisi terhadap rencana rilis secara teratur.
- Iteration Planning adalah praktek di mana tim diberikan petunjuk atau arahan setiap beberapa minggu sekali. Tim XP membangun perangkat lunak dalam “iterasi” dua minggu, memberikan menjalankan perangkat lunak yang berguna pada setiap akhir iterasi. Selama Iteration Planning, Customer mengutarakan fitur yang diinginkan selama dua minggu ke depan. Para programer memecahnya ke dalam pekerjaan yang lebih kecil, dan memperkirakan biaya yang diperlukan.
3.
Small Release
Pada
setiap Iterasi, tim mengerjakan sebuah unit atau bagian dari perangkat lunak,
melakukan tes terhadap unit perangkat lunak yang dibangun, kemudian di akhir
iterasi perangkat lunak yang dibangun diberikan kepada Customer. Oleh customer,
perangkat lunak ini bisa dijadikan bahan evaluasi maupun langsung dirilis
kepada end user. Bisa juga tim XP langsung merilis ke end user secara rutin.
4. Customer
Tests
Sebagai
bagian dari presentasi masing-masing fitur yang diinginkan, Customer XP
mendefinisikan satu atau lebih tes
penerimaan otomatis untuk menunjukkan bahwa fitur tersebut bekerja dengan baik.
Tim membangun tes ini dan menggunakannya untuk membuktikan pada kepada Customer
bahwa fitur ini telah diimplementasikan dengan benar. Tes secara otomatis ini
penting karena dalam XP hanya diberikan waktu yang singkat sehingga tes manual
tidak akan digunakan karena memakan waktu yang lama.
5.
Continuous Integration
Beberapa
kali dalam sehari, tim XP akan menggabungkan seluruh salinan pekerjaan tim
menjadi satu dalam jaringan utama. Sehingga tim XP harus menjaga tim agar
terintegrasi setiap saat.
6.
Collective Code Ownership
Pada
proyek XP, setiap pasang programmer dapat meningkatkan code apapun setiap saat.
Semua code yang ada dimiliki secara kolektif oleh tim. Manfaatnya setiap code
akan mendapat perhatian dari banyak orang, sehingga dapat meningkatkan kualitas
code dan mengurangi cacat. Selain itu dapat mengurangi duplikasi code yang sama
walaupun dibuat oleh pasangan programmer yang berbeda.
7.
Coding Standard
Setiap
anggota tim XP harus mengikuti standar coding yang umum, sehingga semua code
dalam sistem seolah-olah tampak dibuat oleh satu orang yang sangat kompeten. Selain
itu hal ini sangat mendukung Collective Code Ownership.
8.
Metaphor
Tim
XP akan membuat suatu deskripsi umum bagaimana program yang mereka kembangkan
bekerja dengan benar.
9.
Sustainable Pace
Tim
XP akan bekerjasama dalam jangka waktu lama. Mereka bekerja keras dengan
kecepatan tertentu tanpa batas waktu. Tim XP akan bekerja lembur pada hari
efektif dan memaksimalkan produktivitas setiap minggunya. Hal ini perlu diperhatikan dengan baik,
karena akan mengurangi produktivitas atau sebaliknya menghasilkan perangkat
lunak yang berkualitas.
10. Test-Driven Development
XP
begitu terobsesi dengan umpan balik, dan dalam pengembangan perangkat lunak,
umpan balik yang baik mensyaratkan pengujian yang baik pula. Test-Driven
Development bergantung pada pengulangan siklus development yang sangat pendek.
Pertama tim XP akan menuliskan automated test case yang mendefinisikan
perbaikan yang diinginkan atau fungsi baru. Kemudian dari test case tersebut
dihasilkan jumlah minimal code yang harus dituliskan untuk lulus tes tersebut.
Setelah itu melakukan refactoring code baru agar memenuhi standar baru.
11.
Simple Design
Tim
XP membangun perangkat lunak dengan desain yang sederhana. Dimulai dengan
desain yang sederhana, kemudian melalui pengujian program dan perbaikan desain.
Desain yang dibuat harus benar-benar cocok untuk fungsi saat ini dari sistem
sehingga tidak ada yang sia-sia dan perangkat lunak siap dikembangkan lagi
selanjutnya. Namun, pembuatan desain dalam XP tidak dilakukan hanya sekali.
Tahapan desain dalam Extreme Programming yang menghasilkan desain yang bagus
dianggap sangat penting, sehingga selama proses development banyak difokuskan
ke tahapan desain.
12.
Refactoring
XP
berfokus pada memberikan nilai bisnis dalam setiap perulangan. Agar dapat
mencapai tujuan tersebut selama proyek berlangsung, perangkat lunak harus
dirancang dengan baik. XP menggunakan proses perbaikan desain secara terus menerus
dengan Refactoring. Proses refactoring berfokus pada penghapusan duplikasi dari
code yang telah dibuat. Disamping itu, proses refactoring didukung dengan
pengujian yang komprehensif utnuk memastikan bahwa desain yang dibuat
berkembang dan tiidak ada yang rusak.
13. Pair
Programming
Semua
perangkat lunak yang dibangun dengan pendekatan XP dibangun oleh dua orang
programmer. Keduanya duduk berdampingan di satu komputer yang sama. Seorang
programmer akan membuat code dan programmer yang lainnya akan mengoreksinya.
Praktik seperti ini mungkin kelihatan tidak efisien. Namun dari segi hasil dari
pair programming, desain akan lebih baik, pengujian lebih baik, dan code yang
dihasilkan pun akan lebih baik.
SIKLUS HIDUP XP
Berikut
adalah siklus hidup dari XP :
KELEBIHAN DAN KEKURANGAN
XP
Kelebihan XP
antara lain:
1. Dalam hal ini XP menjalin
komunikasi/interaksi yang baik dengan pelanggan (klien) pada pengembangan
aplikasi.
2. Saling
menghargai antar-develop dan meningkatkan komunikasi.
3. Dapat
menjadi pembelajaran bagi orang lain.
4. Klien
mendapatkan umpan balik yang akura mengenai aplikasi yang dibuat.
5. Dengan
XP dapat mengubah pemikiran pelanggan terhadap aplikasi yang dibuat.
6. Developer
tidak bekerja secara berlebihan, dikarenakan XP memfokuskan pada
aplikasi/program yang dibuat.
7.
Dengan XP dapat membuat
keputusan-keputusan yang bersifat teknikal.
Kekurangan XP
antara lain:
1. Perubahan selalu diterima sehingga
developer harus selalu siap dengan perubahan-perubahan dari klien.
2. Di
awal pengembangan sistem tidak bisa membuat code (program) yang detail (prinsip
simplicity).
3. XP
hanya mengerjakan satu proyek dan dijalankan oleh satu tim. Tidak efektif
mengerjakan proyek yang berbeda secara bersamaan (paralel).
4. XP
tidak dapat dikerjakan bila developer saling terpisah jauh dengan klien, karena
mengakibatkan terhambatnya komunikasi antara developer dengan klien.
5. XP belum terbukti dapat bekerja pada sisem
yang mempunyai masalah skalabilitas. Skalabilias adalah tingkat perencanaan
kerja yang diperlukan. Berdasarkan ukuran proyek, kompleksitas proyek, dan
ukuran tim.
PERBEDAAN XP DENGAN METODE LAIN
Berikut
adalah perbedaan antara metode XP dengan Scrum:
CONTOH ATAU KARAKTERISTIK
APLIKASI
Extreme Programming tepat untuk dipergunakan untuk
pembuatan program yang:
- Membutuhkan perubahan yang cepat (misalnya: Game Mobile)
- Proyek beresiko tinggi dengan tantangan yang berat
- Tim programmer sedikit, yaitu sekitar 2–10 orang
- Adanya permintaan dari pelanggan secara langsung
KESIMPULAN
XP merupakan
suatu model yang termasuk dalam pengembangan agile dimana dalam penggunaannya
XP terdiri dari empat tahapan utama yaitu planning, design, coding, dan
testing. Metode ini sangat cocok
digunakan untuk pengembangan mobile apps dan mobile games karena metode ini membutuhkan jumlah
programmer sedikit, dan menuntut banyak perubahan dalam pengembangannya.
REFERENSI
F. Anwer, S. Aftab, S. Shah, M. Shah,
and U. Waheed, “Comparative Analysis of Two Popular Agile Process Models :
Extreme Programming and Scrum,” vol. 8, no. 2, 2017.
Y.
I. Chandra, “PERANCANGAN APLIKASI RESEP MAKANAN TRADISIONAL INDONESIA
MENGGUNAKAN PENDEKATAN AGILE PROCESS DENGAN MODEL EXTREME PROGRAMMING BERBASIS
ANDROID,” pp. 28–29, 2016.
R.
Anjuliani and L. W. Astuti, “APLIKASI ISC ( INFORMATICS STUDENT CENTER )
MENGGUNAKAN METODE PERSONAL EXTREME PROGRAMMING BERBASIS ANDROID,” vol. 6, no.
1, pp. 20–25, 2015.
I.G.N.
Suryantara, “Merancang Aplikasi Dengan Metodologi Extreme Programming”, Elex
Media Komputindo, Jakarta, 2017.
https://medium.com/@mikesebastian/extreme-programming-c715e6b8e0e9,
diakses 24 Agustus 2019
https://www.it-jurnal.com/apa-itu-extreme-programming/,
diakses 24 Agustus 2019
No comments:
Post a Comment