2. Definisi
Extreme Programming (XP) adalah model pengembangan
perangkat lunak yang mencoba menyederhanakan berbagai
tahapan dalam proses pengembangan tersebut sehingga
menjadi lebih adaptif dan fleksibel. Pendekatan tidak hanya
berfokus pada coding tetapi meliputi seluruh area
pengembangan perangkat lunak.
3. Keunggulan XP
• Menjalin komunikasi yang baik dengan klien. (Planning Phase)
• Menurunkan biaya pengembangan (Implementation Phase)
• Meningkatkan komunikasi dan sifat saling menghargai antar
developer. (Implementation Phase)
4. Kelemahan
• XP merupkan metodologi yang semi formal.
(Planning Developer harus selalu siap dengan perubahan
karena perubahan akan selalu diterima, atau dengan kata lain
eksibel. (Maintenance Phase)
• Tidak bisa membuat kode yang detail di awal (prinsip
simplicity dan juga anjuran untuk melakukan apa yang
diperlukan hari itu juga).
5. Tahapan dalam XP
1. Planning
Membentuk user stories, menentukan cost. Semua story segera
diimplemetasikan (dalam beberapa minggu) Story dengan value tertinggi
akan dipindahkan dari jadwal dan dimplementasikan pertama. Story
dengan resiko paling tinggi akan diimplemetasikan lebih dulu. Setelah
project pertama direlease dan didelivery, XP team memperhitungkan
kecepatan project.
2. Design
menggunakan CRC card, untuk mengenali dan mengatur object oriented
class yang sesuai dengan software increment.
3. Coding
Sebelum membuat code, lebih baik membuat unit test tiap story untuk
dimasukkan dalam software increment. XP menyarankan agar dua orang
bekerja bersama pada satu komputer workstation untuk membuat code
dari satu story (pair programming), untuk menyediakan real time problem
solving dan jaminan real time quality. Setelah pair programming selesai,
code diintegrasikan dengan kerja laiinnya (continuous integration).
6. 4. Testing.
Unit test yang telah dibuat harus diimplementasikan
menggunakan suatu framework dan diatur ke dalam universal
testing suite, integrasi dan validasi sistem dapat dilakukan setiap
hari. Customer test (acceptance test) dilakukan oleh customer
dan fokus pada keseluruhan fitur dan fungsional sistem.
Acceptance test diperoleh dari customer stories yang telah
diimplemetasikan sebagai bagian dari software release.
8. Role
1. Costumer / User
Orang yang mendefinisikan proyek untuk digambarkan /
ditranslatekan ke aplikasi oleh developer, dan juga menetapkan
tujuan
2. Developer
Orang yang mentraslatekan gambaran dari user ke dalam
aplikasi yang akan dibuat. mengembangkan aplikasi dari user
stories
3. Tracker
Berperan melacak jadwal yang dibuat. menentukan rasio waktu
yang ideal agar tugas – tugas dengan waktu yang sebenarnya
dihabiskan untuk pengimplementasian.
9. 4. Coach
Seperti team leader. Berperan menuntun anggota / tim nya
untuk mengerti pengembangan menggunakan XP . Posisi ini
penuh akan tanggung jawab proyek.
10. Pair Programming
Melakukan proses menulis program dengan berpasangan. Dua
orang programer saling bekerjasama di komputer yang sama
untuk menyelesaikan sebuah unit. Dengan melakukan ini maka
keduanya selalu dapat berdiskusi dan saling melakukan koreksi
apabila ada kesalahan dalam penulisan program. Aspek ini
mungkin akan sulit dijalankan oleh para programer yang memiliki
ego tinggi dan sering tidak nyaman untuk berbagi komputer
bersama rekannnya.
11. Test Driven Development (TDD)
Suatu konsep pengembangan aplikasi dimana script untuk
melakukan testing aplikasi dibuat lebih dulu dibandingkan kode
program utamanya. Script yang dimaksud disini adalah suatu
kode program yang melakukan test untuk menguji parameter,
nilai keluaran yang dihasilkan oleh suatu fungsi.
12. User Story
Dalam pengembangan perangkat lunak dan manajemen produk,
cerita pengguna adalah satu atau lebih kalimat dalam bahasa
sehari-hari atau bisnis dari pengguna akhir atau pengguna
sistem yang menangkap apa yang pengguna lakukan atau perlu
dilakukan sebagai bagian dari fungsi pekerjaan nya. Cerita
pengguna digunakan dengan metodologi pengembangan
perangkat lunak tangkas sebagai dasar untuk menentukan fungsi
sistem bisnis harus menyediakan, dan untuk memfasilitasi
manajemen persyaratan. Ia menangkap 'siapa', 'apa' dan
'mengapa' dari persyaratan dalam cara yang sederhana dan
ringkas, sering dibatasi secara rinci oleh apa yang bisa ditulis
tangan pada kartu catatan kertas kecil.