Model Extreme Programming (Agile)
Agile methods adalah salah satu dari beberapa metode yang
digunakan dalam pengembangan sooftware. Agile method adalah jenis
pegembangan sistem jangka pendek yang memerlukan adaptasi cepat dan
pengembang terhadap perubahan dalam bentuk apapun.
Dalam Agile Software Development interaksi dan personel lebih
penting dari pada proses dan alat, software yang berfungsi lebih penting
daripada dokumentasi yang lengkap, kolaborasi dengan klien lebih
penting dari pada negosiasi kontrak, dan sikap tanggap terhadap
perubahan lebih penting daripada mengikuti rencana.
Agile Method juga dapat diartikan sekelompok metodologi
pengembangan software yang didasarkan pada prinsip-prinsip yang sama
atau pengembangan system jangka pendek yang memerlukan adaptasi cepat
dari pengembang terhadap perubahan dalam bentuk apapun. Metode ini jg
merupakan membuang beberapa tahapan yang tidak mempunyai nilai/value dan
menekankan pada pengembangan sederhana dan iterative/berulang.
Extreme Programming (XP)
Proyek Pemrograman Extreme pertama dimulai 6 Maret 1996. Extreme
Programming adalah salah satu dari beberapa Proses Agile populer. Sudah
terbukti sangat sukses di banyak perusahaan dari berbagai ukuran dan
industri di seluruh dunia.
Extreme Pemrograman berhasil karena menekankan kepuasan pelanggan.
Alih-alih memberikan semua yang anda mungkin inginkan pada tanggal
beberapa jauh di masa depan proses ini memberikan perangkat lunak yang
Anda butuhkan saat Anda membutuhkannya. Extreme Pemrograman
memberdayakan pengembang Anda untuk percaya diri menanggapi perubahan
kebutuhan pelanggan, bahkan terlambat dalam siklus hidup.
Extreme Pemrograman menekankan kerja sama tim. Pengelola, pelanggan,
dan pengembang semua mitra setara dalam sebuah tim kolaboratif. Extreme
Pemrograman menerapkan, sederhana namun efektif yang memungkinkan tim
lingkungan menjadi sangat produktif. Tim mengorganisir diri mengatasi
masalah untuk menyelesaikannya seefisien mungkin.
Extreme Pemrograman meningkatkan proyek perangkat lunak dalam lima
cara penting; komunikasi, kesederhanaan, umpan balik, rasa hormat, dan
keberanian. Extreme Programmer selalu berkomunikasi dengan pelanggan
mereka dan programer sesama. Mereka terus desain mereka yang sederhana
dan bersih. Mereka mendapatkan umpan balik dengan menguji perangkat
lunak mereka dimulai pada hari pertama. Mereka memberikan sistem ke
pelanggan sebagai perubahan sedini mungkin dan melaksanakan seperti yang
disarankan. Setiap keberhasilan kecil memperdalam rasa hormat mereka
atas kontribusi yang unik dari masing-masing dan setiap anggota tim.
Dengan dasar Extreme pemrogram dapat berani merespon perubahan kebutuhan
dan teknologi.
Aspek yang paling mengejutkan dari Extreme Programming adalah aturan
sederhana. Extreme Pemrograman sangat mirip jig gergaji teka-teki. Ada
banyak potongan-potongan kecil.
Extreme Programming adalah metode pengembangan perangkat lunak yang
ringan dan termasuk salah satu agile methods yang dipelopori oleh Kent
Beck, Ron Jeffries, dan Ward Cunningham. Extreme Programming merupakan
agile methods yang paling banyak digunakan dan menjadi sebuah pendekatan
yang sangat terkenal. Sasaran Extreme Programming adalah tim yang
dibentuk berukuran antara kecil sampai medium saja, tidak perlu
menggunakan sebuah tim yang besar. Hal ini dimaksudkan untuk menghadapi
requirements yang tidak jelas maupun terjadinya perubahan-perubahan
requirements yang sangat cepat.
Extreme Programming sebagai sebuah metode yang dinamis diperlihatkan
dalam empat values yang dimilikinya dan keempatnya merupakan
dasar-dasar yang diperlukan dalam Extreme Programming. Kent Beck
menyatakan bahwa tujuan jangka pendek individu sering berbenturan dengan
tujuan sosial jangka panjang. Karena itu dibuatlah values yang menjadi
aturan, hukuman, dan juga penghargaan. Keempat values tersebut adalah :
Tugas utama developer dalam membangun suatu sistem perangkat lunak
adalah mengkomunikasikan kebutuhan sistem kepada pengembang perangkat
lunak. Komunikasi dalam Extreme Programmning 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.
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.
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).
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 refactoringprogram ketika diperlukan.
Extreme Programming menggunakan pendekatan berorientasi objek. Pada
aktifitas Perencanaan terjadi 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. Terjadi pemeriksaan dan pertimbangkan resiko dan
aktifitas Desain kegiatannya sederhana yaitu memanfaatkan kartu CRC
(Class-Responsibility-Collaborator) untuk identifikasi dan mengatur
class-class di konsep OO. Jika temuikan kesulitan, prototype dibangun
[ini namanya spike solution].
Dilakukannya refactoring, yaitu mengembangkan desain dari program
setelah ditulis. Pada aktifitas Pengkodean adalah penyiapan unit test
sebelum pengkodean dipakai sebagai focus pemrogram untuk membuat
program. Pair programming dilakukan untuk real time program solving dan
real time quality assurance. Proses pengujiannya menggunakan unit test
yang dipersiapkan sebelum pengkodean Menggunakan pendekatan berorientasi
objek.
Keuntungan dan Kerugian
Keuntungan Extreme Programmning:
Menjalin komunikasi yang baik dengan client. Meningkatkan komunikasi dan sifat saling menghargai antar developer.
Kerugian Extreme Programmning:
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