MODEL EXTREME PROGRAMMING
Extreme
Programming (XP) merupakan salah satu metode pengembangan software yang
termasuk dalam Agile Software Development. XP menggunakan pendekatan
object-oriented.
Dalam XP,
terdapat 5 nilai yang menjadi pondasi yaitu communication, simplicity,
feedback, courage, dan respect. Komunikasi yang efektif antara
pengembang perangkat lunak dan pihak-pihak yang terlibat sangatlah penting.
Dalam XP, desain dijadikan kebutuhan intermediate. Desain dibuat sesederhana
mungkin agar mudah mengimplementasikan code. Disini dapat terjadi perubahan
struktur desain atau perubahan source code tanpa mengubah fungsi utamanya (refactoring).
Feedback akan diberikan saat peningkatan dan pengimplementasian perangkat
lunak.
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.
Penerapan XP
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
Cara
Kerja Extreme Programming :
- Perencanaan XP: pengumpulan user stories dari klien yang klien tetapkan prioritasnya. Setiap story ditetapkan harga dan lama pembangunan, jika terlalu besar, story dapat dipecah menjadi beberapa story yang lebih kecil. Periksa dan pertimbangkan resiko
- Desain XP berprinsip: sederhana memanfaatkan kartu CRC (Class-Responsibility-Collaborator) untuk identifikasi dan mengatur class-class di konsep OO. Jika temui kesulitan, prototype dibangun (ini namanya spike solution). Lakukan refactoring, yaitu mengembangkan desain dari program setelah ditulis.
- Pengkodean XP: siapkan unit test sebelum pengkodean dipakai sebagai fokus pemrogram untuk membuat program. Pair programming dilakukan untuk real time program solving dan real time quality assurance
- Pengujian XP: menggunakan unit test yang dipersiapkan sebelum pengkodean.
Keunggulan:
- Menjalin komunikasi yang baik dengan klien. (Planning Phase)
- Menurunkan biaya pengembangan (Implementation Phase)
- Meningkatkan komunikasi dan sifat saling menghargai antar developer. (Implementation Phase)
- XP merupkan metodologi yang semi formal. (Planning Phase)
- Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima, atau dengan kata lain fleksibel. (Maintenance Phase)
Kelemahan :
- Tidak bisa membuat kode yang detail di awal (prinsip simplicity dan juga anjuran untuk melakukan apa yang diperlukan hari itu juga).XP juga memiliki keunggulan yang sekaligus menjadi kelemahannya, yaitu XP tidak memiliki dokumentasi formal yang dibuat selama pengembangan. Satu-satunya dokumentasi adalah dokumentasi awal yang dilakukan oleh user.
0 komentar:
Posting Komentar